Доступ к Microsoft Graph API после аутентификации в моем собственном приложении - PullRequest
0 голосов
/ 21 января 2019

У меня есть собственное приложение, которое называется appA, которое я зарегистрировал в Azure Active Directory. Я аутентифицирую пользователей в appA, используя процесс предоставления кода авторизации, описанный здесь: https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code#request-an-authorization-code. Я указываю ресурс, который Jwt должен использовать как appA во время этого процесса. После того, как пользователь вводит учетные данные, я получаю код авторизации, а затем использую этот код, чтобы получить Jwt и токен обновления, подходящий для appA.

После проверки подлинности пользователей в моем приложении я хочу проверить группы, в которых они находятся, для контроля доступа на основе ролей. Группы не возвращаются в токене, потому что у каждого пользователя более 5 групп.

Это заставляет меня сделать дополнительный вызов графа Api, чтобы получить группы для определенного пользователя. Но для этого мне нужно использовать токен обновления и указать https://graph.microsoft.com в качестве ресурса конечной точки обновления токена. Возвращенный мне токен теперь подходит для запросов к графу Api.

Мой вопрос: как я могу сделать вызов внутри appA, чтобы получить токен для графа API? Похоже, мне придется одновременно манипулировать несколькими JWTS, и мне трудно понять, как это будет работать.

1 Ответ

0 голосов
/ 22 января 2019

как я могу сделать вызов внутри appA, чтобы получить токен для графа API?

Вы можете напрямую запросить токен для API графа MS, который просто нужно изменитьзначение ресурса для API графов MS (https://graph.microsoft.com) в потоке предоставления кода OAuth 2.0.

В Запрос кода авторизации

https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id=<client-id-value>
&response_type=code
&redirect_uri=<redirect-uri-value>
&response_mode=query
&resource=https://graph.microsoft.com
&state=12345

ответ, подобный этому: enter image description here В Используйте код авторизации для запроса токена доступа

POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=<client-id-value>
&code=<code-value>
&redirect_uri=<redirect-uri-value>
&resource=https://graph.microsoft.com
&client_secret=<key-value>

Ответ, подобный этому: enter image description here

Тогда вы могли бы использовать access_token, чтобы делать запросы к API графа MS. enter image description here

...