Aanmelding met MSAL4J begrijpen

Voltooid

MSAL4J verbindt de toepassingsconfiguratie met Microsoft identity platform verificatie- en token-acquisitie-API's. In deze les wordt een voorbeeld van clientconstructie en de rol van de bibliotheek in de aanmeldingsstroom van een webtoepassing uitgelegd.

Microsoft Authentication Library voor Java

Met de Microsoft Authentication Library voor Java (MSAL4J) kunnen toepassingen worden geverifieerd met Microsoft identiteiten en tokens voor beveiligde API's verkrijgen. Het ondersteunt scenario's met betrekking tot Microsoft Entra ID, persoonlijke Microsoft-accounts en Azure AD B2C, met behulp van OAuth 2.0 en OpenID Connect.

Note

Bestaande Azure AD B2C-klanten kunnen de service blijven gebruiken. Het is sinds 1 mei 2025 niet beschikbaar voor aankoop door nieuwe klanten en de ondersteuning wordt voortgezet tot ten minste mei 2030. Azure AD B2C P2 is stopgezet voor alle klanten op 15 maart 2026; doorlopende serviceondersteuning heeft geen betrekking op buiten gebruik gestelde P2-functies.

Gebruik Microsoft Entra Externe id voor nieuwe klantidentiteitsprojecten. Het scenario in deze module betreft een Microsoft Entra-tenant voor personeel, geen Azure AD B2C-tenant of een External ID-externe tenant. Zie de veelgestelde vragen over het einde van de verkoop van Azure AD B2C voor meer informatie.

MSAL4J ondersteunt verschillende toepassingstypen, waaronder webtoepassingen, achtergrondservices, opdrachtregeltoepassingen en bureaubladtoepassingen. Het juiste clienttype en de stroom voor het verkrijgen van tokens zijn afhankelijk van de omgeving van de toepassing.

Een vertrouwelijke client vertegenwoordigt de servertoepassing

MSAL onderscheidt openbare clients, die niet betrouwbaar toepassingsreferenties vertrouwelijk kunnen houden, van vertrouwelijke clients, die zichzelf kunnen verifiëren met behulp van veilig bewaarde referenties. Een Java-webtoepassing aan de serverzijde is een vertrouwelijke client.

Het volgende voorbeeldfragment construeert die client. De namen in hoofdletters zijn configuratie-placeholders, geen echte ID's of geheime gegevens. Importbewerkingen, omringende toepassingscode en uitzonderingsafhandeling worden niet weergegeven.

IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
                                        .builder(CLIENT_ID, credential)
                                        .authority(AUTHORITY)
                                        .build();

Het fragment verbindt drie invoerwaarden:

Invoer Meaning
CLIENT_ID De toepassings-id uit de registratie.
CLIENT_SECRET Een tijdelijke aanduiding voor geheim materiaal dat aan de server is geleverd. Dit illustreert een inloggegevensfabriek, niet een verzoek om een geheim te maken of in te sluiten.
AUTHORITY De URL van de id-provider en de aanmeldingsdoelgroep. In het scenario met één tenant wordt de geselecteerde Microsoft Entra tenant geïdentificeerd.

ClientCredentialFactory maakt een aanmeldingsobject en de builder koppelt die referentie aan de client-id en de authoriteit van de toepassing. Het aanroepen van build() instantieert de MSAL-client; het meldt geen gebruiker aan en stuurt de browser nergens naartoe.

De rol van MSAL in de autorisatiecodestroom

Een vertrouwelijke client verifieert de toepassing, terwijl de browserinteractie de gebruiker verifieert. De toepassing coördineert deze onderdelen van de stroom:

Phase MSAL-API Toepassingsverantwoordelijkheid
Aanmelding via browser starten getAuthorizationRequestUrl Een autorisatieaanvraag maken en de browser ernaar omleiden.
Een autorisatiecode inwisselen acquireToken met AuthorizationCodeParameters De callback verwerken, het antwoord valideren en de ontvangen code voor tokens uitwisselen.
Een token verkrijgen voor een latere API-aanroep acquireTokenSilently met SilentParameters Geef het account en de juiste context van de tokencache op en verwerkt cases waarvoor gebruikersinteractie is vereist.

Voor deze webtoepassing ontvangt de callback een autorisatiecode, niet het Microsoft Graph toegangstoken. Code-inwisseling vindt plaats via een server-naar-server-aanvraag voor het tokeneindpunt.

Het verificatieresultaat interpreteren

Het succesvol inwisselen van een code levert een IAuthenticationResult op. In dit OpenID Connect-scenario geeft het resultaat een id-token voor de toepassing en een toegangstoken voor de aangevraagde API. Het bevat ook informatie die wordt gebruikt voor het beheren van de levensduur van het account en het token.

Het id-token bevat identiteitsclaims; met het toegangstoken kan een aanvraag naar de beoogde API worden verzonden. Een id-token is geen vervanging voor een Microsoft Graph toegangstoken. MSAL4J verkrijgt tokens, maar de toepassing of een API-specifieke SDK maakt de volgende zakelijke API-aanroep.

In het volgende onderdeel worden deze verantwoordelijkheden behandeld aan de hand van geannoteerde servletcode. Het MSAL-overzicht biedt aanvullende context over ondersteunde scenario's en tokenbeheer.