Как установить правильные привилегии для использования Python Azure SDK для Graph? - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь программно добавить reply_url к регистрации приложения Azure, но получаю GraphErrorException: Insufficient privileges to complete the operation.

Проблема в том, что я не понимаю, какие привилегии необходимы для регистрации моего приложения.

Обычно я использую учетные данные для регистрации приложения, чтобы изменить его собственный адрес reply_urls.

Установленные привилегии: User.Read и Application.ReadWrite.OwnedBy. Оба предоставлены.

Какой из них мне не хватает? И как я могу узнать?

Это SDK, который я использую: azure -graphrbac == 0.61.1

Мой код выглядит так:

class GraphClient:
    def __init__(self, client_id, client_secret, tenant_id, object_id):
        self._credentials = ServicePrincipalCredentials(
            client_id=client_id,
            secret=client_secret,
            tenant=tenant_id,
            resource="https://graph.windows.net"
        )
        self._graph_client = GraphRbacManagementClient(
            credentials=self._credentials,
            tenant_id=tenant_id
        )
        self._application = self._graph_client.applications.get(object_id)

    def get_reply_urls(self) -> List[str]:
        return self._application.reply_urls

    def add_reply_url(self, reply_url) -> None:
        reply_urls: list = self.get_reply_urls()
        self._graph_client.applications.patch(
            self._application.app_id,
            ApplicationUpdateParameters(
                reply_urls=[
                    *reply_urls,
                    reply_url]
            )
        )

РЕДАКТИРОВАТЬ: Добавлен скриншот разрешений enter image description here

1 Ответ

1 голос
/ 06 мая 2020

При использовании графика Microsoft ресурс должен быть: https://graph.microsoft.com

При использовании azure графика объявления ресурс должен быть: https://graph.windows.net

Согласно вашему коду, ресурс - https://graph.windows.net, поэтому он запрашивает azure api графа рекламы в бэкэнде. Итак, нам нужно добавить разрешения azure графа объявлений, но не графа Microsoft.

На предоставленном вами снимке экрана показано, что вы добавили разрешение Application.ReadWrite.OwnedBy графа Microsoft, но не azure рекламный график. Поэтому удалите его и добавьте такое же разрешение, которое принадлежит графу объявлений azure. enter image description here

enter image description here

Тогда не забудьте дать согласие администратора на это.

enter image description here

Надеюсь, это поможет ~

...