Felhasználók bejelentkezése a Microsoft Authentication Library használatával

Befejeződött

Regisztrálta a webalkalmazást a Microsoft Entra-azonosítóval. Most már készen áll arra, hogy hozzáadja a hitelesítési kódot a felhasználók alkalmazásba való bejelentkezéséhez, és olyan SDK-t szeretne használni, amely képes kezelni a hitelesítési adatokat. Ebben a leckében megismerkedhet a Java Microsoft Authentication Library (MSAL4J) szolgáltatással, és megtudhatja, hogyan segíti a hitelesítést.

Microsoft hitelesítési kódtár Javához

A Microsoft Authentication Library for Java (MSAL4J) lehetővé teszi az alkalmazások számára, hogy Microsoft-identitásokkal (Microsoft Entra ID, Microsoft-fiókok és Azure Active Directory B2C-fiókok) jelentkezzenek be felhasználókba vagy alkalmazásokba, és jogkivonatokat szerezzenek be a Microsoft API-k vagy a Microsoft Entra-azonosítóval regisztrált saját API-k meghívásához. Az iparági szabványnak megfelelő OAuth2 és OpenID Connect protokollok használatával készült.

A kódtár kényelmes API-kat biztosít, amelyek lehetővé teszik a Microsoft Entra-azonosítóval való hitelesítést különböző típusú alkalmazásokhoz:

  • Webes alkalmazások
  • Démonszolgáltatások
  • Parancssori alkalmazások
  • Asztali alkalmazások

Az MSAL-objektum inicializálása

Az MSAL használatának megkezdéséhez inicializálnia és konfigurálnia kell az MSAL objektumot az alkalmazáskódban.

Az MSAL nyilvános ügyfélként és bizalmas ügyfélként képviseli az ügyfélalkalmazásokat, és megkülönbözteti őket attól, hogy biztonságosan hitelesíthetők az engedélyezési kiszolgálóval, és megőrzik az ügyfél hitelesítő adataik bizalmasságát.

A bizalmas ügyfélalkalmazások kiszolgálókon futó alkalmazások (webalkalmazások, webes API-alkalmazások vagy akár szolgáltatás-/démonalkalmazások). A bizalmas ügyfelek konfigurációs idejű alkalmazáskulcsokat tárolhatnak.

A bizalmas ügyfél egy példányát az alábbiak szerint hozhatja létre:

IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
                                        .builder(CLIENT_ID, credential)
                                        .authority(AUTHORITY)
                                        .build();
  • CLIENT_ID: Az ügyfél-azonosító az alkalmazáshoz a Microsoft Entra ID által az alkalmazás regisztrálásakor hozzárendelt egyedi alkalmazás-(ügyfél-) azonosító.
  • CLIENT_SECRET: Az alkalmazás regisztrálásakor létrehozott bizalmas ügyfélalkalmazás titkos ügyfélkódja.
  • SZOLGÁLTATÓ: A szolgáltató egy OLYAN URL-cím, amely egy olyan könyvtárat jelöl, amelytől az MSAL jogkivonatokat kérhet. Ez az identitásszolgáltatói példányból és az alkalmazás bejelentkezési célközönségéből áll.

Hitelesítési jogkivonatok beszerzése az MSAL használatával

Az MSAL metódusokat biztosít acquireToken a hitelesítési folyamat elindításához és a hitelesítési jogkivonatokat tartalmazó visszaadásához AuthenticationResult .

Amikor egy felhasználó befejezi a bejelentkezést, a rendszer egy azonosító jogkivonatot ad vissza a hitelesítési eredményben, amely olyan alapvető hitelesítési jogcímeket tartalmaz, mint például a felhasználónév, az e-mail stb.

Íme egy példa az MSAL-jogkivonatok beszerzésére:

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: Az átirányítási URI az az URI, amelyre az identitásszolgáltató visszaküldi a biztonsági jogkivonatokat. Meg kell egyeznie a Microsoft Entra alkalmazásregisztráció átirányítási URI-jának.
  • HATÓKÖRÖK: A hatókörök az alkalmazás által kért engedélyek. Általában a három hatókör openid profile offline_access elegendő egy azonosító jogkivonat-válasz fogadására a felhasználói bejelentkezéshez, és alapértelmezés szerint az MSAL állítja be.

acquireToken Az alkalmazás metódusaival bejelentkezési folyamatot kezdeményezhet a felhasználók számára, és api-kat hívhat meg az adatok eléréséhez.