Azure Python SDK - взаимодействуйте с Azure AD - PullRequest
1 голос
/ 06 октября 2019

У меня есть основная учетная запись службы, которую я без проблем использую для автоматизации вычислений и управления ресурсами. То, с чем я не могу взаимодействовать, - это сторона дома Azure AD. Я получаю

"azure.graphrbac.models.graph_error.GraphErrorException: недостаточно прав для завершения операции"

Я не уверен, куда идти, чтобы добавитьправильные привилегии для этого. В настоящее время проверяется следующее, чтобы увидеть, могу ли я хотя бы перечислить пользователей:

graph_credentials = ServicePrincipalCredentials(
client_id = CLIENT,
secret = KEY,
tenant = TENANT_ID,
resource = 'https://graph.windows.net'

graphrbac_client = GraphRbacManagementClient(graph_credentials, TENANT_ID)

for item in graphrbac_client.groups.list():
    print(item)

Я проверил ресурсы в Интернете и документацию по SDK, похоже, я делаю это правильно. Я уверен, что это что-то простое. Я также пытался использовать UserPassCredentials (), но я получаю другие ошибки. В любом случае, я не хочу использовать кредиты пользователей для этого.

Набор разрешений: enter image description here

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Полагаю, вы не предоставили разрешение API для своего приложения AD.

Перейдите к своему приложению AD на портале -> API permissions -> предоставьте Azure Active Directory Graph с application permission (например, Directory.Read.All), после добавления разрешения нажмите кнопку Grant consent, наконец.

enter image description here

Затем я проверяю его на моей стороне, он отлично работает.

enter image description here

0 голосов
/ 08 октября 2019

Я выяснил, в чем проблема. Я выбирал разрешения в «Microsoft Graph» , и это не давало ему правильных разрешений. Я не заметил внизу списка API-интерфейса Azure Active Directory Graph . Я изменил это там, и это работало.

Мой вопрос сейчас, это перечислено как наследство. Должен ли я быть обеспокоен этим? Есть ли более правильный способ сделать это сейчас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...