Как захватить клиентское приложение OAUTH2 из функции azure http - PullRequest
0 голосов
/ 19 января 2020

Я включил Azure Проверка подлинности служб приложений и зарегистрировал мою функцию в AAD, а затем клиент использует OAUTH2 для получения токена, а затем вызывает API, используя этот токен, и это прекрасно работает.

Но я я пытаюсь найти документацию о том, как я на основе этого токена могу получить имя клиентского приложения, которое клиент использовал для аутентификации в моем коде

Допустим, мое функциональное приложение - testauth, а клиентское приложение для мобильного приложения - clienttest

Они используют clientID и clientSecret от clienttest для аутентификации до resourceId testauth

Так что теперь в моем коде C# я хочу знать, что clienttest это возможно, и если да, то как?

Я читаю о претензиях, но не могу собрать головоломку

1 Ответ

0 голосов
/ 19 января 2020

Вы можете получить clientID clienttest. Если вы управляете сопоставлением имени клиента и clientID в вашем приложении функций, вы сможете узнать имя клиента.

1. Вы можете получить токен из заголовка http. Вот официальная документация: Получите токены в коде приложения

КАК вы используете AAD в качестве провайдера, поэтому вы можете получить токен доступа из заголовка http: X-MS-TOKEN-AAD-ACCESS-TOKEN

2. Затем вы можете расшифровать токен. Это JWT , который содержит 3 части: заголовок, полезную нагрузку и подпись.

Все они имеют кодировку base64url и объединяются с использованием периодов. Таким образом, вы можете использовать популярные библиотеки JWT для его декодирования или просто base64url для декодирования части полезной нагрузки. Тогда вы получите JSON строку. Наконец, вы можете получить утверждение appid:

enter image description here

С утверждением appid вы узнаете имя клиента.


Обновление

Вы можете получить имя приложения, которое вы зарегистрировали в Azure AD с Graph API

С $filter выражение, вы можете получить детали приложения. Вот пример запроса: https://graph.microsoft.com/v1.0//applications?$filter=appId eq '68a1189c-a6b0-48fe-908c-841916d72731'

И вы получите следующий ответ:

enter image description here

Вы можете видеть, что приложение отображаемое имя включено.

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