Разрешения приложения Microsoft API — список всех арендаторов/будущие устаревшие API неясны

На данный момент я хочу использовать API Graph для приложения, которое будет перечислять всех арендаторов, получать список всех пользователей для каждого арендатора, а затем перечислять все их лицензии. По обстоятельствам я могу использовать только веб-вызовы, а не модули Powershell или что-то в этом роде.

Я обнаружил, что вы сможете сделать это в Graph (https://learn.microsoft.com/en-us/graph/api/managedtenants-managedtenant-list-tenants?view=graph-rest-beta&tabs=http), за исключением того, что это разрешено только для делегированных разрешений и в бета-версии.

Поэтому я искал альтернативу, которой, похоже, был API Management.azure.com (https://learn.microsoft.com/en-us/rest/api/resources/tenants/list?view=rest-resources -2022-12-01&tabs=HTTP#code-try-0), но я не могу хоть убей понять, устаревает ли этот API вместе со всеми другими недавними API-интерфейсами. Мне также неясно, являются ли это только делегированными разрешениями.

Ребята, вы можете подтвердить? Или какие-нибудь другие советы, чтобы получить ту функциональность, которая мне нужна? Большое спасибо

Вам требуется использовать только разрешения API приложений?

Rukmini 26.04.2024 11:39

API управления службами Azure имеет только делегированные разрешения, но вы можете использовать поток учетных данных клиента для создания токена и получения клиентов.

Rukmini 26.04.2024 11:40

Это не жесткое требование, а очень большое предпочтение. Его можно использовать с автоматизацией, которая вводит данные API в локальную базу данных. Делегированные разрешения потребуют постоянного входа в систему для их запуска. Кроме того, можете ли вы подтвердить, что API Management.azure.com устарел, как, например, модули Powershell? Или это другая система? @Рукмини

Bryant 26.04.2024 11:55

Нет необходимости входить в систему, вместо этого используйте поток учетных данных клиента.

Rukmini 26.04.2024 11:56

То есть, если я использую поток учетных данных клиента, я могу запускать вызов API в любое время, без необходимости вмешиваться/входить в систему для делегированных разрешений? Могу ли я также использовать это с Graph и бета-версией Graph? Или мне придется использовать API управления Azure?

Bryant 26.04.2024 12:16

Вы используете API управления Azure. Могу ли я опубликовать его в качестве ответа?

Rukmini 26.04.2024 12:18

Конечно, если вы можете подтвердить, что API управления Azure устарел или заменен Graph. В противном случае с моей стороны будет неразумно его использовать.

Bryant 26.04.2024 12:25

Будут обновлены только версии AFAIK, API управления службами Azure не будет устаревшим.

Rukmini 26.04.2024 12:40
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
8
148
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы составить список арендаторов без взаимодействия с пользователем, проверьте следующее:

Создайте приложение Microsoft Entra ID и предоставьте разрешения API:

Создайте токен доступа через поток учетных данных клиента:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
client_secret:ClientSecret
scope:https://management.azure.com/.default
grant_type:client_credentials

Используя указанный выше токен доступа, вы можете вызвать API для получения списка арендаторов:

https://management.azure.com/tenants?api-version=2022-12-01

Хорошо, я попробую это. Спасибо!

Bryant 26.04.2024 13:37

Мне удалось успешно получить токен и вызвать API, но вызов возвращает только того клиента, в котором зарегистрировано приложение. Не все клиенты, которых я вижу при переходе в Центр администрирования Microsoft 365 или при использовании Graph Explorer с глобальным учетная запись администратора.

Bryant 26.04.2024 13:53

Да, потому что в Graph Explorer это пользовательский интерактивный поток, в котором перечислены арендаторы для учетной записи пользователя, но если вы хотите использовать неинтерактивный поток, тогда в нем отображается только список арендаторов, который является частью

Rukmini 26.04.2024 13:55

Если вам нужны арендаторы для пользователя, вам придется использовать только интерактивный поток или поток ROPC, который аутентифицирует пользователя без взаимодействия. См. это Learn.microsoft.com/en-us/entra/identity-platform/v2-oauth-r‌​opc

Rukmini 26.04.2024 13:57

Как рекомендуется составить список всех клиентов с неинтерактивным потоком приложений? Или, как я уже спрашивал; это просто невозможно без входа в систему с привилегированной учетной записью? Заранее спасибо. (Только увидел обновленный комментарий, прочитаю.)

Bryant 26.04.2024 14:02

Подходит ли вам ROPC Flow? который не является интерактивным, вам нужно напрямую передать имя пользователя и пароль при создании токена

Rukmini 26.04.2024 14:02

@Bryant Поток ROPC не перенаправляется в браузер для входа в систему, вас это устраивает?

Rukmini 26.04.2024 14:13

Привет, да, все должно быть хорошо. Я настраиваю Postman с помощью ROPC, используя те же учетные данные, которые я вижу у всех арендаторов на портале администрирования 365. В разрешениях API приложения я также установил «ManagedTenants.Read.All» для Graph. Я попробовал бета-графику, но там написано, что у меня нет авторизации. А при попытке «Management.azure.com/tenants?api-version=2022-12-01» снова отображается только один арендатор. Оба используют область действия .default.

Bryant 26.04.2024 15:05

Давайте продолжим обсуждение в чате.

Rukmini 26.04.2024 15:14

Другие вопросы по теме