#python #microsoft-graph-api #access-token #scopes
Вопрос:
вариант использования: вызов https://graph.microsoft.com/v1.0/groups используя поток кода авторизации от имени вошедшего в систему пользователя:
с областью действия OAuth2Session: https://graph.microsoft.com/.default
oauth_session = OAuth2Session(clientid=clientid, state=session['oauth_state'], client=client,scope="https://graph.microsoft.com/.default")
access_token имеет область действия: «User.Read». у меня нет idee, как управлять этой областью!
клиент api имеет все необходимые делегированные разрешения (GroupMember.Read.Все, Группа.Читайте.Все, Каталог.Читайте.Все, Группа.Чтение и запись.Все, Каталог.Чтение и запись.Все, Каталог.AccessAsUser.All) , как описано здесь: https://docs.microsoft.com/de-de/graph/api/group-get?view=graph-rest-1.0amp;tabs=http
я попытался также установить область действия «Group.Read.Все» в OAuth2Session, но это не помогло.
oauth_session = OAuth2Session(clientid=clientid, state=session['oauth_state'], client=client,scope="https://graph.microsoft.com/Group.Read.All")
следующие запросы работают правильно с той же конфигурацией oauth, что и в описанном выше случае использования:
https://graph.microsoft.com/v1.0/me (здесь я получаю идентификатор пользователя, вошедшего в систему),
https://graph.microsoft.com/v1.0/users/{id}/getMemberGroups (здесь я получаю список групп, к которым принадлежит пользователь)
с https://graph.microsoft.com/v1.0/groups или https://graph.microsoft.com/v1.0/groups/{id} я стремлюсь получить отображаемые имена групп или отображаемое имя идентификатора группы вошедшего в систему пользователя. Мой вопрос: возможно ли вообще получить группы вошедшего в систему пользователя через api graph с потоком авторизации (WebApplicationClient) или, может быть, только через BackendApplicationClient (поток учетных данных клиента). Если да, то как я могу решить проблему с областью применения?
Ответ №1:
Ошибка 403 указывает на то, что маркер не должен корректировать разрешение.
Для потока кода авторизации вам нужно будет запросить область https://graph.Microsoft.com/Group.Read.All
действия.
Я всегда использую jwt.ms это позволяет мне проверить токен и посмотреть, какие утверждения доступны.