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-b8bbc0b29dc6
a 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áulb2c_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_up vagy 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_token a . |
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. query Lehet , form_post vagy 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_uri
amelynek é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, ésexp
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 No van á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_hint cí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.