Поддержка служб федерации Active Directory (AD FS) в MSAL для Java

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

Приложение, использующее MSAL для Java, будет обмениваться данными со службой Azure Active Directory (Azure AD), которая затем передаст данные о пользователе в AD FS.

MSAL для Java подключается к службе Azure AD, которая выполняет вход пользователей, управляемых в Azure AD (управляемые пользователи), или пользователей, управляемых другим поставщиком удостоверений, например AD FS (федеративные пользователи). MSAL для Java не знает, что пользователь является федеративным, а просто обменивается данными с Azure AD.

В этом случае в качестве центра авторизации используется обычный центр (имя узла центра + арендатор, общий или организации).

Получение токена в интерактивном режиме для федеративного пользователя

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

  1. Пользователь вводит идентификатор своей учетной записи.
  2. В Azure AD отображается сообщение "Выполняется переход на страницу организации", и пользователь перенаправляется на страницу входа поставщика удостоверений. Страница входа обычно настраивается с использованием логотипа организации.

Поддерживаемые версии AD FS в этом федеративном сценарии:

  • AD FS версии 2;
  • AD FS версии 3 (Windows Server 2012 R2);
  • AD FS версии 4 (AD FS 2016).

Получение токена с помощью имени пользователя и пароля

При получении токена с помощью метода ConfidentialClientApplication.AcquireToken() или PublicClientApplication.AcquireToken() с параметрами IntegratedWindowsAuthenticationParameters или UsernamePasswordParameters MSAL для Java получает поставщика удостоверений, с которым нужно связаться, на основе имени пользователя. MSAL для Java получает токен SAML 1.1 от поставщика удостоверений и предоставляет этот токен службе Azure AD, которая возвращает JSON Web Token (JWT).

Дальнейшие действия

Для федеративного варианта см. статью Настройка поведения при входе в Azure Active Directory для приложения с помощью политики обнаружения домашней области.