Share via


Webes bejelentkezés OpenID Csatlakozás az Azure Active Directory B2C-ben

Az OpenID Csatlakozás az OAuth 2.0-ra épülő hitelesítési protokoll, amellyel a felhasználók biztonságosan bejelentkezhetnek a webalkalmazásba. Az OpenID Csatlakozás Azure Active Directory B2C (Azure AD B2C) implementációjának használatával kiszervezheti a regisztrációt, a bejelentkezést és más identitáskezelési funkciókat a webalkalmazásokban a Microsoft Entra ID-ra. Ez az útmutató bemutatja, hogyan teheti ezt meg nyelvfüggetlen módon. Leírja, hogyan küldhet és fogadhat HTTP-üzeneteket a nyílt forráskódú kódtárak használata nélkül.

Megjegyzés:

A legtöbb nyílt forráskódú hitelesítési kódtár beszerzi és ellenőrzi az alkalmazás JWT-jogkivonatait. Javasoljuk, hogy saját kód implementálása helyett vizsgálja meg ezeket a lehetőségeket. További információ: A Microsoft Authentication Library (MSAL) és a Microsoft Identity Web Authentication library áttekintése.

Az OpenID Csatlakozás kibővíti az OAuth 2.0 hitelesítési protokollt hitelesítési protokollként való használatra. Ez a hitelesítési protokoll lehetővé teszi az egyszeri bejelentkezést. Bevezeti az azonosító jogkivonat fogalmát, amely lehetővé teszi az ügyfél számára, hogy ellenőrizze a felhasználó identitását, és alapvető profilinformációkat szerezzen be a felhasználóról.

Az OpenID Csatlakozás lehetővé teszi az alkalmazások számára a hozzáférési jogkivonatok biztonságos beszerzését is. Hozzáférési jogkivonatokkal hozzáférhet az engedélyezési kiszolgáló által védett erőforrásokhoz. Javasoljuk, hogy az OpenID Csatlakozás, ha egy kiszolgálón üzemeltetett és böngészőn keresztül elérhető webalkalmazást hoz létre. A jogkivonatokkal kapcsolatos további információkért tekintse meg az Azure Active Directory B2C jogkivonatainak áttekintését

Az Azure AD B2C kibővíti a standard OpenID Csatlakozás protokollt az egyszerű hitelesítésnél és engedélyezésnél. Bevezeti a felhasználói folyamat paramétert, amely lehetővé teszi, hogy az OpenID Csatlakozás használatával felhasználói élményeket adjon hozzá az alkalmazáshoz, például a regisztrációt, a bejelentkezést és a profilkezelést.

Hitelesítési kérések küldése

Ha a webalkalmazásnak hitelesítenie kell a felhasználót, és le kell futtatnia egy felhasználói folyamatot, a felhasználót a /authorize végponthoz irányíthatja. A felhasználó a felhasználói folyamattól függően hajt végre műveletet.

Ebben a kérésben az ügyfél jelzi a paraméter felhasználójától scope beszerezni kívánt engedélyeket, és megadja a futtatandó felhasználói folyamatot. A kérés működésének megismeréséhez illessze be a kérést a böngészőbe, és futtassa. Csere:

  • {tenant} a bérlő nevével.
  • 90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6a bérlőben regisztrált alkalmazás alkalmazásazonosítójával.
  • {application-id-uri}/{scope-name} az alkalmazásazonosító URI-jával és a bérlőben regisztrált alkalmazás hatókörével.
  • {policy} a bérlőben található szabályzatnévvel, például b2c_1_sign_in.
