Вход пользователей с помощью библиотеки проверки подлинности Майкрософт
Вы зарегистрировали веб-приложение с идентификатором Microsoft Entra. Теперь вы готовы добавить код проверки подлинности для входа пользователей в приложение и использовать пакет SDK, который может обрабатывать сведения о проверке подлинности. В этом уроке вы узнаете о библиотеке проверки подлинности Майкрософт для Java (MSAL4J) и о том, как она помогает с проверкой подлинности.
Библиотека аутентификации Майкрософт для Java
Библиотека проверки подлинности Майкрософт для Java (MSAL4J) позволяет приложениям выполнять вход пользователей или приложений с помощью удостоверений Майкрософт (идентификатор Microsoft Entra, учетных записей Майкрософт и учетных записей Azure Active Directory B2C) и получать маркеры для вызова API Майкрософт или собственных API, зарегистрированных в идентификаторе Microsoft Entra ID. Он построен с использованием отраслевых протоколов OAuth2 и OpenID Connect.
Библиотека предоставляет удобные API,которые обеспечивают проверку подлинности с помощью идентификатора Microsoft Entra для различных типов приложений:
- Веб-приложения
- Службы управляющей программы
- Приложения командной строки
- Классические приложения
Инициализация объекта MSAL
Чтобы начать использование MSAL, необходимо инициализировать и настроить объект MSAL в коде приложения.
MSAL представляет клиентские приложения как общедоступные клиенты и конфиденциальные клиенты. Они отличаются друг от друга возможностью безопасной проверки подлинности с помощью сервера авторизации и сохранения конфиденциальности своих клиентских учетных данных.
Конфиденциальные клиенты — это приложения, работающие на серверах (веб-приложения, приложения веб-API и даже служебные или управляющие приложения). Конфиденциальные клиенты могут содержать секреты приложения времени настройки.
Вы можете создать экземпляр конфиденциального клиента следующим образом:
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
- CLIENT_ID. Идентификатор клиента — это уникальный идентификатор приложения (клиента), назначенный приложению идентификатором Microsoft Entra ID при регистрации приложения.
- CLIENT_SECRET. Секрет клиента для конфиденциального клиентского приложения, созданный при регистрации приложения.
- AUTHORITY. Это URL-адрес, указывающий на каталог, из которого MSAL может запрашивать маркеры. Он состоит из экземпляра поставщика удостоверений и аудитории входа для приложения.
Получение маркеров проверки подлинности с помощью MSAL
MSAL предоставляет методы acquireToken
, чтобы инициировать поток проверки подлинности и вернуть AuthenticationResult
с маркерами проверки подлинности.
Когда пользователь завершает вход, маркер идентификатора возвращается в результате проверки подлинности, содержащей некоторые основные утверждения проверки подлинности, такие как имя пользователя, электронная почта и т. д.
Ниже приведен пример получения маркеров с помощью MSAL:
final AuthorizationCodeParameters authParams = AuthorizationCodeParameters
.builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES))
.build();
final IAuthenticationResult result = app.acquireToken(authParams).get();
- REDIRECT_URI. URI перенаправления — это универсальный код ресурса (URI), в который поставщик удостоверений отправляет маркеры безопасности обратно. Он должен соответствовать URI перенаправления в регистрации приложения Microsoft Entra.
-
SCOPES: области — это разрешения, запрошенные приложением. Обычно трех областей
openid profile offline_access
достаточно для получения ответа маркера идентификации для входа пользователя. Они задаются MSAL по умолчанию.
acquireToken
Используйте методы в приложении при инициировании потока входа для пользователей и вызова API для доступа к данным.