У токена Azure Active Directory неверная аудитория - PullRequest
0 голосов
/ 20 сентября 2019

Я получаю токен (используя точки v2) для клиентского приложения, которое было открыто для приложения API, и все они зарегистрированы в Azure Active Directory.Я могу успешно получать токены с правильной областью действия, ролями и т. Д., Но я заметил, что аудитория не совсем права.При регистрации приложения API в каталоге на портале Azure я перехожу к «Разобрать блейд API». Я установил идентификатор приложения и наведя указатель мыши на значок с надписью «Это глобально уникальный URI, используемый для идентификации этого веб-API.это префикс для областей и в токенах доступа, это значение заявки на аудиторию. Также называется идентификатором uri. ".Мой что-то вроде "AppName-Prod-Api-Ad.azurewebsites.net".Однако, когда я получаю токен доступа для этого API, независимо от того, какую область я запрашиваю, я получаю идентификатор клиента API внутри токена вместо идентификатора URI.Это не вредно, но я бы предпочел, чтобы клиенты, использующие мой API, не видели мой идентификатор клиента в своем декодированном токене.

В v1 я мог указать этот идентификатор uri в качестве параметра «ресурс» при получениитокен и зрители были бы верны в расшифрованном токене.Это не доступно в v2.

Итак, подведем итог: у меня есть идентификатор uri, установленный при регистрации приложения для API в Azure Active Directory на портале Azure, но аудитория, присутствующая в токенах доступа, вместо этого является клиентским идентификатором API, независимо от того,из какой области я прошу.Что я тут не так делаю?

1 Ответ

0 голосов
/ 20 сентября 2019

Я заметил то же самое.Возможно, MS пытается объединить поведение и возвращать одну и ту же аудиторию каждый раз, независимо от того, как вы запросили токен.Либо документ, либо поведение не так.

Технически ваш API должен по-прежнему принимать обе аудитории, идентификатор клиента и URI идентификатора приложения.Особенно в v1 вам пришлось настроить оба, так как клиент мог получить токен, используя либо идентификатор клиента API, либо URI, ведущий к разным аудиториям.Так что я бы просто принял оба значения в качестве действительной аудитории.

...