Hämta token

Som beskrivs i MSAL för Java scenarier finns det många sätt att hämta en token. Vissa kräver användarinteraktioner via en webbläsare. Vissa kräver inga användarinteraktioner.

I allmänhet skiljer sig sättet att hämta en token beroende på programtyp – offentligt klientprogram (skrivbord/mobilt) eller ett konfidentiellt klientprogram (webbapp, webb-API, daemonprogram som en Windows-tjänst).

Förutsättningar

Innan du hämtar token med MSAL4J måste du instansiera ett klientprogram

Metoder för tokenförvärv

Följ avsnitten nedan för detaljerad förklaring med MSAL4J-kodanvändning för varje tokenanskaffningsmetod.

Offentliga klientprogram

  • Hämta token interaktivt med systemwebbläsaren
  • Hämta token med auktoriseringskod när användaren har loggat in via url:en för auktoriseringsbegäran.
  • Det är också möjligt att hämta en token med ett användarnamn och lösenord. (Det här flödet är inaktuellt)
  • För program som körs på Windows datorer och som är anslutna till en domän eller för att Microsoft Entra ID går det att hämta en token tyst och använda IWA (Integrated Windows Authentication).
  • Slutligen, för program som körs på enheter som inte har en webbläsare, är det möjligt att hämta en token via enhetskodflödet, vilket ger användaren en URL och en kod. Användaren går till en webbläsare på en annan enhet, anger koden och loggar in och sedan returnerar Microsoft Entra ID tillbaka en token till den webbläsarlösa enheten.

Konfidentiella klientprogram

  • Hämta en token som själva programmet med klientautentiseringsuppgifter, och inte för en användare. Till exempel i appar som bearbetar användare i batchar och inte en viss användare, till exempel i synkroniseringsverktyg.
  • När det gäller webbappar eller webb-API:er som anropar ett annat nedströms webb-API i användarens namn använder du On-Behalf-Of-flödet för att hämta en token baserad på ett användarintyg (till exempel SAML eller en JWT-token).
  • För webbappar i en användares namn hämtar du token med auktoriseringskod när användaren har loggat in via url:en för auktoriseringsbegäran. Detta är vanligtvis den mekanism som används av ett program som gör att användaren kan logga in med OpenID Connect, men sedan vill komma åt webb-API:er för den här användaren.

MSAL4J lagrar token i cacheminnet

För både offentliga klientprogram och konfidentiella klientprogram underhåller MSAL en tokencache, och program bör försöka hämta en token från cachen först före något annat sätt (förutom när det gäller klientautentiseringsuppgifter, som tittar på cachen på egen hand). Ta en titt på det rekommenderade mönstret för tokenförvärv.

För att kunna använda cacheminnet måste programmet anpassa tokencachens serialisering.