#azure #authentication #azure-active-directory #azureportal #claims
#azure #аутентификация #azure-active-directory #azureportal #утверждения
Вопрос:
У меня есть несколько приложений, зарегистрированных на портале Azure компании, в которой я работаю, которые имеют следующие необязательные утверждения: email, family_name, given_name и upn. Когда я добавил эти утверждения, все прошло нормально, и не было никаких ошибок или предупреждений. Зарегистрированные приложения используются для проверки подлинности ASP.NET Основные приложения 2.2. Возвращенные токены ID содержат эти утверждения, и я могу использовать их в своем приложении.
Не так давно я заметил, что начал получать это предупреждение при посещении страницы «Конфигурация токена» зарегистрированных приложений: и на каждой заявке в таблице есть значок предупреждения с надписью This claim required OpenID Connect Scopes to be configured through the API permissions page
.
Кроме того, при добавлении дополнительных утверждений я теперь получаю это всплывающее окно:
Если я нажимаю Добавить, не устанавливая флажок, я получаю это предупреждение на странице «Конфигурация токена», и User.Read
к разрешениям API добавляется только разрешение. Если я проверю это, предупреждение исчезнет profile
, будет добавлено дополнительное разрешение.
Это всплывающее окно и предупреждение, похоже, появились недавно, но я ничего не менял в этих зарегистрированных приложениях. Независимо от того, есть предупреждение или нет, я все равно получаю утверждения в токене ID. Фактически, в документации 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 и не уверен, следует ли добавлять утверждения с установленным флажком. Почему это предупреждение начало появляться? Каков наилучший способ справиться с этим?
Ответ №1:
Вероятно, это случай несогласованности команд портала, документации и библиотеки. Как вы заметили, библиотеки MSAL по умолчанию добавляют эти разрешения OIDC в свои API запросов токенов.
Теперь, почему разрешения, которые вы не добавили на портал, по-прежнему предоставляются, когда MSAL запрашивает их по умолчанию? Ответ — динамическое согласие — механизм Azure AD, который позволяет вам указывать необходимые разрешения на ходу. Поскольку библиотека запрашивает эти разрешения по умолчанию, в вашем случае все работает нормально.
Я бы посоветовал проверить документацию / репозиторий конкретной библиотеки MSAL, которую вы используете, и посмотреть, предлагают ли они добавить их явно (например, в MSAL.js , это остается на усмотрение разработчика и будет работать в любом случае). Если это так, просто добавьте их также на портал и избавьтесь от предупреждения.