GET /{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
Host: {tenant}.b2clogin.com

client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&response_type=code+id_token
&redirect_uri=https%3A%2F%2Fjwt.ms%2F
&response_mode=fragment
&scope=openid%20offline_access%20{application-id-uri}/{scope-name}
&state=arbitrary_data_you_can_receive_in_the_response
&nonce=12345
Paraméter Kötelező Leírás
{tenant} Igen Az Azure AD B2C-bérlő neve. Ha egyéni tartományt használ, cserélje le tenant.b2clogin.com a tartományát, példáulfabrikam.com.
{policy} Igen Az alkalmazás által futtatott felhasználói folyamat vagy szabályzat. Adja meg az Azure AD B2C-bérlőben létrehozott felhasználói folyamat nevét. Például: b2c_1_sign_in, b2c_1_sign_upvagy b2c_1_edit_profile.
client_id Igen Az alkalmazásazonosító, amelyet az Azure Portal hozzárendelt az alkalmazáshoz.
nem Igen A kérelemben szereplő (az alkalmazás által létrehozott) érték, amely jogcímként szerepel az eredményül kapott azonosító jogkivonatában. Az alkalmazás ezután ellenőrizheti ezt az értéket a jogkivonat-visszajátszási támadások csökkentése érdekében. Az érték általában egy véletlenszerű egyedi sztring, amely a kérés eredetének azonosítására használható.
response_type Igen Az OpenID Csatlakozás azonosító jogkivonatát kell tartalmaznia. Ha a webalkalmazásnak tokenekre is szüksége van egy webes API meghívásához, használhatja code+id_tokena .
scope Igen A hatókörök szóközzel elválasztott listája. A openid hatókör azt jelzi, hogy jogosult-e bejelentkezni a felhasználóba, és adatokat kérni a felhasználóról azonosító jogkivonatok formájában. A offline_access hatókör nem kötelező webalkalmazásokhoz. Azt jelzi, hogy az alkalmazásnak frissítési jogkivonatra van szüksége az erőforrásokhoz való kiterjesztett hozzáféréshez. Ez https://{tenant-name}/{app-id-uri}/{scope} egy védett erőforrásokra, például webes API-ra vonatkozó engedélyt jelez. További információ: Hozzáférési jogkivonat kérése.
Gyors Nem A szükséges felhasználói beavatkozás típusa. Az egyetlen érvényes érték jelenleg az login, amely arra kényszeríti a felhasználót, hogy adja meg a hitelesítő adatait a kéréshez.
redirect_uri Igen Az redirect_uri alkalmazás paramétere, ahol a kiszolgáló hitelesítési válaszokat küld az alkalmazásnak. Ennek pontosan meg kell egyeznie az redirect_uri Azure Portalon regisztrált paraméterek egyikével, azzal a kivételével, hogy URL-kódolásúnak kell lennie.
response_mode Nem Az eredményül kapott engedélyezési kód alkalmazásba való visszaküldéséhez használt módszer. queryLehet , form_postvagy fragment. Javasoljuk, hogy a legjobb biztonság érdekében használja a form_post válasz módot.
állapot Nem Az engedélyezési kiszolgáló által a jogkivonat-válaszban visszaadott kérésben szereplő érték. Bármilyen tartalom sztringje lehet. A véletlenszerűen generált egyedi érték általában a helyek közötti hamisítási támadások megelőzésére szolgál. Az állapot a felhasználó állapotával kapcsolatos információk kódolására is használható az alkalmazásban a hitelesítési kérelem előtt, például a lapon. Ha nem szeretne több átirányítási URL-címet regisztrálni az Azure Portalon, a paraméterrel megkülönböztetheti az state alkalmazás válaszait az Azure AD B2C szolgáltatástól különböző kérések miatt.
login_hint Nem A bejelentkezési oldal bejelentkezési név mezőjének előzetes kitöltésére használható. További információ: A bejelentkezési név előzetes feltöltése.
domain_hint Nem Tippeket nyújt az Azure AD B2C-nek a bejelentkezéshez használni kívánt közösségi identitásszolgáltatóról. Ha érvényes értéket tartalmaz, a felhasználó közvetlenül az identitásszolgáltató bejelentkezési oldalára kerül. További információ: Bejelentkezés átirányítása közösségi szolgáltatóhoz.
Egyéni paraméterek Nem Egyéni szabályzatokkal használható egyéni paraméterek. Például dinamikus egyéni laptartalom URI-ja vagy kulcs-érték jogcímfeloldói.

Ekkor a rendszer felkéri a felhasználót, hogy végezze el a munkafolyamatot. Előfordulhat, hogy a felhasználónak meg kell adnia a felhasználónevét és jelszavát, be kell jelentkeznie egy közösségi identitással, vagy regisztrálnia kell a címtárra. A felhasználói folyamat definiálásának módjától függően további lépések is lehetnek.

Miután a felhasználó befejezte a felhasználói folyamatot, a rendszer a megadott paraméterben megadott módszerrel választ ad redirect_uri vissza az response_mode alkalmazásnak. A válasz az előző esetek mindegyikére ugyanaz, a felhasználói folyamattól függetlenül.

A sikeres válasz a következőképpen response_mode=fragment néz ki:

GET https://jwt.ms/#
id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&state=arbitrary_data_you_can_receive_in_the_response
Paraméter Leírás
id_token Az alkalmazás által kért azonosító jogkivonat. Az azonosító jogkivonat használatával ellenőrizheti a felhasználó identitását, és munkamenetet indíthat a felhasználóval.
code Az alkalmazás által kért engedélyezési kód, ha használta response_type=code+id_token. Az alkalmazás az engedélyezési kód használatával kérheti le a hozzáférési jogkivonatot egy célerőforráshoz. Az engedélyezési kódok általában körülbelül 10 perc elteltével lejárnak.
állapot Ha egy state paraméter szerepel a kérelemben, akkor ugyanaz az érték jelenik meg a válaszban. Az alkalmazásnak ellenőriznie kell, hogy a state kérés és a válasz értékei azonosak-e.

A hibaválaszok elküldhetők a redirect_uri paraméternek is, hogy az alkalmazás megfelelően kezelje őket:

GET https://jwt.ms/#
error=access_denied
&error_description=AADB2C90091%3a+The+user+has+cancelled+entering+self-asserted+information.%0d%0aCorrelation+ID%3a+xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%0d%0aTimestamp%3a+xxxx-xx-xx+xx%3a23%3a27Z%0d%0a
&state=arbitrary_data_you_can_receive_in_the_response
Paraméter Leírás
error A hibatípusok besorolására használható kód.
error_description Egy adott hibaüzenet, amely segíthet azonosítani a hitelesítési hiba kiváltó okát.
állapot Ha egy state paraméter szerepel a kérelemben, akkor ugyanaz az érték jelenik meg a válaszban. Az alkalmazásnak ellenőriznie kell, hogy a state kérés és a válasz értékei azonosak-e.

Az azonosító jogkivonat érvényesítése

Az azonosító jogkivonat fogadása nem elegendő a felhasználó hitelesítéséhez. Ellenőrizze az azonosító jogkivonat aláírását, és ellenőrizze a jogkivonatban szereplő jogcímeket az alkalmazás követelményeinek megfelelően. Az Azure AD B2C JSON webes jogkivonatokat (JWT-ket) és nyilvános kulcsok titkosítását használja a jogkivonatok aláírásához és azok érvényességének ellenőrzéséhez.

Megjegyzés:

A legtöbb nyílt forráskódú hitelesítési kódtár ellenőrzi az alkalmazás JWT-jogkivonatait. Javasoljuk, hogy a saját érvényesítési logika implementálása helyett vizsgálja meg ezeket a lehetőségeket. További információ: A Microsoft Authentication Library (MSAL) és a Microsoft Identity Web Authentication library áttekintése.

Az Azure AD B2C egy OpenID Csatlakozás metaadat-végpontot tartalmaz, amely lehetővé teszi, hogy az alkalmazás futásidőben információkat kapjon az Azure AD B2C-ről. Ezek az információk a végpontokat, a jogkivonatok tartalmát és a jogkivonat-aláíró kulcsokat tartalmazzák. A B2C-bérlő minden felhasználói folyamatához JSON-metaadat-dokumentum tartozik. A felhasználói folyamat fabrikamb2c.onmicrosoft.com metaadat-dokumentuma b2c_1_sign_in például a következő helyen található:

https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_sign_in/v2.0/.well-known/openid-configuration

Ennek a konfigurációs dokumentumnak az egyik tulajdonsága, jwks_uriamelynek értéke ugyanahhoz a felhasználói folyamathoz a következő:

https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_sign_in/discovery/v2.0/keys

Az azonosító jogkivonat aláírásához használt felhasználói folyamat meghatározásához két lehetősége van. Először is, a felhasználói folyamat neve szerepel a jogcímben az acr azonosító jogkivonatában, lásd a felhasználói folyamatot képviselő jogcímet. A másik lehetőség, hogy a kérelem kiadásakor a paraméter értékében state kódolja a felhasználói folyamatot, majd dekódolja, hogy meghatározza, melyik felhasználói folyamatot használta. Bármelyik metódus érvényes.

Miután lekérte a metaadat-dokumentumot az OpenID Csatlakozás metaadat-végpontról, az RSA 256 nyilvános kulcsokkal ellenőrizheti az azonosító jogkivonat aláírását. Ezen a végponton több kulcs is szerepelhet, amelyeket egy kid jogcím azonosít. Az azonosító jogkivonat fejléce egy jogcímet kid is tartalmaz, amely azt jelzi, hogy ezek közül a kulcsok közül melyiket használták az azonosító jogkivonat aláírásához.

Az Azure AD B2C-ből származó jogkivonatok ellenőrzéséhez létre kell hoznia a nyilvános kulcsot a kitevő(e) és a modulus(n) használatával. Ehhez meg kell tanulnia, hogyan hozhatja létre a nyilvános kulcsot egy tetszőleges programozási nyelven. Az RSA protokollal rendelkező nyilvános kulcsok létrehozásának hivatalos dokumentációja itt található: https://tools.ietf.org/html/rfc3447#section-3.1

Az azonosító jogkivonat aláírásának ellenőrzése után különböző jogcímeket kell ellenőriznie. Ilyenek például a következők:

  • Ellenőrizze a jogcímet a nonce jogkivonat-visszajátszási támadások megelőzéséhez. Az értéknek a bejelentkezési kérelemben megadott értéknek kell lennie.
  • Ellenőrizze a aud jogcímet annak ellenőrzéséhez, hogy az azonosító jogkivonat ki lett-e állítva az alkalmazás számára. Az értéknek az alkalmazás alkalmazásazonosítójának kell lennie.
  • Ellenőrizze a iat jogcímeket, és exp ellenőrizze, hogy az azonosító jogkivonata nem járt-e le.

Több további ellenőrzést is végre kell hajtania. Az érvényesítések részletes leírását az OpenID Csatlakozás Core Spec ismerteti. A forgatókönyvtől függően érdemes lehet további jogcímeket is érvényesíteni. Néhány gyakori ellenőrzés a következők:

  • Győződjön meg arról, hogy a felhasználó/szervezet regisztrált az alkalmazásra.
  • Győződjön meg arról, hogy a felhasználó rendelkezik megfelelő engedélyekkel/jogosultságokkal.
  • Győződjön meg arról, hogy bizonyos erős hitelesítés történt, például a Microsoft Entra többtényezős hitelesítés.

Az azonosító jogkivonat érvényesítése után megkezdheti a munkamenetet a felhasználóval. Az azonosító jogkivonatában szereplő jogcímek használatával információkat szerezhet be az alkalmazásban lévő felhasználóról. Ezek az információk a megjelenítést, a rekordokat és az engedélyezést tartalmazzák.

Jogkivonat lekérése

Ha csak a felhasználói folyamatok futtatásához van szüksége a webalkalmazásra, kihagyhatja a következő néhány szakaszt. Ezek a szakaszok csak olyan webalkalmazásokra vonatkoznak, amelyeknek hitelesített hívásokat kell indítaniuk egy webes API-ba, amelyet maga az Azure AD B2C véd.

A jogkivonathoz beszerzett engedélyezési kódot (a használatával response_type=code+id_token) beválthatja a kívánt erőforrásra, ha kérést POST küld a /token végpontnak. Az Azure AD B2C-ben a szokásos módon kérhet hozzáférési jogkivonatokat más API-khoz a kérelem hatókörének (hatóköreinek) megadásával.

Hozzáférési jogkivonatot is kérhet az alkalmazás saját háttérbeli webes API-jához. Ebben az esetben az alkalmazás ügyfélazonosítóját használja a kért hatókörként, ami egy hozzáférési jogkivonatot eredményez, amelynek az ügyfélazonosítója "célközönség":

POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Paraméter Kötelező Leírás
{tenant} Igen Az Azure AD B2C-bérlő neve
{policy} Igen Az engedélyezési kód beszerzéséhez használt felhasználói folyamat. Ebben a kérésben nem használhat másik felhasználói folyamatot. Adja hozzá ezt a paramétert a lekérdezési sztringhez, ne a POST törzshez.
client_id Igen Az alkalmazásazonosító, amelyet az Azure Portal hozzárendelt az alkalmazáshoz.
client_secret Igen, a Web Appsben Az Azure Portalon létrehozott alkalmazáskulcs. Az ügyfél titkos kulcsait ebben a folyamatban webalkalmazás-forgatókönyvekhez használják, ahol az ügyfél biztonságosan tárolhat egy ügyféltitkot. Natív alkalmazások (nyilvános ügyfél)-forgatókönyvek esetén az ügyfélkulcsok nem tárolhatók biztonságosan, ezért nem használhatók ezen a folyamaton. Ha ügyfélkulcsot használ, rendszeresen módosítsa azt.
code Igen A felhasználói folyamat elején beszerzett engedélyezési kód.
grant_type Igen Az engedélyezés típusa, amelynek az engedélyezési kód folyamatához kell lennie authorization_code .
redirect_uri Nem Annak redirect_uri az alkalmazásnak a paramétere, amelyben megkapta az engedélyezési kódot.
scope Nem A hatókörök szóközzel elválasztott listája. A openid hatókör engedélyt ad a felhasználó bejelentkezésére és a felhasználó adatainak lekérésére id_token paraméterek formájában. Segítségével jogkivonatokat szerezhet be az alkalmazás saját háttérbeli webes API-jára, amelyet ugyanaz az alkalmazásazonosító képvisel, mint az ügyfél. A offline_access hatókör azt jelzi, hogy az alkalmazásnak frissítési jogkivonatra van szüksége az erőforrásokhoz való kiterjesztett hozzáféréshez.

A sikeres jogkivonat-válasz a következőképpen néz ki:

{
    "not_before": "1442340812",
    "token_type": "Bearer",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "scope": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
    "expires_in": "3600",
    "expires_on": "1644254945",
    "refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
}
Paraméter Leírás
not_before Az a korszak, amikor a jogkivonat érvényessé válik.
token_type A jogkivonat típusának értéke. Bearer az egyetlen támogatott típus.
access_token A kért aláírt JWT-jogkivonat.
scope A jogkivonat érvényes hatókörei.
expires_in A hozzáférési jogkivonat érvényességének időtartama (másodpercben).
expires_on A hozzáférési jogkivonat érvénytelenné válásának időszaka.
refresh_token OAuth 2.0 frissítési jogkivonat. Az alkalmazás ezzel a jogkivonattal további jogkivonatokat szerezhet be az aktuális jogkivonat lejárata után. A frissítési jogkivonatokkal hosszabb ideig megőrizhető az erőforrásokhoz való hozzáférés. A hatókört offline_access mind az engedélyezési, mind a jogkivonat-kérelmekben fel kell használni a frissítési jogkivonat fogadásához.

A hibaválaszok a következőképpen néznek ki:

{
    "error": "invalid_grant",
    "error_description": "AADB2C90080: The provided grant has expired. Please re-authenticate and try again. Current time: xxxxxxxxxx, Grant issued time: xxxxxxxxxx, Grant expiration time: xxxxxxxxxx\r\nCorrelation ID: xxxxxxxx-xxxx-xxxX-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-16 xx:10:52Z\r\n"
}
Paraméter Leírás
error Olyan kód, amely a előforduló hibák típusainak besorolására használható.
error_description Egy üzenet, amely segíthet azonosítani a hitelesítési hiba kiváltó okát.

A jogkivonat használata

Miután sikeresen beszerezte a hozzáférési jogkivonatot, használhatja a jogkivonatot a háttérbeli webes API-khoz irányuló kérelmekben a fejlécbe Authorization való belevételével:

GET /tasks
Host: mytaskwebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...

A jogkivonat frissítése

A hozzáférési jogkivonatok és az azonosító jogkivonatok rövid élettartamúak. A lejáratuk után frissítenie kell őket, hogy továbbra is hozzáférhessenek az erőforrásokhoz. A hozzáférési jogkivonat frissítésekor az Azure AD B2C egy új jogkivonatot ad vissza. A frissített hozzáférési jogkivonat frissülni nbf fog (nem korábban), iat (a kiállítás időpontja) és exp a (lejárati) jogcímértékek. Minden más jogcímérték hasonló az előző hozzáférési jogkivonatéhoz.

Egy jogkivonat frissítéséhez küldjön egy másik POST kérést a /token végpontnak. Ezúttal adja meg a refresh_token paramétert a code paraméter helyett:

POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&scope=openid offline_access
&refresh_token=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Paraméter Kötelező Leírás
{tenant} Igen Az Azure AD B2C-bérlő neve
{policy} Igen Az eredeti frissítési jogkivonat beszerzéséhez használt felhasználói folyamat. Ebben a kérésben nem használhat másik felhasználói folyamatot. Adja hozzá ezt a paramétert a lekérdezési sztringhez, ne a POST törzshez.
client_id Igen Az alkalmazásazonosító, amelyet az Azure Portal hozzárendelt az alkalmazáshoz.
client_secret Igen, a Web Appsben Az Azure Portalon létrehozott alkalmazáskulcs. Az ügyfél titkos kulcsait ebben a folyamatban webalkalmazás-forgatókönyvekhez használják, ahol az ügyfél biztonságosan tárolhat egy ügyféltitkot. Natív alkalmazások (nyilvános ügyfél)-forgatókönyvek esetén az ügyfélkulcsok nem tárolhatók biztonságosan, ezért nem használhatók ezen a híváson. Ha ügyfélkulcsot használ, rendszeresen módosítsa.
grant_type Igen Az engedélyezés típusa, amelynek az engedélyezési kód folyamatának ezen részére kell lennie refresh_token .
refresh_token Igen A folyamat második részében beszerzett eredeti frissítési jogkivonat. A offline_access hatókört az engedélyezési és a jogkivonat-kérelmekben is használni kell a frissítési jogkivonat fogadásához.
redirect_uri Nem Annak redirect_uri az alkalmazásnak a paramétere, amelyben megkapta az engedélyezési kódot.
scope Nem A hatókörök szóközzel elválasztott listája. A openid hatókör azt jelzi, hogy jogosult-e bejelentkezni a felhasználóba, és adatokat kérni a felhasználóról azonosító jogkivonatok formájában. Jogkivonatok küldésére használható az alkalmazás saját háttér webes API-jára, amelyet ugyanaz az alkalmazásazonosító jelöl, mint az ügyfél. A offline_access hatókör azt jelzi, hogy az alkalmazásnak frissítési jogkivonatra van szüksége az erőforrásokhoz való kiterjesztett hozzáféréshez.

A sikeres jogkivonat-válasz a következőképpen néz ki:

{
    "not_before": "1442340812",
    "token_type": "Bearer",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "scope": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
    "expires_in": "3600",
    "refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
    "refresh_token_expires_in": "1209600"
}
Paraméter Leírás
not_before Az a korszak, amikor a jogkivonat érvényessé válik.
token_type A jogkivonat típusának értéke. Bearer az egyetlen támogatott típus.
access_token A kért aláírt JWT-jogkivonat.
scope A jogkivonat érvényes hatókörei.
expires_in A hozzáférési jogkivonat érvényességének időtartama (másodpercben).
refresh_token OAuth 2.0 frissítési jogkivonat. Az alkalmazás ezzel a jogkivonattal további jogkivonatokat szerezhet be az aktuális jogkivonat lejárata után. A frissítési jogkivonatokkal hosszabb ideig megőrizhető az erőforrásokhoz való hozzáférés.
refresh_token_expires_in A frissítési jogkivonat érvényességének időtartama (másodpercben).

A hibaválaszok a következőképpen néznek ki:

{
    "error": "invalid_grant",
    "error_description": "AADB2C90129: The provided grant has been revoked. Please reauthenticate and try again.\r\nCorrelation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-xx xx:xx:xxZ\r\n",
}
Paraméter Leírás
error Olyan kód, amely a előforduló hibák típusainak besorolására használható.
error_description Egy üzenet, amely segíthet azonosítani a hitelesítési hiba kiváltó okát.

Bejelentkezési kérés küldése

Ha ki szeretné jelentkeztetni a felhasználót az alkalmazásból, nem elég törölni az alkalmazás cookie-ját, vagy más módon befejezni a munkamenetet a felhasználóval. A kijelentkezés érdekében átirányítja a felhasználót az Azure AD B2C-be. Ha ezt nem teszi meg, előfordulhat, hogy a felhasználó újrahitelesíti az alkalmazást anélkül, hogy újból meg kellene adnia a hitelesítő adatait. További információ: Azure AD B2C-munkamenetek viselkedése.

A felhasználó kijelentkeztetéséhez átirányítsa a felhasználót az end_session_endpoint OpenID Csatlakozás korábban ismertetett metaadat-dokumentumában felsoroltakra:

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Fjwt.ms%2F
Paraméter Kötelező Leírás
{tenant} Igen Az Azure AD B2C-bérlő neve. Ha egyéni tartományt használ, cserélje le tenant.b2clogin.com a tartományát, példáulfabrikam.com.
{policy} Igen Az engedélyezési kérelemben megadott felhasználói folyamat. Ha például a felhasználó bejelentkezett a b2c_1_sign_in felhasználói folyamattal, adja meg b2c_1_sign_in a bejelentkezési kérelemben.
id_token_hint Nem Egy korábban kiadott azonosító jogkivonat, amely a kijelentkezés végpontjának ad át egy tippet a végfelhasználó aktuális hitelesített munkamenetéről az ügyféllel. Ez id_token_hint biztosítja, hogy ez post_logout_redirect_uri egy regisztrált válasz URL-cím az Azure AD B2C-alkalmazás beállításaiban. További információ: A kijelentkezés átirányításának védelme.
client_id Nem* Az alkalmazásazonosító, amelyet az Azure Portal hozzárendelt az alkalmazáshoz.

*Erre akkor van szükség, ha elkülönítési SSO-konfigurációt használ Application , és az azonosító jogkivonat megkövetelése a bejelentkezési kérelemben a következőre Novan állítva: .
post_logout_redirect_uri Nem A sikeres kijelentkezés után a felhasználónak átirányítandó URL-cím. Ha nem tartalmazza, az Azure AD B2C egy általános üzenetet jelenít meg a felhasználónak. Ha nem ad meg egy id_token_hintcímet, ezt az URL-címet nem érdemes válasz URL-címként regisztrálnia az Azure AD B2C-alkalmazás beállításai között.
állapot Nem Ha paramétert state ad meg az engedélyezési kérelemben, az engedélyezési kiszolgáló ugyanazt az értéket adja vissza a válaszban.post_logout_redirect_uri Az alkalmazásnak ellenőriznie kell, hogy a state kérelem és a válasz értéke megegyezik-e.

Kijelentkezési kérés esetén az Azure AD B2C érvényteleníti az Azure AD B2C cookie-alapú munkamenetét, és megkísérel kijelentkezni az összevont identitásszolgáltatóktól. További információ: Egyszeri kijelentkezés.

A kijelentkezés átirányításának védelme

A kijelentkezés után a rendszer átirányítja a felhasználót a paraméterben post_logout_redirect_uri megadott URI-ra, függetlenül az alkalmazáshoz megadott válasz URL-címektől. id_token_hint Ha azonban érvényes értéket ad meg, és a kijelentkezési kérelmekben be van kapcsolva az azonosító jogkivonata, az Azure AD B2C az átirányítás végrehajtása előtt ellenőrzi, hogy az alkalmazás egyik konfigurált átirányítási URI-jának post_logout_redirect_uri értéke megegyezik-e. Ha nem lett konfigurálva egyező válasz URL-cím az alkalmazáshoz, hibaüzenet jelenik meg, és a felhasználó nem lesz átirányítva.

A szükséges azonosító jogkivonatnak a bejelentkezési kérelmekben való beállításához lásd : Munkamenet-viselkedés konfigurálása az Azure Active Directory B2C-ben.

További lépések

  • További információ az Azure AD B2C-munkamenetről.