Получите токен доступа msgraph с помощью другого токена доступа - PullRequest
0 голосов
/ 21 июня 2020

Я создал приложение Azure, для которого я создал настраиваемые области с помощью экрана «Expose API». У меня есть одностраничное приложение, которое использует поток кода для входа в приложение, запрашивающее эти настраиваемые области. В моем ASP. NET Core веб-приложении я добавил уровень аутентификации, чтобы использовать JWT в качестве носителя. Работает довольно хорошо, и я могу защитить свои веб-API, как и ожидалось.

Теперь я также добавил разрешения API для msgraph, потому что хочу иметь возможность создавать с его помощью онлайн-встречи. Поток будет следующим:

  • Пользователь входит в систему, используя мою аудиторию с настраиваемой областью действия
  • Он отправляет вызов защищенному веб-API для создания чего-то
  • Что-то добавлено в базу данных
  • Онлайн-встреча создается от имени пользователя

«Проблема» в том, что токен доступа, полученный моим веб-API, недействителен для msgraph, мне нужно чтобы получить его от имени пользователя, имеющего отношение к access_token. Однако я понятия не имею, как получить токен msgraph с помощью другого access_token. Я даже не знаю, возможно ли это.

Однако, если это невозможно, как мне создать онлайн-встречу из. NET основной части моего приложения?

1 Ответ

1 голос
/ 21 июня 2020

Взгляните на От имени , в частности на пример « Первый случай: запрос токена доступа с общим секретом ». Вы можете использовать существующий токен доступа в качестве параметра assertion.

Следующий HTTP POST запрашивает токен доступа и обновляет sh токен с областью user.read для https://graph.microsoft.com веб-API.

//line breaks for legibility only

POST /oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&client_id=2846f71b-a7a4-4987-bab3-760035b2f389
&client_secret=BYyVnAt56JpLwUcyo47XODd
&assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6InowMzl6ZHNGdWl6cEJmQlZLMVRuMjVRSFlPMCJ9.eyJhdWQiOiIyODQ2ZjcxYi1hN2E0LTQ5ODctYmFiMy03NjAwMzViMmYzODkiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE0OTM5MjA5MTYsIm5iZiI6MTQ5MzkyMDkxNiwiZXhwIjoxNDkzOTI0ODE2LCJhaW8iOiJBU1FBMi84REFBQUFnZm8vNk9CR0NaaFV2NjJ6MFFYSEZKR0VVYUIwRUlIV3NhcGducndMMnVrPSIsIm5hbWUiOiJOYXZ5YSBDYW51bWFsbGEiLCJvaWQiOiJkNWU5NzljNy0zZDJkLTQyYWYtOGYzMC03MjdkZDRjMmQzODMiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJuYWNhbnVtYUBtaWNyb3NvZnQuY29tIiwic3ViIjoiZ1Q5a1FMN2hXRUpUUGg1OWJlX1l5dVZNRDFOTEdiREJFWFRhbEQzU3FZYyIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInV0aSI6IjN5U3F4UHJweUVPd0ZsTWFFMU1PQUEiLCJ2ZXIiOiIyLjAifQ.TPPJSvpNCSCyUeIiKQoLMixN1-M-Y5U0QxtxVkpepjyoWNG0i49YFAJC6ADdCs5nJXr6f-ozIRuaiPzy29yRUOdSz_8KqG42luCyC1c951HyeDgqUJSz91Ku150D9kP5B9-2R-jgCerD_VVuxXUdkuPFEl3VEADC_1qkGBiIg0AyLLbz7DTMp5DvmbC09DhrQQiouHQGFSk2TPmksqHm3-b3RgeNM1rJmpLThis2ZWBEIPx662pjxL6NJDmV08cPVIcGX4KkFo54Z3rfwiYg4YssiUc4w-w3NJUBQhnzfTl4_Mtq2d7cVlul9uDzras091vFy32tWkrpa970UvdVfQ
&scope=https://graph.microsoft.com/user.read+offline_access
&requested_token_use=on_behalf_of
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...