Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan hozhat létre egy Java WebSphere-alkalmazást, amely a felhasználókat a Microsoft Authentication Library (MSAL) for Java használatával jelentkezteti be. Az alkalmazás a Microsoft Entra ID biztonsági csoporttagságon alapuló lapokhoz való hozzáférést is korlátozza.
Az alábbi ábrán az alkalmazás topológiája látható:
Az alkalmazás topológiáját bemutató diagram.
Az ügyfélalkalmazás a felhasználók Microsoft Entra ID-bérlőbe való bejelentkeztetéséhez és a Microsoft Entra ID-tól származó azonosító jogkivonat lekéréséhez a Java-hoz készült MSAL-t (MSAL4J) használja. Az ID-jogkivonat igazolja, hogy a felhasználó hitelesítve van ebben a bérlőben. Az alkalmazás a felhasználó hitelesítési állapota és a csoporttagság alapján védi az útvonalakat.
Az ezt a forgatókönyvet bemutató videóért lásd a következőt: Az alkalmazások engedélyezésének megvalósítása alkalmazásszerepkörök, biztonsági csoportok, hatókörök és címtárszerepkörök használatával.
Előfeltételek
- JDK 8-as vagy újabb verzió
- Maven 3
- Egy Microsoft Entra ID-bérlő. További információért lásd: Microsoft Entra ID-bérlő beszerzése.
- Egy felhasználói fiók a saját Microsoft Entra ID-bérlőben.
- Két biztonsági csoport, és , amelyek a tesztelni kívánt felhasználókat tartalmazzák.
- WebSphere
- Visual Studio Code
- Azure-eszközök a Visual Studio Code-hoz
Ajánlások
- Némi ismeret a Java / Jakarta szervletek terén.
- A Linux/OSX terminál ismerete.
- jwt.ms a tokenjei vizsgálatához.
- A Fiddler a hálózati tevékenység figyelésére és hibaelhárításra.
- Kövesse a Microsoft Entra Blogot, hogy naprakész maradjon a legújabb fejleményekről.
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-msal-java-samples.git
cd 3-java-servlet-web-app/3-Authorization-II/groups
Alternatív megoldásként keresse meg a ms-identity-msal-java-samples tárházat, majd töltse le .zip fájlként, és csomagolja ki a merevlemezére.
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 a Microsoft Entra ID-bérlőben
Ebben a mintában egy projekt szerepel. Az alábbi szakaszok bemutatják, hogyan regisztrálhatja az alkalmazást az Azure Portalon.
Válassza ki azt a Microsoft Entra ID-bérlőt, ahol létre szeretné hozni az alkalmazásokat
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 Microsoft Entra ID-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 Microsoft Entra ID-bérlőre való módosításához.
Az alkalmazás regisztrálása (java-servlet-webapp-groups)
Először regisztráljon egy új alkalmazást az Azure Portalon a Rövid útmutató: Alkalmazás regisztrálása a Microsoft identitásplatformon című cikkben található utasításokat követve.
Ezután a következő lépésekkel fejezze be a regisztrációt:
Lépjen a Microsoft fejlesztői identitásplatform Alkalmazásregisztrációk oldalára.
Válassza az Új regisztráció lehetőséget.
A megjelenő Alkalmazás regisztrálása lapon adja meg az alábbi alkalmazásregisztrációs adatokat:
- A Name szakaszban adjon meg egy beszédes alkalmazásnevet, amely az alkalmazás felhasználói számára jelenik meg – például: .
- A Támogatott fióktípusok alatt válassza a Csak ebben a szervezeti címtárban lévő fiókok lehetőséget.
- A Átirányítási URI szakaszban válassza a Web lehetőséget a kombinált listában, majd adja meg a következő átirányítási URI-t: .
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.
A Ügyfél titkos kulcsai szakaszban válassza az Új ügyfél-titkos kulcs lehetőséget.
Írja be a leírást – például az alkalmazás titkos kódját.
Válasszon lejáratot a titkos kódhoz, vagy adjon meg egy egyéni élettartamot. Az ügyfél titkos kulcsainak maximális élettartama 24 hónap, és Microsoft 12 hónapnál rövidebb lejáratot javasol. Éles alkalmazások esetén előnyben részesítse a tanúsítványt vagy az összevont identitás hitelesítő adatait az ügyfél titkos kulcsával szemben.
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.
Az alkalmazás regisztrációs oldalán válassza ki az API-engedélyeket a navigációs panelen a lap megnyitásához, hogy hozzáférést adjon az alkalmazás által igényelt API-khoz.
Válassza a Engedély hozzáadása lehetőséget.
Győződjön meg arról, hogy a Microsoft API-k lap ki van jelölve.
A Gyakran használt Microsoft API-k szakaszban válassza a Microsoft Graph lehetőséget.
A Delegated permissions szakaszban válassza ki a listából a User.Read és a GroupMember.Read.All elemet. Szükség esetén használja a keresőmezőt.
Jelölje be az Engedélyek hozzáadása lehetőséget.
rendszergazdai hozzájárulást igényel, ezért válassza a Rendszergazdai hozzájárulás megadása/visszavonása a(z) {tenant} számára lehetőséget, majd válassza a Igen lehetőséget, amikor a rendszer megkérdezi, hogy szeretné-e megadni a kért engedélyeket a bérlőben lévő összes fiókra. A művelet végrehajtásához Microsoft Entra-azonosítójú bérlői rendszergazdának kell lennie.
Konfigurálja az alkalmazást (java-servlet-webapp-groups) úgy, hogy a saját alkalmazásregisztrációját használja
Az alkalmazás konfigurálásához kövesse az alábbi lépéseket:
Megjegyzés
A következő lépésekben a ugyanaz, mint a vagy a .
Nyissa meg a projektet az IDE-ben.
Nyissa meg a ./src/main/resources/authentication.properties fájlt.
Keresse meg a(z) karakterláncot. Cserélje le a meglévő értéket a Microsoft Entra-bérlőazonosítójára, ha az alkalmazását a Csak a szervezeti címtárban lévő fiókok beállítással regisztrálta.
Keresse meg a(z) karakterláncot, majd cserélje le a meglévő értéket az Azure Portalról másolt alkalmazás alkalmazásazonosítójára vagy értékére.
Keresse meg a(z) karakterláncot, és cserélje le a meglévő értéket arra az értékre, amelyet a alkalmazás Azure Portalban való létrehozásakor mentett.
Biztonsági csoportok konfigurálása
Az alábbi lehetőségek állnak rendelkezésre arra, hogyan konfigurálhatja tovább az alkalmazásokat a csoportok igénylésének fogadásához:
Lekéri az összes csoportot, amelyhez a bejelentkezett felhasználó hozzá van rendelve egy Microsoft Entra ID-bérlőben, a beágyazott csoportokat is beleértve. További információért lásd a következő szakaszt: Az alkalmazás konfigurálása az összes olyan csoport fogadására, amelynek a bejelentkezett felhasználó tagja, beleértve a beágyazott csoportokat is.
Fogadja a csoportok jogcímértékeit a csoportok egy szűrt halmazából, amelyek használatára az alkalmazás fel van készítve. További információkért lásd a következő szakaszt: Az alkalmazás konfigurálása a csoportok jogcímértékeinek fogadására egy szűrt csoporthalmazból, amelyhez egy felhasználó hozzá lehet rendelve. Ez a lehetőség nem érhető el a Microsoft Entra ID ingyenes kiadásban.
Megjegyzés
Ha a csoportazonosító helyett a helyszíni csoport vagy attribútumát szeretné használni, tekintse meg az Alkalmazások csoportjogcímeinek konfigurálása a Microsoft Entra ID használatával című cikk Az Active Directoryból szinkronizált csoportattribútumok használatának előfeltételei című szakaszát.
Konfigurálja az alkalmazást úgy, hogy megkapja a bejelentkezett felhasználóhoz rendelt összes csoportot, beleértve a beágyazott csoportokat is
Az alkalmazás konfigurálásához kövesse az alábbi lépéseket:
Az alkalmazás regisztrációs oldalán a navigációs panelen válassza a Token Configuration lehetőséget annak az oldalnak a megnyitásához, ahol konfigurálhatja az alkalmazásához kiállított tokenekben megadott jogcímeket.
Válassza a Csoportjogcímadat hozzáadása elemet a Csoportjogcímadat szerkesztése képernyő megnyitásához.
Válassza a Biztonsági csoportok vagy a Minden csoport (beleértve a terjesztési listákat, de az alkalmazáshoz rendelt csoportokat nem) lehetőséget. Ha mindkét beállítást választja, az nem befolyásolja a Biztonsági csoportok beállítást.
A ID szakaszban válassza a Csoportazonosító lehetőséget. Ez a beállítás azt eredményezi, hogy a Microsoft Entra ID elküldi azoknak a csoportoknak a objektumazonosítóját, amelyeknek a felhasználó tagja, az alkalmazás által a felhasználó bejelentkezése után kapott ID-jogkivonat groups jogcímében.
Konfigurálja úgy az alkalmazását, hogy fogadja a csoportjogcím értékeit azoknak a szűrt csoportoknak a köréből, amelyekhez a felhasználó hozzá lehet rendelve.
Ez a beállítás akkor hasznos, ha a következő esetek teljesülnek:
- Az alkalmazás olyan csoportokra van kíváncsi, amelyekhez egy bejelentkező felhasználó hozzárendelhető.
- Az alkalmazást nem érdekli minden olyan biztonsági csoport, amelyhez a felhasználó hozzá van rendelve a bérlőben.
Ez a beállítás segít az alkalmazásának elkerülni a túllépési problémát.
Megjegyzés
Ez a funkció nem érhető el a Microsoft Entra ID ingyenes kiadásában.
A beágyazott csoporthozzárendelések nem érhetők el, ha ezt a beállítást használja.
Ha engedélyezni szeretné ezt a beállítást az alkalmazásban, kövesse az alábbi lépéseket:
Az alkalmazás regisztrációs oldalán a navigációs ablaktáblán válassza a Token Configuration lehetőséget annak a lapnak a megnyitásához, ahol konfigurálhatja az alkalmazásához kibocsátott tokenekben megadott jogcímeket.
Válassza a Csoportjogcímadat hozzáadása lehetőséget a Csoportjogcímadat szerkesztése képernyő megnyitásához.
Válassza ki az alkalmazáshoz rendelt csoportokat.
Más beállítások – például biztonsági csoportok vagy minden csoport (beleértve a terjesztési listákat, de az alkalmazáshoz rendelt csoportokat nem) kiválasztásakor az alkalmazás nem fogja tudni használni ezt a lehetőséget.
Az ID szakaszban válassza a Csoportazonosító lehetőséget. Ez a beállítás azt eredményezi, hogy a Microsoft Entra ID elküldi azoknak a csoportoknak az objektumazonosítóit, amelyekhez a felhasználó hozzá van rendelve, az ID-jogkivonat csoportjogcímében.
Ha a API közzététele lehetőséggel tesz közzé egy webes API-t, akkor a Hozzáférés szakaszban a Csoportazonosító lehetőséget is választhatja. Ez a beállítás azt eredményezi, hogy a Microsoft Entra ID elküldi azoknak a csoportoknak az objektumazonosítóját, amelyekhez a felhasználó hozzá van rendelve, a hozzáférési token csoportokra vonatkozó jogcímében.
Az alkalmazás regisztrációs oldalán válassza az Áttekintés lehetőséget a navigációs panelen az alkalmazás áttekintési képernyőjének megnyitásához.
Válassza ki az alkalmazása nevét tartalmazó hivatkozást a Felügyelt alkalmazás a helyi címtárban lehetőségnél. Előfordulhat, hogy ez a mezőcím csonkolva van – például: . Ha ezt a hivatkozást választja, az alkalmazás szolgáltatásazonosítójához tartozó Vállalati alkalmazás áttekintése lapra navigál abban a bérlőben, ahol létrehozta. Az alkalmazásregisztrációs lapra a böngésző vissza gombjával léphet vissza.
A navigációs panelEn a Felhasználók és csoportok lehetőséget választva megnyithatja azt a lapot, amelyen felhasználókat és csoportokat rendelhet az alkalmazáshoz.
Válassza az Új felhasználó lehetőséget.
Válassza ki a felhasználót és a csoportokat az eredményül kapott képernyőn.
Válassza ki az alkalmazáshoz hozzárendelni kívánt csoportokat.
Válassza a Kijelölés lehetőséget a csoportok kijelölésének befejezéséhez.
Válassza a Hozzárendelés lehetőséget a csoport-hozzárendelési folyamat befejezéséhez.
Az alkalmazása mostantól megkapja ezeket a kiválasztott csoportokat a groups jogcímben, amikor az alkalmazásába bejelentkező felhasználó e hozzárendelt csoportok közül egynek vagy többnek a tagja.
A navigációs panel Tulajdonságok elemét választva megnyithatja az alkalmazás alapvető tulajdonságait listázó lapot. Állítsa a szükséges felhasználói hozzárendelést? jelzőt Igen értékre.
Fontos
Amikor kötelezővé teszi a felhasználói hozzárendelést? Igen értékre állítja, a Microsoft Entra-azonosító ellenőrzi, hogy csak a Felhasználók és csoportok panelen az alkalmazáshoz rendelt felhasználók tudnak-e bejelentkezni az alkalmazásba. A felhasználókat közvetlenül vagy a hozzájuk tartozó biztonsági csoportok hozzárendelésével rendelheti hozzá.
Az alkalmazás (java-servlet-webapp-groups) konfigurálása csoportazonosítók felismeréséhez
Az alkalmazás konfigurálásához kövesse az alábbi lépéseket:
Fontos
A Token Configuration oldalon, ha a groupID lehetőségen kívül bármely más lehetőséget választotta – például a DNSDomain\sAMAccountName értéket –, a következő lépésekben az objektumazonosító helyett a csoport nevét kell megadnia – például: –.
Nyissa meg a ./src/main/resources/authentication.properties fájlt.
Keresse meg a(z) karakterláncot, és cserélje le a meglévő értéket a(z) csoport objektumazonosítójára, amelyet az Azure Portalról másolt. Távolítsa el a kapcsos zárójeleket a helyőrző értékből is.
Keresse meg a(z) karakterláncot, és cserélje le a meglévő értéket a(z) csoport objektumazonosítójára, amelyet az Azure Portalról másolt. Távolítsa el a kapcsos zárójeleket a helyőrző értékből is.
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 különböző alkalmazáskiszolgálókon futtathat.
A példa futtatása
Ezek az utasítások feltételezik, hogy telepítette a WebSphere-et, és beállított egy kiszolgálót. A kiszolgáló alapvető beállításához használhatja a WebSphere Application Server (hagyományos) fürt üzembe helyezése Azure-beli virtuális gépeken című útmutatót.
Mielőtt üzembe helyezhető a WebSphere-ben, az alábbi lépésekkel végezze el a minta konfigurációs módosításait, majd hozza létre vagy építse újra a csomagot:
Nyissa meg az alkalmazás authentication.properties fájlját, és módosítsa a értékét a használni kívánt kiszolgáló URL-címére és portszámára, az alábbi példában látható módon:
# 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://<server-url>:<port-number>/msal4j-servlet-auth/A fájl mentése után használja az alábbi parancsot az alkalmazás újraépítéséhez:
mvn clean packageMiután a kód elkészült, másolja át a .war fájlt a célkiszolgáló fájlrendszerére.
Ugyanezt a módosítást az Azure-alkalmazásregisztrációban is el kell végeznie, ahol az Azure Portalon a Hitelesítés lapon, a Redirect URI értékénél kell beállítania.
Lépjen a Microsoft fejlesztői identitásplatform Alkalmazásregisztrációk oldalára.
A keresőmezővel keressen rá az alkalmazásregisztrációjára – például: .
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 Webátirányítási URI-k szakaszban válassza az URI hozzáadása lehetőséget.
Adja meg az alkalmazás URI-ját, és fűzze hozzá a /auth/redirect végződést – például: .
Válassza a Mentés lehetőséget.
A minta üzembe helyezéséhez kövesse az alábbi lépéseket a WebSphere integrált megoldáskonzoljával:
Az Alkalmazások lapon válassza az Új alkalmazás, majd az Új vállalati alkalmazás lehetőséget.
Válassza ki az elkészített .war fájlt, majd válassza a Tovább lehetőséget mindaddig, amíg el nem jut a Map context roots for Web modules telepítési lépéshez. A többi alapértelmezett beállításnak megfelelőnek kell lennie.
A kontextusgyökérnél ugyanazt az értéket állítsa be, mint amely a mintakonfigurációban vagy az Azure-alkalmazás regisztrációjában megadott „Redirect URI”-ban a portszám után szerepel. Vagyis ha az átirányítási URI , akkor a kontextusgyökérnek értékűnek kell lennie.
Válassza a Befejezés lehetőséget.
Miután az alkalmazás telepítése befejeződött, lépjen az Alkalmazások lap WebSphere vállalati alkalmazások szakaszára.
Válassza ki a telepített .war fájlt az alkalmazások listájából, majd válassza a Telepítés indítása lehetőséget.
Az üzembe helyezés befejezése után navigáljon ide: , és látnia kell az alkalmazást.
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 Bejelentkezés feliratot mutat az alkalmazás első indításakor.
- A következő lapon kövesse az utasításokat, és jelentkezzen be egy fiókkal a Microsoft Entra ID-bérlőben.
- A hozzájárulási képernyőn figyelje meg a kért hatóköröket.
- Figyelje meg, hogy a környezetfüggő gombon most ez áll: Kijelentkezés, és megjelenik rajta a felhasználóneve.
- Válassza az Azonosító jogkivonat részletei lehetőséget az azonosító jogkivonat egyes dekódolt jogcímeinek megtekintéséhez.
- Válassza a Csoportok lehetőséget a bejelentkezett felhasználó biztonsági csoporttagságával kapcsolatos információk megtekintéséhez.
- Válassza ki a Csak adminisztrátor vagy a Normál felhasználó lehetőséget a groups jogcím által védett végpontok eléréséhez.
- Ha a bejelentkezett felhasználó a csoportban van, mindkét oldalt megnyithatja.
- Ha a bejelentkezett felhasználó a csoportban van, csak a Regular User oldalra léphet be.
- Ha a bejelentkezett felhasználó egyik csoportban sem található, a felhasználó nem férhet hozzá a két oldal egyikéhez sem.
- A kijelentkezéshez használja a sarokban lévő gombot.
- Kijelentkezés után válassza az ID Token Details lehetőséget, és figyelje meg, hogy az alkalmazás az ID token jellemzői helyett egy hibát jelenít meg, ha a felhasználó nincs jogosultként engedélyezve.
Tudnivalók a kódról
Ez a minta a Java-hoz készült MSAL-t (MSAL4J) használja egy felhasználó bejelentkeztetésére és egy olyan azonosító token lekérésére, amely tartalmazhatja a groups jogcímet. Ha túl sok csoport van ahhoz, hogy az azonosító tokenben szerepeljen, a minta a Microsoft Graph SDK for Java használatával kéri le a csoporttagsági adatokat a Microsoft Graphból. Attól függően, hogy a felhasználó mely csoportokhoz tartozik, a bejelentkezett felhasználó a védett oldalak közül egyiket sem, csak az egyiket vagy mindkettőt elérheti: és .
Ha replikálni szeretné a minta viselkedését, mSAL4J-t és Microsoft Graph SDK-t kell hozzáadnia a projektekhez a Maven használatával. Átmásolhatja a pom.xml fájlt, valamint a src/main/java/com/microsoft/azuresamples/msal4j mappában található helpers és authservlets mappák tartalmát. Szüksége van a authentication.properties fájlra is. Ezek az osztályok és fájlok általános kódot tartalmaznak, amelyeket számos alkalmazásban használhat. A minta többi részét is másolhatja, de a többi osztály és fájl kifejezetten a minta céljának megfelelően van létrehozva.
Tartalom
Az alábbi táblázat a mintaprojekt mappájának tartalmát mutatja be:
| Fájl/mappa | Leírás |
|---|---|
| src/main/java/com/microsoft/azuresamples/msal4j/groupswebapp/ | Ez a könyvtár tartalmazza azokat az osztályokat, amelyek meghatározzák az alkalmazás háttérbeli üzleti logikáját. |
| src/main/java/com/microsoft/azuresamples/msal4j/authservlets/ | Ez a könyvtár tartalmazza a bejelentkezéshez és a végpontok kijelentkezéshez használt osztályokat. |
| *Servlet.java | Az összes elérhető végpont java osztályokban van definiálva, amelyek neve Servletvégződik. |
| src/main/java/com/microsoft/azuresamples/msal4j/helpers/ | Segédosztályok a hitelesítéshez. |
| AuthenticationFilter.java | A nem hitelesített kéréseket átirányítja a védett végpontokra egy 401-es lapra. |
| src/main/resources/authentication.properties | Microsoft Entra-azonosító és programkonfiguráció. |
| src/main/webapp/ | Ez a könyvtár tartalmazza a felhasználói felület – JSP-sablonokat |
| CHANGELOG.md | A minta módosításainak listája. |
| CONTRIBUTING.md | Útmutató a mintához való hozzájáruláshoz. |
| LICENC | A minta licencje. |
Csoportjogcím feldolgozása tokenekben, beleértve a túlcsordulás kezelését
Az alábbi szakaszok azt ismertetik, hogy az alkalmazás hogyan dolgozza fel a csoportok jogcímeit.
A csoportok állítása
A bejelentkezett felhasználó által bejelentkezett biztonsági csoportok objektumazonosítója a jogkivonat csoportigénylésében lesz visszaadva, amely az alábbi példában látható:
{
...
"groups": [
"0bbe91cc-b69e-414d-85a6-a043d6752215",
"48931dac-3736-45e7-83e8-015e6dfd6f7c",]
...
}
A csoportok túllépési igénye
Annak érdekében, hogy a jogkivonat mérete ne haladja meg a HTTP-fejléc méretkorlátjait, a Microsoft Identitásplatform korlátozza a csoportok jogcímében szereplő objektumazonosítók számát.
A túllépési korlát SAML-jogkivonatok esetén 150, JWT-jogkivonatok esetén 200, egyoldalas alkalmazások esetében 6. Ha egy felhasználó több csoportnak is tagja, mint a túlhasználati korlát, akkor a Microsoft Identitásplatform nem bocsátja ki a csoportazonosítókat a jogkivonatban szereplő csoportokban. Ehelyett egy túlcsordulási jogcímet tartalmaz a tokenben, amely azt jelzi az alkalmazásnak, hogy kérdezze le a Microsoft Graph API-t a felhasználó csoporttagságának lekéréséhez, ahogy az az alábbi példában látható:
{
...
"_claim_names": {
"groups": "src1"
},
{
"_claim_sources": {
"src1": {
"endpoint":"[Graph Url to get this user's group membership from]"
}
}
...
}
A túlhasználati forgatókönyv létrehozása ebben a mintában teszteléshez
A túlhasználati forgatókönyv létrehozásához kövesse az alábbi lépéseket:
Az AppCreationScripts mappában található BulkCreateGroups.ps1 fájllal számos csoportot hozhat létre, és felhasználókat rendelhet hozzájuk. Ez a fájl segít a túlhasználati forgatókönyvek tesztelésében a fejlesztés során. Ne felejtse el módosítani a felhasználó elemét, amely a(z) BulkCreateGroups.ps1 szkriptben van megadva.
Amikor futtatja ezt a mintát, és túllépés történik, a _claim_names megjelenik a kezdőlapon, miután a felhasználó bejelentkezett.
Határozottan javasoljuk, hogy ha lehetséges, használja a csoportszűrési funkciót, hogy elkerülje a túlhasználatot. További információért lásd a következő szakaszt: Az alkalmazás konfigurálása a csoportjogcím-értékek fogadására azon csoportok szűrt halmazából, amelyekhez egy felhasználó hozzá lehet rendelve.
Ha nem tudja elkerülni a csoporttúlcsordulást, javasoljuk, hogy a következő lépéseket használja a tokenben lévő csoportjogcím feldolgozásához:
- Ellenőrizze, hogy a jogcím _claim_names-e, és az egyik érték csoport. Ez az igény túllépést jelez.
- Ha megtalálta, hívja fel a _claim_sources megadott végpontot a felhasználói csoportok lekéréséhez.
- Ha egyik sem található, keresse a felhasználó csoportjait a groups jogcímben.
Megjegyzés
A túlcsordulás kezeléséhez meg kell hívni a Microsoft Graph szolgáltatást a bejelentkezett felhasználó csoporttagságainak kiolvasásához, ezért az alkalmazásnak rendelkeznie kell a GroupMember.Read.All engedéllyel ahhoz, hogy a getMemberObjects függvény sikeresen végrehajtható legyen.
A Microsoft Graph programozásával kapcsolatos további információkért tekintse meg a Microsoft Graph fejlesztőknek készült bemutatása című videót.
ConfidentialClientApplication
A példány a AuthHelper.java fájlban jön létre, ahogyan az a következő példában látható. Ez az objektum segít a Microsoft Entra engedélyezési URL-címének elkészítésében, és segít a hitelesítési jogkivonat cseréjében egy hozzáférési jogkivonatra.
// getConfidentialClientInstance method
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
.builder(CLIENT_ID, secret)
.authority(AUTHORITY)
.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.
- A Microsoft Entra ID-szolgáltató, amely tartalmazza a Microsoft Entra-bérlő azonosítóját.
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, hogy elküld egy kérést a Microsoft Entra ID-bérlőjéhez tartozó végpontra. Az MSAL4J példányt egy hitelesítési kérés URL-címének összeállítására használják. Az alkalmazás átirányítja a böngészőt erre az URL-címre, ahol a felhasználó bejelentkezik.
final ConfidentialClientApplication client = getConfidentialClientInstance(); AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters.builder(Config.REDIRECT_URI, Collections.singleton(Config.SCOPES)) .responseMode(ResponseMode.QUERY).prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build(); final String authorizeUrl = client.getAuthorizationRequestUrl(parameters).toString(); contextAdapter.redirectUser(authorizeUrl);Az alábbi lista a kód funkcióit ismerteti:
- : Az AuthorizationRequestUrl felépítéséhez beállítandó paraméterek.
- : Az a hely, ahová a Microsoft Entra átirányítja a böngészőt – a hitelesítési kóddal együtt – a felhasználói hitelesítő adatok megadása után. Meg kell egyeznie a Microsoft Entra ID alkalmazásregisztrációjában, a Azure Portalban megadott átirányítási URI-val.
- : Hatókörök az alkalmazás által kért engedélyek.
- Általában a három hatókör elegendő az ID-jogkivonat-válasz fogadásához.
- Az alkalmazás által kért hatókörök teljes listája megtalálható a authentication.properties fájlban. További hatóköröket is hozzáadhat, például .
A microsoft Entra ID egy bejelentkezési kérést jelenít meg a felhasználó számára. 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. Az erre a végpontra irányuló érvényes kérés tartalmaz egy engedélyezési kódot.
A példány ezután beváltja ezt az engedélyezési kódot egy azonosító tokenre és egy hozzáférési tokenre a Microsoft Entra ID-tól.
// First, validate the state, then parse any error codes in response, then extract the authCode. Then: // build the auth code params: final AuthorizationCodeParameters authParams = AuthorizationCodeParameters .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES)).build(); // Get a client instance and leverage it to acquire the token: final ConfidentialClientApplication client = AuthHelper.getConfidentialClientInstance(); final IAuthenticationResult result = client.acquireToken(authParams).get();Az alábbi lista a kód funkcióit ismerteti:
- : Azok a paraméterek, amelyeket be kell állítani ahhoz, hogy az engedélyezési kódot ID-tokenre és/vagy hozzáférési tokenre lehessen cserélni.
- : Az átirányítási végponton kapott engedélyezési kód.
- : Az előző lépésben használt átirányítási URI-t ismét át kell adni.
- : Az előző lépésben használt hatóköröket újra át kell adni.
Ha a sikeres, a rendszer kinyeri a token jogcímeit. Ha a nonce-ellenőrzés sikeres, az eredmények a — a egy példánya — elembe kerülnek, és mentésre kerülnek a munkamenetben. Az alkalmazás ezután a munkamenetből, a egy példányán keresztül példányosíthatja a elemet, valahányszor hozzá kell férnie, ahogy az a következő kódban látható:
// parse IdToken claims from the IAuthenticationResult: // (the next step - validateNonce - requires parsed claims) context.setIdTokenClaims(result.idToken()); // if nonce is invalid, stop immediately! this could be a token replay! // if validation fails, throws exception and cancels auth: validateNonce(context); // set user to authenticated: context.setAuthResult(result, client.tokenCache().serialize()); // handle groups overage if it has occurred. handleGroupsOverage(contextAdapter);Az előző lépés után a csoporttagságokat a(z) egy példányán meghívott használatával nyerheti ki.
Ha a felhasználó túl sok – 200-nál több – csoportnak a tagja, a(z) hívás üres lehetne, ha nem lenne a(z) hívás. Eközben a a(z) értékkel tér vissza, jelezve, hogy túllépés történt, és hogy a csoportok teljes listájának lekéréséhez meg kell hívni a Microsoft Graphot. Tekintse meg a(z) AuthHelper.java fájlban található metódust, hogy megtudja, hogyan használja ez az alkalmazás a(z) elemet, amikor túllépés történik.
Az útvonalak védelme
Tekintse meg AuthenticationFilter.java , hogy a mintaalkalmazás hogyan szűri az útvonalakhoz való hozzáférést. Az authentication.properties fájlban a tulajdonság azokat a vesszővel elválasztott útvonalakat tartalmazza, amelyekhez csak a hitelesített felhasználók férhetnek hozzá, amint az a következő példában látható:
# for example, /token_details requires any user to be signed in and does not require special groups claim
app.protect.authenticated=/token_details
A alatti, vesszővel elválasztott szabálykészletekben felsorolt bármely útvonal a nem hitelesített felhasználók számára sem érhető el, ahogy az az alábbi példában is látható. Ezek az útvonalak azonban a csoporttagságok szóközzel elválasztott listáját is tartalmazzák. Hitelesítés után csak a megfelelő csoportok legalább egyikéhez tartozó felhasználók férhetnek hozzá ezekhez az útvonalakhoz.
# define short names for group IDs here for the app. This is useful in the next property (app.protect.groups).
# EXCLUDE the curly braces, they are in this file only as delimiters.
# example:
# app.groups=groupA abcdef-qrstuvw-xyz groupB abcdef-qrstuv-wxyz
app.groups=admin {enter-your-admins-group-id-here}, user {enter-your-users-group-id-here}
# A route and its corresponding group(s) that can view it, <space-separated>; the start of the next route & its group(s) is delimited by a <comma-and-space-separator>
# this says: /admins_only can be accessed by admin group, /regular_user can be accessed by admin group and user group
app.protect.groups=/admin_only admin, /regular_user admin user
Hatókörök
A hatókörök adják meg a Microsoft Entra ID számára azt a hozzáférési szintet, amelyet az alkalmazás igényel.
A kért hatókörök alapján a Microsoft Entra ID hozzájárulási párbeszédet jelenít meg a felhasználónak bejelentkezéskor. Ha a felhasználó hozzájárul egy vagy több hatókörhöz, és tokent kap, akkor a jóváhagyott hatókörök kódolva lesznek az így kapott -ba.
Az alkalmazás által kért hatóköröket lásd itt: authentication.properties. Alapértelmezés szerint az alkalmazás a hatókörök értékét értékre állítja. Erre a Microsoft Graph API-hatókörre akkor van szükség, ha az alkalmazásnak meg kell hívnia a Graphot a felhasználó csoporttagságainak lekéréséhez.
További információ
- Microsoft Authentication Library (MSAL) Javához
- Microsoft identitásplatform (Microsoft Entra ID a fejlesztőknek)
- Gyorsútmutató: alkalmazás regisztrálása a Microsoft identitásplatformon
- Ismerkedés a Microsoft Entra ID-alkalmazások hozzájárulási felhasználói élményeivel
- A felhasználói és rendszergazdai hozzájárulás megértése
- MSAL mintakódok
Következő lépés
Java WebSphere-alkalmazások üzembe helyezése hagyományos WebSphere-környezetbe Azure-beli virtuális gépeken