Logowanie użytkowników przy użyciu biblioteki uwierzytelniania firmy Microsoft
Aplikacja internetowa została zarejestrowana za pomocą identyfikatora Entra firmy Microsoft. Teraz możesz dodać kod uwierzytelniania w celu zalogowania użytkowników w aplikacji i chcesz użyć zestawu SDK, który może obsłużyć szczegóły uwierzytelniania. W tej lekcji dowiesz się więcej o bibliotece Microsoft Authentication Library for Java (MSAL4J) i o tym, jak pomaga ona w uwierzytelnianiu.
Biblioteka uwierzytelniania firmy Microsoft dla języka Java
Biblioteka Microsoft Authentication Library dla języka Java (MSAL4J) umożliwia aplikacjom logowanie użytkowników lub aplikacji przy użyciu tożsamości firmy Microsoft (identyfikator Microsoft Entra ID, kont Microsoft i kont usługi Azure Active Directory B2C) oraz uzyskiwanie tokenów w celu wywoływania interfejsów API firmy Microsoft lub własnych interfejsów API zarejestrowanych w usłudze Microsoft Entra ID. Jest on tworzony przy użyciu standardowych w branży protokołów OAuth2 i OpenID Connect.
Biblioteka udostępnia wygodne interfejsy API, które umożliwiają uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft dla różnych typów aplikacji:
- Aplikacje sieci Web
- Usługi demona
- Aplikacje wiersza polecenia
- Aplikacje klasyczne
Inicjowanie obiektu BIBLIOTEKi MSAL
Aby rozpocząć korzystanie z biblioteki MSAL, należy zainicjować i skonfigurować obiekt MSAL w kodzie aplikacji.
Biblioteka MSAL reprezentuje aplikacje klienckie jako klientów publicznych i klientów poufnych, rozróżniane przez możliwość bezpiecznego uwierzytelniania za pomocą serwera autoryzacji i zachowanie poufności poświadczeń klienta.
Poufne aplikacje klienckie to aplikacje uruchamiane na serwerach (aplikacje internetowe, aplikacje internetowego interfejsu API, a nawet aplikacje usługi/demona). Poufne klienci mogą przechowywać wpisy tajne aplikacji w czasie konfiguracji.
Wystąpienie klienta poufnego można utworzyć w następujący sposób:
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
- CLIENT_ID: Identyfikator klienta jest unikatowym identyfikatorem aplikacji (klienta) przypisanym do aplikacji przez identyfikator Firmy Microsoft Entra po zarejestrowaniu aplikacji.
- CLIENT_SECRET: klucz tajny klienta dla poufnej aplikacji klienckiej utworzony podczas rejestrowania aplikacji.
- URZĄD: Urząd jest adresem URL wskazującym katalog, z którego biblioteka MSAL może żądać tokenów. Składa się ona z wystąpienia dostawcy tożsamości i odbiorców logowania dla aplikacji.
Uzyskiwanie tokenów uwierzytelniania przy użyciu biblioteki MSAL
Biblioteka MSAL udostępnia acquireToken
metody inicjowania przepływu uwierzytelniania i zwracania AuthenticationResult
tokenów uwierzytelniania.
Po zakończeniu logowania użytkownik zwraca token identyfikatora w wyniku uwierzytelniania zawierającym niektóre podstawowe oświadczenia uwierzytelniania, takie jak nazwa użytkownika, adres e-mail itd.
Oto przykład uzyskiwania tokenów przy użyciu biblioteki 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: identyfikator URI przekierowania to identyfikator URI, do którego dostawca tożsamości wysyła tokeny zabezpieczające. Musi być zgodny z identyfikatorem URI przekierowania w rejestracji aplikacji Microsoft Entra.
- ZAKRESY: Zakresy są uprawnieniami żądanymi przez aplikację. Zwykle trzy zakresy
openid profile offline_access
są wystarczające do otrzymania odpowiedzi tokenu identyfikatora dla logowania użytkownika i są ustawiane domyślnie przez bibliotekę MSAL.
acquireToken
Użyj metod w aplikacji podczas inicjowania przepływu logowania dla użytkowników i wywoływania interfejsów API w celu uzyskania dostępu do danych.