Поддержка ADFS

службы федерации Active Directory (AD FS) (AD FS) в Windows Server позволяет добавлять проверку подлинности и авторизацию на основе OpenID Connect и OAuth 2.0 в разрабатываемые приложения. Эти приложения могут проходить проверку подлинности пользователей непосредственно в AD FS. Дополнительные сведения см. в сценариях AD FS для разработчиков.

Обычно существует два способа проверки подлинности в AD FS:

  • MSAL подключается к Microsoft Entra ID, которая затем объединяется с AD FS.
  • MSAL подключается напрямую к источнику аутентификации AD FS.

MSAL4J поддерживает оба потока.

MSAL подключается к Microsoft Entra ID, которая затем объединяется с AD FS

MSAL4J поддерживает подключение к Microsoft Entra ID для входа управляемых пользователей (пользователей, управляемых в Microsoft Entra ID) или федеративных пользователей (пользователей, управляемых другим поставщиком удостоверений, например AD FS). MSAL4J не знает о том, что пользователи федеративны. Что касается этого, оно взаимодействует с Microsoft Entra ID.

Центр авторизации, используемый в этом случае, является обычным центром авторизации (имя узла центра авторизации и арендатор, common или organizations).

Интерактивное получение токена для федеративных пользователей

При вызове метода AcquireToken с AuthorizationCodeParameters или DeviceCodeParameters сценарий взаимодействия с пользователем обычно выглядит следующим образом:

  1. Пользователь вводит идентификатор учетной записи.
  2. Microsoft Entra ID отображает краткое сообщение "Переведите вас на страницу вашей организации". Пользователь перенаправляется на страницу входа поставщика удостоверений. Страница входа обычно настраивается с логотипом организации.
  3. Поддерживаемые версии AD FS в этом федеративном сценарии: AD FS версии 2, AD FS версии 3 (Windows Server 2012 R2) и AD FS версии 4 (AD FS 2016).

MSAL подключается непосредственно к центру AD FS

MSAL4J обеспечивает поддержку непосредственной проверки подлинности с помощью AD FS 2019. В этом случае при инициализации клиента можно указать для MSAL4J URL-адрес центра авторизации, специфичный для ADFS. Значение authority должно выглядеть примерно так: https://adfs.contoso.com/adfs.

Получение токена с помощью AcquireToken и параметров IntegratedWindowsAuthenticationParameters или UsernamePasswordParameters

При получении токена с помощью AcquireToken с параметрами IntegratedWindowsAuthenticationParameters или UsernamePasswordParameters MSAL4J определяет, с каким поставщиком удостоверений нужно связаться, исходя из имени пользователя. MSAL4J получает токен SAML после обращения к поставщику удостоверений. Затем MSAL4J передаёт токен SAML в Microsoft Entra ID как утверждение пользователя (аналогично потоку on-behalf-of), чтобы получить в ответ JWT.