Почему порталу Azure внезапно потребовались области OpenID Connect для заявок зарегистрированного приложения?

У меня есть несколько приложений, зарегистрированных на портале Azure компании, в которой я работаю, со следующими необязательными утверждениями: адрес электронной почты, family_name, given_name и upn. Когда я добавил эти утверждения, все прошло нормально, ошибок или предупреждений не было. Зарегистрированные приложения используются для аутентификации приложений ASP.NET Core 2.2. Возвращенные идентификаторы содержат эти утверждения, и я могу использовать их в своем приложении.

Не так давно я заметил, что начал получать это предупреждение при посещении страницы «Конфигурация токена» зарегистрированных приложений: Эти утверждения (электронная почта, upn, family_name, given_name) требуют настройки областей OpenID Connect на странице разрешений API. Перейти  to API Permissions , и на каждом требовании в таблице есть значок предупреждения с надписью This claim required OpenID Connect Scopes to be configured through the API permissions page.

Кроме того, при добавлении необязательных утверждений я теперь получаю это всплывающее окно:  Некоторые из этих утверждений (family_name, given_name, upn) требуют настройки областей OpenId Connect на странице разрешений API или путем установки флажка ниже. Включите Microsoft Graph  разрешение профиля (требуется для отображения утверждений в токене)

Если я нажму «Добавить», не установив флажок, я получаю это предупреждение на странице «Конфигурация токена», и к разрешениям API добавляется только разрешение User.Read. Если я проверю это, предупреждение исчезнет, ​​будет добавлено дополнительное profile разрешение.

Это всплывающее окно и предупреждение кажутся недавними, но я ничего не менял в этих зарегистрированных приложениях. Независимо от того, есть предупреждение или нет, я все равно получаю утверждения в токене идентификатора. Фактически, в документации Microsoft говорится: The Microsoft Authentication Library (MSAL) currently specifies offline_access, openid, profile, and email by default in authorization and token requests. This means that, for the default case, if you specify these permissions explicitly, Azure AD may return an error. Это будет объясните, почему я до сих пор получаю претензии.

Итак, у меня есть это предупреждение, но все работает нормально, и если я явно укажу разрешение profile, Azure AD может вернуть ошибку.

Я плохо разбираюсь в AzureAD и не уверен, стоит ли добавлять заявки с установленным флажком. Почему стало появляться это предупреждение? Как лучше всего с этим справиться?


person Lukas    schedule 18.09.2020    source источник


Ответы (1)


Вероятно, это случай несогласованности команд портала, документации и библиотеки. Как вы заметили, библиотеки MSAL по умолчанию добавляют эти разрешения OIDC для своих API запросов токенов.

Итак, почему разрешения, которые вы не добавили на портале, по-прежнему предоставляются, когда MSAL запрашивает их по умолчанию? Ответ - динамическое согласие - механизм Azure AD, позволяющий указывать необходимые разрешения на ходу. Поскольку библиотека запрашивает эти разрешения по умолчанию, в вашем случае все работает нормально.

Я бы посоветовал проверить документацию / репозиторий конкретной библиотеки MSAL, которую вы используете, и посмотреть, предлагают ли они добавить их явно (например, в MSAL.js это оставлено на усмотрение разработчика и будет работать в любом случае). Если это так, просто добавьте их на Портал и избавьтесь от предупреждения.

person derisen    schedule 19.09.2020