Bejelentkezés engedélyezése Java JBoss EAP-alkalmazásokhoz az MSAL4J és az Azure Active Directory B2C használatával
Ez a cikk egy Java JBoss EAP-alkalmazást mutat be, amely az Azure Active Directory B2C (Azure AD B2C) használatával hitelesíti a felhasználókat a Microsoft Authentication Library for Java (MSAL4J) használatával.
Az alábbi ábrán az alkalmazás topológiája látható:
Az alkalmazás MSAL4J használatával jelentkezik be a felhasználókba, és egy azonosító jogkivonatot szerez be az Azure AD B2C-ből. Az azonosító jogkivonat igazolja, hogy a felhasználó hitelesítése egy Azure AD B2C-bérlőn történik.
Előfeltételek
- JDK 8-os vagy újabb verzió
- Maven 3
- Egy Azure AD B2C-bérlő. További információ : Oktatóanyag: Azure Active Directory B2C-bérlő létrehozása
- Egy felhasználói fiók az Azure AD B2C-bérlőben.
Ajánlások
- Néhány ismerős a Java / Jakarta Servlets.
- A Linux/OSX terminál vagy a Windows PowerShell ismerete.
- jwt.ms a jogkivonatok vizsgálatához.
- A Fiddler a hálózati tevékenység figyeléséhez és a hibaelhárításhoz.
- Kövesse a Microsoft Entra ID blogot , hogy naprakész maradjon a legújabb fejlesztésekkel kapcsolatban.
A minta beállítása
Az alábbi szakaszok bemutatják, hogyan állíthatja be a mintaalkalmazást.
A mintaadattár klónozása vagy letöltése
A minta klónozásához nyisson meg egy Bash-ablakot, és használja a következő parancsot:
git clone https://github.com/Azure-Samples/ms-identity-java-servlet-webapp-authentication.git
cd 1-Authentication/sign-in-b2c
Másik lehetőségként keresse meg az ms-identity-java-servlet-webapp-authentication adattárat, majd töltse le .zip fájlként, és bontsa ki a merevlemezre.
Fontos
A Windows fájlelérési útvonalának korlátozásainak elkerülése érdekében klónozza vagy bontsa ki az adattárat a merevlemez gyökerének közelében található könyvtárba.
A mintaalkalmazás regisztrálása az Azure AD B2C-bérlővel
A minta egy előre regisztrált alkalmazással rendelkezik tesztelési célokra. Ha saját Azure AD B2C-bérlőt és -alkalmazást szeretne használni, kövesse az alábbi szakaszokban leírt lépéseket az alkalmazás Azure Portalon való regisztrálásához és konfigurálásához. Ellenkező esetben folytassa a minta futtatásának lépéseivel.
Válassza ki azt az Azure AD B2C-bérlőt, ahol az alkalmazásokat létre szeretné hozni
A bérlő kiválasztásához kövesse az alábbi lépéseket:
Jelentkezzen be az Azure Portalra.
Ha a fiókja több Azure AD B2C-bérlőben is megtalálható, válassza ki a profilját az Azure Portal sarkában, majd válassza a Címtár váltása lehetőséget a munkamenet kívánt Azure AD B2C-bérlőre való módosításához.
Felhasználói folyamatok és egyéni szabályzatok létrehozása
Ha olyan gyakori felhasználói folyamatokat szeretne létrehozni, mint a regisztráció, a bejelentkezés, a profil szerkesztése és a jelszó alaphelyzetbe állítása, tekintse meg a következő oktatóanyagot: Felhasználói folyamatok létrehozása az Azure Active Directory B2C-ben.
Érdemes lehet egyéni szabályzatokat is létrehozni az Azure Active Directory B2C-ben , de ez nem terjed ki az oktatóanyag hatókörére.
Külső identitásszolgáltatók hozzáadása
Az alkalmazás regisztrálása (ms-identity-b2c-java-servlet-webapp-authentication)
Az alkalmazás regisztrálásához kövesse az alábbi lépéseket:
Lépjen az Azure Portalra , és válassza az Azure AD B2C-t.
Válassza az Alkalmazásregisztrációk lehetőséget a navigációs panelen, majd válassza az Új regisztráció lehetőséget.
A megjelenő Alkalmazás regisztrálása lapon adja meg a következő alkalmazásregisztrációs adatokat:
- A Név szakaszban adjon meg egy értelmes alkalmazásnevet, amely megjeleníthető az alkalmazás felhasználói számára – például
ms-identity-b2c-java-servlet-webapp-authentication
. - A Támogatott fióktípusok területen válassza a Fiókok lehetőséget bármely szervezeti címtárban és személyes Microsoft-fiókban (pl. Skype, Xbox, Outlook.com).
- Az Átirányítási URI (nem kötelező) szakaszban válassza a Web lehetőséget a kombinált listában, és adja meg a következő átirányítási URI-t:
http://localhost:8080/ms-identity-b2c-java-servlet-webapp-authentication/auth_redirect
.
- A Név szakaszban adjon meg egy értelmes alkalmazásnevet, amely megjeleníthető az alkalmazás felhasználói számára – például
Válassza a Regisztráció elemet az alkalmazás létrehozásához.
Az alkalmazás regisztrációs oldalán keresse meg és másolja ki az alkalmazás (ügyfél) azonosítójának értékét, amelyet később használni szeretne. Ezt az értéket az alkalmazás konfigurációs fájljában vagy fájljaiban használja.
Válassza a Mentés lehetőséget a módosítások mentéséhez.
Az alkalmazás regisztrációs oldalán válassza a Tanúsítványok > titkos kulcsok lehetőséget a navigációs panelen a titkos kulcsok létrehozására és tanúsítványok feltöltésére szolgáló lap megnyitásához.
Az Ügyfél titkos kulcsok szakaszban válassza az Új ügyfélkód lehetőséget.
Írja be a leírást – például az alkalmazás titkos kódját.
Válasszon egyet a rendelkezésre álló időtartamok közül: 1 év, 2 év alatt vagy Soha nem jár le.
Válassza a Hozzáadás lehetőséget. Megjelenik a létrehozott érték.
Másolja és mentse a létrehozott értéket a későbbi lépésekben való használatra. Szüksége van erre az értékre a kód konfigurációs fájljaihoz. Ez az érték nem jelenik meg újra, és más módon nem kérhető le. Ezért mindenképpen mentse az Azure Portalról, mielőtt bármilyen más képernyőre vagy panelre navigálna.
Konfigurálja az alkalmazást (ms-identity-b2c-java-servlet-webapp-authentication) az alkalmazásregisztráció használatára
Az alkalmazás konfigurálásához kövesse az alábbi lépéseket:
Feljegyzés
A következő lépésekben ugyanaz, ClientID
mint Application ID
vagy AppId
.
Nyissa meg a projektet az IDE-ben.
Nyissa meg a ./src/main/resources/authentication.properties fájlt.
Keresse meg a
aad.clientId
tulajdonságot, és cserélje le a meglévő értéket az alkalmazásazonosítóra vagyclientId
az alkalmazásra azms-identity-b2c-java-servlet-webapp-authentication
Azure Portalon.Keresse meg a
aad.secret
tulajdonságot, és cserélje le a meglévő értéket az alkalmazás létrehozása során azms-identity-b2c-java-servlet-webapp-authentication
Azure Portalról mentett értékre.Keresse meg a
aad.scopes
tulajdonságot, és cserélje le a meglévő alkalmazás ügyfélazonosítóját a szakasz 1. lépésében megadottaad.clientId
értékre.Keresse meg a
aad.authority
tulajdonságot, és cserélje le az első példánytfabrikamb2c
annak az Azure AD B2C-bérlőnek a nevére, amelyben azms-identity-b2c-java-servlet-webapp-authentication
alkalmazást az Azure Portalon hozta létre.Keresse meg a
aad.authority
tulajdonságot, és cserélje le a második példánytfabrikamb2c
annak az Azure AD B2C-bérlőnek a nevére, amelyben azms-identity-b2c-java-servlet-webapp-authentication
alkalmazást az Azure Portalon hozta létre.Keresse meg a
aad.signInPolicy
tulajdonságot, és cserélje le annak a regisztrációs/bejelentkezési felhasználói folyamat szabályzatnak a nevére, amelyet abban az Azure AD B2C-bérlőben hozott létre, amelyben az alkalmazást azms-identity-b2c-java-servlet-webapp-authentication
Azure Portalon hozta létre.Keresse meg a
aad.passwordResetPolicy
tulajdonságot, és cserélje le az Azure AD B2C-bérlőben létrehozott jelszó-visszaállítási felhasználói folyamat szabályzat nevére, amelyben az alkalmazást azms-identity-b2c-java-servlet-webapp-authentication
Azure Portalon hozta létre.Keresse meg a
aad.editProfilePolicy
tulajdonságot, és cserélje le az Azure AD B2C-bérlőben létrehozott szerkesztési profil felhasználói folyamat szabályzatának nevére, amelyben az alkalmazást azms-identity-b2c-java-servlet-webapp-authentication
Azure Portalon hozta létre.
A minta összeállítása
Ha a mintát a Maven használatával szeretné létrehozni, keresse meg a minta pom.xml fájljának könyvtárát, majd futtassa a következő parancsot:
mvn clean package
Ez a parancs létrehoz egy .war fájlt, amelyet számos alkalmazáskiszolgálón futtathat.
Minta futtatása
Az alábbi szakaszok bemutatják, hogyan helyezheti üzembe a mintát Azure-alkalmazás szolgáltatásban.
Előfeltételek
Maven beépülő modul Azure-alkalmazás Service-alkalmazásokhoz
Ha nem a Maven az előnyben részesített fejlesztési eszköz, tekintse meg az alábbi hasonló oktatóanyagokat, amelyek más eszközöket használnak:
A Maven beépülő moduljának konfigurálása
A szolgáltatás Azure-alkalmazás üzembe helyezési folyamata automatikusan az Azure CLI-ből származó Azure-hitelesítő adatokat használja. Ha az Azure CLI nincs helyileg telepítve, akkor a Maven beépülő modul az OAuth vagy az eszköz bejelentkezésével hitelesít. További információ: Hitelesítés a Maven beépülő modulokkal.
A beépülő modul konfigurálásához kövesse az alábbi lépéseket:
Futtassa a mellette látható Maven-parancsot az üzembe helyezés konfigurálásához. Ez a parancs segít beállítani az App Service operációs rendszer, a Java és a Tomcat verziót.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
Új futtatási konfiguráció létrehozásához nyomja le az Y billentyűt, majd nyomja le az Enter billentyűt.
Az operációs rendszer értékének definiálásához nyomja le a 2 billentyűt Linux esetén, majd nyomja le az Enter billentyűt.
A JavaVersion értékének definiálásához nyomja le a 2 billentyűt a Java 11-hez, majd nyomja le az Enter billentyűt.
A webContainer értékének definiálásához nyomja le az 1 billentyűt a JBosseap7-hez, majd nyomja le az Enter billentyűt.
A pricingTier értékének meghatározásához nyomja le az Enter billentyűt az alapértelmezett P1v3 szint kiválasztásához.
A megerősítéshez nyomja le az Y billentyűt, majd nyomja le az Enter billentyűt.
Az alábbi példa az üzembehelyezési folyamat kimenetét mutatja be:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707220080695
ResourceGroup : msal4j-servlet-auth-1707220080695-rg
Region : centralus
PricingTier : P1v3
OS : Linux
Java Version: Java 11
Web server stack: JBosseap 7
Deploy to slot : false
Confirm (Y/N) [Y]:
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.196 s
[INFO] Finished at: 2024-02-06T11:48:16Z
[INFO] ------------------------------------------------------------------------
Miután megerősítette a választási lehetőségeket, a beépülő modul hozzáadja a beépülő modul konfigurációját és a szükséges beállításokat a projekt pom.xml fájljához, hogy konfigurálja az alkalmazást a Azure-alkalmazás Szolgáltatásban való futtatásra.
A pom.xml fájl releváns részének az alábbi példához hasonlóan kell kinéznie:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
Az App Service konfigurációit közvetlenül a pom.xml módosíthatja. Néhány gyakori konfiguráció az alábbi táblázatban található:
Tulajdonság | Kötelező | Leírás | Verzió |
---|---|---|---|
schemaVersion |
false | A konfigurációs séma verziója. A támogatott értékek a következők: v1 és v2 . |
1.5.2 |
subscriptionId |
false | Az előfizetés azonosítója. | 0.1.0+ |
resourceGroup |
true | Az alkalmazás Azure-erőforráscsoportja. | 0.1.0+ |
appName |
true | Az alkalmazás neve. | 0.1.0+ |
region |
false | Az a régió, amelyben az alkalmazást üzemeltetni szeretné. Az alapértelmezett érték centralus . Érvényes régiókért lásd: Támogatott régiók. |
0.1.0+ |
pricingTier |
false | Az alkalmazás tarifacsomagja. Az alapértelmezett érték a P1v2 az éles számítási feladatokhoz. A Java-fejlesztés és -tesztelés ajánlott minimális értéke a B2 . További információ: App Service díjszabása |
0.1.0+ |
runtime |
false | A futtatókörnyezet konfigurációja. További információ: Konfiguráció részletei. | 0.1.0+ |
deployment |
false | Az üzembehelyezési konfiguráció. További információ: Konfiguráció részletei. | 0.1.0+ |
A konfigurációk teljes listáját a beépülő modul referenciadokumentációjában találja. Az Összes Azure Maven beépülő modul közös konfigurációkat használ. Ezekről a konfigurációkról a Gyakori konfigurációk című témakörben olvashat. A Azure-alkalmazás Service-hez kapcsolódó konfigurációkért lásd: Azure-alkalmazás: Konfiguráció részletei.
Ügyeljen arra, hogy a későbbi használatra félretehesse az értékeket és resourceGroup
az appName
értékeket.
Az alkalmazás előkészítése az üzembe helyezéshez
Amikor üzembe helyezi az alkalmazást az App Service-ben, az átirányítási URL-cím az üzembe helyezett alkalmazáspéldány átirányítási URL-címére változik. A tulajdonságok fájljában a következő lépésekkel módosíthatja ezeket a beállításokat:
Keresse meg az alkalmazás authentication.properties fájlját, és módosítsa a
app.homePage
telepített alkalmazás tartománynevére az alábbi példában látható módon. Ha például az előző lépésben az alkalmazás nevét választottaexample-domain
, akkor most már használniahttps://example-domain.azurewebsites.net
kell azapp.homePage
értéket. Győződjön meg arról, hogy a protokollt is módosította a másikrahttp
https
.# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.net
A fájl mentése után használja az alábbi parancsot az alkalmazás újraépítéséhez:
mvn clean package
Fontos
Ebben a authentication.properties fájlban van egy beállítás az Ön aad.secret
számára. Nem ajánlott ezt az értéket az App Service-ben üzembe helyezni. Nem ajánlott ezt az értéket a kódban hagyni, és potenciálisan leküldni a git-adattárba. Ha el szeretné távolítani ezt a titkos értéket a kódból, részletesebb útmutatást az App Service-ben való üzembe helyezés – Titkos kódok eltávolítása című szakaszban talál. Ez az útmutató további lépéseket tartalmaz a titkos kulcs értékének a Key Vaultba való leküldéséhez és a Key Vault-referenciák használatához.
A Microsoft Entra ID alkalmazásregisztráció frissítése
Mivel az átirányítási URI Azure-alkalmazás Szolgáltatásra változik, a Microsoft Entra ID alkalmazásregisztrációjában is módosítania kell az átirányítási URI-t. A módosítás végrehajtásához kövesse az alábbi lépéseket:
Lépjen a Microsoft Identitásplatform fejlesztőknek Alkalmazásregisztrációk lapra.
A keresőmező használatával keresse meg az alkalmazásregisztrációt – például
java-servlet-webapp-authentication
.Nyissa meg az alkalmazásregisztrációt a nevének kiválasztásával.
Válassza a Hitelesítés lehetőséget a menüben.
A Webes - átirányítási URI-k szakaszban válassza az URI hozzáadása lehetőséget.
Töltse ki az alkalmazás URI-ját, hozzáfűzve
/auth/redirect
példáulhttps://<your-app-name>.azurewebsites.net/auth/redirect
.Válassza a Mentés lehetőséget.
Az alkalmazás üzembe helyezése
Most már készen áll az alkalmazás üzembe helyezésére Azure-alkalmazás Service-ben. Az alábbi paranccsal győződjön meg arról, hogy bejelentkezett az Azure-környezetbe az üzembe helyezés végrehajtásához:
az login
Ha az összes konfiguráció készen áll a pom.xml fájlban, a következő paranccsal telepítheti a Java-alkalmazást az Azure-ban:
mvn package azure-webapp:deploy
Az üzembe helyezés befejezése után az alkalmazás készen áll a .http://<your-app-name>.azurewebsites.net/
Nyissa meg az URL-címet a helyi webböngészővel, ahol meg kell jelennie az msal4j-servlet-auth
alkalmazás kezdőlapjának.
A minta vizsgálata
A minta megismeréséhez kövesse az alábbi lépéseket:
- Figyelje meg a bejelentkezett vagy kijelentkezett állapotot a képernyő közepén.
- Válassza a sarokban található környezetérzékeny gombot. Ez a gomb beolvassa a bejelentkezést az alkalmazás első futtatásakor.
- A következő lapon kövesse az utasításokat, és jelentkezzen be a kiválasztott identitásszolgáltató fiókjával.
- Figyelje meg, hogy a környezetfüggő gomb most kijelentkezik , és megjeleníti a felhasználónevét.
- Válassza az Azonosító jogkivonat részletei lehetőséget az azonosító jogkivonat egyes dekódolt jogcímeinek megtekintéséhez.
- Lehetősége van a profil szerkesztésére is. A hivatkozásra kattintva szerkesztheti az olyan részleteket, mint a megjelenített név, a lakóhely és a foglalkozás.
- A kijelentkezéshez használja a sarokban lévő gombot.
- A kijelentkezés után keresse meg a következő URL-címet a jogkivonat részleteinek oldalához:
http://localhost:8080/ms-identity-b2c-java-servlet-webapp-authentication/auth_token_details
. Itt megfigyelheti, hogy az alkalmazás hogyan jelenít meg hibát401: unauthorized
az azonosító jogkivonat jogcímei helyett.
Tudnivalók a kódról
Ez a minta bemutatja, hogyan használhatja az MSAL4J-t a felhasználók Azure AD B2C-bérlőbe való bejelentkezésére.
Tartalom
Az alábbi táblázat a mintaprojekt mappájának tartalmát mutatja be:
Fájl/mappa | Leírás |
---|---|
AuthHelper.java | Segédfüggvények a hitelesítéshez. |
Config.java | Indításkor fut, és konfigurálja a tulajdonságolvasót és a naplózót. |
authentication.properties | Microsoft Entra-azonosító és programkonfiguráció. |
AuthenticationFilter.java | A nem hitelesített kéréseket átirányítja a védett erőforrásokra egy 401-es lapra. |
MsalAuthSession | Példányosított egy HttpSession . Az MSAL-hez kapcsolódó munkamenet-attribútumokat a munkamenet attribútumban tárolja. |
____Servlet.java | Az összes elérhető végpont .java ____Servlet.java végződésű osztályokban van definiálva. |
CHANGELOG.md | A minta módosításainak listája. |
CONTRIBUTING.md | Útmutató a mintához való hozzájáruláshoz. |
LICEN Standard kiadás | A minta licence. |
ConfidentialClientApplication
A rendszer létrehoz egy ConfidentialClientApplication
példányt a AuthHelper.java fájlban, ahogy az az alábbi példában is látható. Ez az objektum segít létrehozni az Azure AD B2C engedélyezési URL-címét, és segít a hitelesítési jogkivonat cseréjében egy hozzáférési jogkivonathoz.
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
.builder(CLIENT_ID, secret)
.b2cAuthority(AUTHORITY + policy)
.build();
A rendszer a következő paramétereket használja a példányosításhoz:
- Az alkalmazás ügyfélazonosítója.
- Az ügyfél titkos kódja, amely a bizalmas ügyfélalkalmazások követelménye.
- Az Azure AD B2C-szolgáltató összefűzve van a
UserFlowPolicy
megfelelő regisztrációhoz, bejelentkezéshez, profil-szerkesztéshez vagy jelszó-visszaállításhoz.
Ebben a mintában ezeket az értékeket a rendszer a authentication.properties fájlból olvassa be a Config.java fájl egyik tulajdonságolvasójának használatával.
Útmutató lépésről lépésre
Az alábbi lépések bemutatja az alkalmazás funkcióit:
A bejelentkezési folyamat első lépése egy kérés küldése az
/authorize
Azure Active Directory B2C-bérlő végpontjára. Az MSAL4J-példányConfidentialClientApplication
egy engedélyezési kérelem URL-címének létrehozására szolgál, és az alkalmazás átirányítja a böngészőt erre az URL-címre, ahogyan az a következő példában látható:final ConfidentialClientApplication client = getConfidentialClientInstance(policy); final AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters .builder(REDIRECT_URI, Collections.singleton(SCOPES)).responseMode(ResponseMode.QUERY) .prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build(); final String redirectUrl = client.getAuthorizationRequestUrl(parameters).toString(); Config.logger.log(Level.INFO, "Redirecting user to {0}", redirectUrl); resp.setStatus(302); resp.sendRedirect(redirectUrl);
Az alábbi lista a kód funkcióit ismerteti:
AuthorizationRequestUrlParameters
: Az AuthorizationRequestUrl létrehozásához be kell állítani paramétereket.REDIRECT_URI
: Ahol az Azure AD B2C átirányítja a böngészőt a hitelesítési kóddal együtt a felhasználói hitelesítő adatok gyűjtése után.SCOPES
: 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ő lenne egy azonosító jogkivonat-válasz fogadásához. Az MSAL4J azonban megköveteli, hogy az Azure AD B2C minden válasza tartalmazzon hozzáférési jogkivonatot is.Ahhoz, hogy az Azure AD B2C kiadhasson egy hozzáférési jogkivonatot és egy azonosító jogkivonatot, a kérésnek tartalmaznia kell egy további erőforrás-hatókört. Mivel ez az alkalmazás valójában nem igényel külső erőforrás-hatókört, negyedik hatókörként hozzáadja a saját ügyfél-azonosítóját a hozzáférési jogkivonat fogadásához.
Az alkalmazás által kért hatókörök teljes listáját a authentication.properties fájlban találja.
ResponseMode.QUERY
: Az Azure AD B2C egy HTTP POST-kérelemben űrlapparamákként vagy egy HTTP GET-kérelem lekérdezési sztringparamjaként adja vissza a választ.Prompt.SELECT_ACCOUNT
: Az Azure AD B2C-nek meg kell kérnie a felhasználót, hogy válassza ki azt a fiókot, amellyel hitelesítést kíván végezni.state
: Az alkalmazás által az egyes jogkivonat-kérelmek munkamenetébe beállított egyedi változó, amely a megfelelő Azure AD B2C-átirányítási visszahívás fogadása után megsemmisül. Az állapotváltozó biztosítja, hogy az Azure AD B2C-kérések ténylegesen az/auth_redirect endpoint
alkalmazásból és ebből a munkamenetből származó Azure AD B2C engedélyezési kérelmekből származnak, ezáltal megelőzve a CSRF-támadásokat. Ez a AADRedirectServlet.java fájlban történik.nonce
: Az alkalmazás által az egyes jogkivonat-kérelmek munkamenetébe beállított egyedi változó, amely a megfelelő jogkivonat fogadása után megsemmisült. Ez a nonce át lesz írva az azure AD B2C-nek kiosztott jogkivonatokra, így biztosítva, hogy ne fordul elő jogkivonat-visszajátszásos támadás.
Az Azure Active Directory B2C egy bejelentkezési kérést jelenít meg a felhasználónak. Ha a bejelentkezési kísérlet sikeres, a rendszer átirányítja a felhasználó böngészőjét az alkalmazás átirányítási végpontjára. A végpontra irányuló érvényes kérés tartalmaz egy engedélyezési kódot.
A
ConfidentialClientApplication
példány ezután kicseréli ezt az engedélyezési kódot egy azonosító jogkivonatra és hozzáférési jogkivonatra az Azure Active Directory B2C-ből, az alábbi példában látható módon:final AuthorizationCodeParameters authParams = AuthorizationCodeParameters .builder(authCode, new URI(REDIRECT_URI)) .scopes(Collections.singleton(SCOPES)).build(); final ConfidentialClientApplication client = AuthHelper .getConfidentialClientInstance(policy); final Future<IAuthenticationResult> future = client.acquireToken(authParams); final IAuthenticationResult result = future.get();
Az alábbi lista a kód funkcióit ismerteti:
AuthorizationCodeParameters
: Olyan paraméterek, amelyeket be kell állítani az engedélyezési kód azonosítóra és/vagy hozzáférési jogkivonatra való cseréjéhez.authCode
: Az átirányítási végponton kapott engedélyezési kód.REDIRECT_URI
: Az előző lépésben használt átirányítási URI-t ismét át kell adni.SCOPES
: Az előző lépésben használt hatóköröket ismét át kell adni.
Ha
acquireToken
a jogkivonat-jogcímek sikeresek, a rendszer kinyeri a jogkivonat-jogcímeket, és érvényesíti a nem érvényes jogcímet a munkamenetben tárolt nem jogkivonattal szemben, az alábbi példában látható módon:parseJWTClaimsSetAndStoreResultInSession(msalAuth, result, serializedTokenCache); validateNonce(msalAuth) processSuccessfulAuthentication(msalAuth);
Ha a nem érvényesítés sikeresen megtörtént, a hitelesítési állapot egy kiszolgálóoldali munkamenetbe kerül, az
MsalAuthSession
osztály által közzétett metódusok használatával, ahogyan az alábbi példában látható:msalAuth.setAuthenticated(true); msalAuth.setUsername(msalAuth.getIdTokenClaims().get("name"));
További információ
- Mi az az Azure Active Directory B2C?
- Az Active Directory B2C-ben használható alkalmazástípusok
- Azure Active Directory B2C-vel kapcsolatos javaslatok és ajánlott eljárások
- Azure AD B2C-munkamenet
- Microsoft Authentication Library (MSAL) Java-hoz
További információ az OAuth 2.0 protokollok működéséről ebben a forgatókönyvben és más forgatókönyvekben: Hitelesítési forgatókönyvek a Microsoft Entra ID-hoz.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: