Logga in användare med Microsoft Authentication Library
Du har registrerat din webbapp med Microsoft Entra-ID. Nu är du redo att lägga till autentiseringskoden för att logga in användare i ditt program och vill använda en SDK som kan hantera autentiseringsinformationen åt dig. I den här lektionen får du lära dig mer om Microsoft Authentication Library for Java (MSAL4J) och hur det hjälper till med autentisering.
Microsoft-autentiseringsbibliotek för Java
Med Microsoft Authentication Library for Java (MSAL4J) kan program logga in användare eller appar med Microsoft-identiteter (Microsoft Entra-ID, Microsoft-konton och Azure Active Directory B2C-konton) och hämta token för att anropa Microsoft-API:er eller dina egna API:er som registrerats med Microsoft Entra-ID. Den skapas med hjälp av branschstandardprotokollen OAuth2 och OpenID Connect.
Biblioteket innehåller praktiska API:er som aktiverar autentisering med Microsoft Entra-ID för olika typer av program:
- Webbprogram
- Daemon-tjänster
- Kommandoradsprogram
- Skrivbordsprogram
Initiera MSAL-objektet
Om du vill börja använda MSAL måste du initiera och konfigurera MSAL-objektet i programkoden.
MSAL representerar klientprogram som offentliga klienter och konfidentiella klienter, vilket kännetecknas av deras förmåga att autentisera säkert med auktoriseringsservern och upprätthålla konfidentialiteten för sina klientautentiseringsuppgifter.
Konfidentiella klientprogram är appar som körs på servrar (webbappar, webb-API-appar eller till och med tjänst-/daemon-appar). Konfidentiella klienter kan lagra programhemligheter för konfigurationstid.
Du kan skapa en instans av den konfidentiella klienten på följande sätt:
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
- CLIENT_ID: Klient-ID:t är det unika program-ID (klient)-ID som tilldelades din app av Microsoft Entra-ID när appen registrerades.
- CLIENT_SECRET: Klienthemligheten för den konfidentiella klientappen som skapades när appen registrerades.
- UTFÄRDARE: Utfärdaren är en URL som anger en katalog som MSAL kan begära token från. Den består av identitetsproviderinstansen och inloggningspubliken för appen.
Hämta autentiseringstoken med MSAL
MSAL tillhandahåller acquireToken
metoder för att initiera autentiseringsflödet och returnera en AuthenticationResult
som innehåller autentiseringstoken.
När en användare slutför inloggningen returneras en ID-token i autentiseringsresultatet som innehåller vissa grundläggande autentiseringsanspråk som användarnamn, e-post och så vidare.
Här är ett exempel på hur du hämtar token med 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: Omdirigerings-URI:n är den URI som identitetsprovidern skickar tillbaka säkerhetstoken till. Den måste matcha omdirigerings-URI:n i Microsoft Entra-appregistreringen.
-
OMFATTNINGAR: Omfång är behörigheter som programmet begärde. Normalt räcker det med de tre omfången
openid profile offline_access
för att ta emot ett ID-tokensvar för en användarinloggning och anges som standard av MSAL.
acquireToken
Använd metoderna i ditt program när du initierar ett inloggningsflöde för användare och anropar API:er för att komma åt data.