OpenID Connect a Microsoft Identitásplatform

Az OpenID Connect (OIDC) kiterjeszti az OAuth 2.0 engedélyezési protokollt is hitelesítési protokollként való használatra. Az OIDC használatával engedélyezheti az egyszeri bejelentkezést (SSO) az OAuth-kompatibilis alkalmazások között egy azonosító jogkivonatnak nevezett biztonsági jogkivonat használatával.

Az OIDC teljes specifikációja az OpenID Foundation webhelyén, az OpenID Connect Core 1.0 specifikációban érhető el.

Protokollfolyamat: Bejelentkezés

Ez a diagram az OpenID Connect bejelentkezési folyamat alapszintű folyamatát mutatja be. A folyamat lépéseit részletesebben a cikk későbbi szakaszaiban ismertetjük.

Sávdiagram az OpenID Connect protokoll bejelentkezési folyamatával.

Tipp

Próbálja meg futtatni ezt a kérést a Postmanben
Próbálja meg végrehajtani ezt a kérést és még sok mást a Postmanben – ne felejtse el lecserélni a jogkivonatokat és az azonosítókat!

Azonosító jogkivonatok engedélyezése

Az OpenID Connect által bevezetett azonosító jogkivonatot az engedélyezési kiszolgáló (a Microsoft Identitásplatform) állítja ki, amikor az ügyfélalkalmazás a felhasználói hitelesítés során kér egyet. Az azonosító jogkivonat lehetővé teszi, hogy az ügyfélalkalmazás ellenőrizze a felhasználó identitását, és egyéb információkat (jogcímeket) kapjon róluk.

Az azonosító jogkivonatok alapértelmezés szerint nem jelennek meg a Microsoft Identitásplatform regisztrált alkalmazásokhoz. Az alábbi módszerek egyikével engedélyezheti az alkalmazás azonosító jogkivonatait.

Az alkalmazás azonosítótokenjeinek engedélyezéséhez lépjen a Azure Portal, majd:

  1. Válassza az Azure Active Directory>Alkalmazásregisztrációk><alkalmazás>>hitelesítése lehetőséget.
  2. Az Implicit engedélyezési és hibrid folyamatok területen jelölje be az Azonosító jogkivonatok (implicit és hibrid folyamatokhoz) jelölőnégyzetet.

Vagy:

  1. Válassza az Azure Active Directory>Alkalmazásregisztrációk><alkalmazás>>jegyzékfájlja lehetőséget.
  2. Állítsa be oauth2AllowIdTokenImplicitFlow az true értéket az alkalmazásregisztráció alkalmazásjegyzékében.

Ha elfelejti engedélyezni az azonosító jogkivonatokat az alkalmazáshoz, és kér egyet, a Microsoft Identitásplatform a következőhöz hasonló hibaüzenetet unsupported_response ad vissza:

A "response_type" bemeneti paraméter megadott értéke nem engedélyezett ehhez az ügyfélhez. A várt érték a "kód".

Az azonosítótokenek a megadásával response_typeid_token történő igénylését a cikk későbbi , Bejelentkezési kérelem küldése című szakasza ismerteti.

Az OpenID konfigurációs dokumentumának beolvasása

Az OpenID-szolgáltatók, például a Microsoft Identitásplatform egy OpenID-szolgáltató konfigurációs dokumentumát biztosítják egy nyilvánosan elérhető végponton, amely tartalmazza a szolgáltató OIDC-végpontját, a támogatott jogcímeket és más metaadatokat. Az ügyfélalkalmazások többek között a metaadatok használatával deríthetik fel a hitelesítéshez használandó URL-címeket és a hitelesítési szolgáltatás nyilvános aláíró kulcsait.

A hitelesítési kódtárak az OpenID konfigurációs dokumentum leggyakoribb felhasználói, amelyeket a hitelesítési URL-címek, a szolgáltató nyilvános aláírókulcsai és más szolgáltatás metaadatainak felderítésére használnak. Ha hitelesítési kódtárat használ az alkalmazásban (ajánlott), valószínűleg nem kell kézzel kódolnia az OpenID konfigurációs dokumentum végpontjára irányuló kéréseket és válaszokat.

Az alkalmazás OpenID konfigurációs dokumentumának URI-jának megkeresése

A Azure AD minden alkalmazásregisztrációja nyilvánosan elérhető végpontot kap, amely az OpenID konfigurációs dokumentumát szolgálja ki. A konfigurációs dokumentum alkalmazáshoz tartozó végpontjának URI-jának meghatározásához fűzze hozzá a jól ismert OpenID konfigurációs útvonalat az alkalmazásregisztráció szolgáltatói URL-címéhez.

  • Jól ismert konfigurációs dokumentum elérési útja: /.well-known/openid-configuration
  • Szolgáltató URL-címe: https://login.microsoftonline.com/{tenant}/v2.0

A értéke {tenant} az alkalmazás bejelentkezési célközönségétől függően változik az alábbi táblázatban látható módon. A szolgáltató URL-címe felhőpéldányonként is változik.

Érték Leírás
common A személyes Microsoft-fiókkal és munkahelyi vagy iskolai fiókkal rendelkező felhasználók Azure AD is bejelentkezhetnek az alkalmazásba.
organizations Csak az Azure AD munkahelyi vagy iskolai fiókjával rendelkező felhasználók jelentkezhetnek be az alkalmazásba.
consumers Csak személyes Microsoft-fiókkal rendelkező felhasználók jelentkezhetnek be az alkalmazásba.
8eaef023-2b34-4da1-9baa-8bc8c9d6a490 vagy contoso.onmicrosoft.com Az alkalmazásba csak egy adott Azure AD bérlő (munkahelyi vagy iskolai fiókkal rendelkező címtártagok vagy személyes Microsoft-fiókkal rendelkező címtárvendégek) felhasználói jelentkezhetnek be.

Az érték lehet a Azure AD bérlő tartományneve vagy a bérlőazonosító GUID formátumban. A fogyasztói bérlő GUID azonosítóját 9188040d-6c67-4c5b-b112-36a304b66dadis használhatja a helyett.consumers

Tipp

Vegye figyelembe, hogy ha a vagy consumers szolgáltatót common személyes Microsoft-fiókokhoz használja, a fogyasztó erőforrásalkalmazást úgy kell konfigurálni, hogy támogassa az ilyen típusú fiókokat a signInAudience paraméterrel összhangban.

Az alkalmazás OpenID konfigurációs dokumentumának URI-ját az alkalmazásregisztrációban is megtalálhatja a Azure Portal.

Az alkalmazás OIDC-konfigurációs dokumentumának megkereséséhez lépjen a Azure Portal, majd:

  1. Válassza az Azure Active Directory>Alkalmazásregisztrációk><alkalmazásvégpontok>>lehetőséget.
  2. Keresse meg az URI-t az OpenID Connect metaadat-dokumentumában.

Mintakérés

Ez a kérés lekéri az OpenID konfigurációs metaadatait a common szolgáltató OpenID konfigurációs dokumentumvégpontjáról az Azure nyilvános felhőben:

GET /common/v2.0/.well-known/openid-configuration
Host: login.microsoftonline.com

Tipp

Próbálja ki! Ha meg szeretné tekinteni egy alkalmazás szolgáltatójának OpenID konfigurációs dokumentumát common , lépjen a következőre https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration: .

Mintaválasz

A konfigurációs metaadatok JSON formátumban lesznek visszaadva az alábbi példában látható módon (a rövidség kedvéért csonkolt). A JSON-válaszban visszaadott metaadatokat az OpenID Connect 1.0 felderítési specifikációja ismerteti részletesen.

{
  "authorization_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize",
  "token_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token",
  "token_endpoint_auth_methods_supported": [
    "client_secret_post",
    "private_key_jwt"
  ],
  "jwks_uri": "https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys",
  "userinfo_endpoint": "https://graph.microsoft.com/oidc/userinfo",
  "subject_types_supported": [
      "pairwise"
  ],
  ...
}

A bejelentkezési kérelem elküldése

Ha hitelesíteni szeretne egy felhasználót, és azonosító jogkivonatot szeretne kérni az alkalmazásban való használathoz, irányítsa a felhasználói ügynököt a Microsoft Identitásplatform /authorize végpontjára. A kérelem hasonló az OAuth 2.0 engedélyezési kódfolyamat első szakaszához, de az alábbi különbségekkel:

  • Adja meg a openid hatókört a scope paraméterben.
  • Adja meg id_token a vagy code+id_token a response_type paramétert.
  • Adja meg a paramétert nonce .

Példa bejelentkezési kérelemre (sortörések csak olvashatóság céljából):

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=678910
Paraméter Feltétel Leírás
tenant Kötelező A kérés elérési útjának értékével szabályozhatja {tenant} , hogy ki jelentkezhet be az alkalmazásba. Az engedélyezett értékek a következők: common, organizations, consumersés bérlőazonosítók. További információ: A protokoll alapjai. Kritikus fontosságú, hogy olyan vendégforgatókönyvek esetén, ahol egy felhasználót egy bérlőről egy másik bérlőbe ír alá, meg kell adnia a bérlőazonosítót, hogy megfelelően jelentkezzen be az erőforrás-bérlőbe.
client_id Kötelező Az alkalmazás (ügyfél) azonosítója, amelyet az alkalmazáshoz rendelt Azure Portal – Alkalmazásregisztrációk felület.
response_type Kötelező Tartalmaznia id_token kell az OpenID Connect-bejelentkezést. Más értékeket is tartalmazhat response_type , például code: .
redirect_uri Ajánlott Az alkalmazás átirányítási URI-ja, ahol az alkalmazás hitelesítési válaszokat küldhet és fogadhat. Pontosan meg kell egyeznie a portálon regisztrált átirányítási URI-k egyikével, kivéve, hogy URL-kódolásúnak kell lennie. Ha nincs jelen, a végpont véletlenszerűen regisztrált redirect_uri egyet választ a felhasználó visszaküldéséhez.
scope Kötelező A hatókörök szóközzel elválasztott listája. Az OpenID Connect esetében tartalmaznia kell a hatókört openid, amely a bejelentkezési engedélyre lesz lefordítva a hozzájárulási felhasználói felületen. Más hatóköröket is megadhat ebben a kérelemben a hozzájárulás kéréséhez.
nonce Kötelező Az alkalmazás által az azonosító jogkivonatra vonatkozó kérésében létrehozott és elküldött érték. Ugyanez nonce az érték szerepel az alkalmazásnak a Microsoft Identitásplatform által visszaadott azonosító jogkivonatban. A token-visszajátszási támadások mérséklése érdekében az alkalmazásnak ellenőriznie kell, hogy az nonce azonosító jogkivonat értéke megegyezik-e a jogkivonat kérésekor küldött értékkel. Az érték általában egy egyedi, véletlenszerű sztring.
response_mode Ajánlott Megadja azt a metódust, amellyel az eredményül kapott engedélyezési kódot vissza kell küldeni az alkalmazásnak. A következők egyike lehet: form_post vagy fragment. Webalkalmazások esetén a használatával response_mode=form_postbiztosíthatja a jogkivonatok legbiztonságosabb átvitelét az alkalmazásba.
state Ajánlott A kérésben szereplő érték, amelyet a rendszer a jogkivonat-válaszban is visszaad. 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érés előtt, például a lap vagy a felhasználó be volt kapcsolva.
prompt Választható Azt jelzi, hogy milyen típusú felhasználói beavatkozásra van szükség. Jelenleg az egyetlen érvényes érték: login, none, consentés select_account. A prompt=login jogcím kényszeríti a felhasználót, hogy adja meg a hitelesítő adatait a kéréshez, ami letiltja az egyszeri bejelentkezést. A prompt=none paraméter az ellenkezője, és az a login_hint paraméterrel kell párosítani, amely jelzi, hogy melyik felhasználónak kell bejelentkeznie. Ezek a paraméterek biztosítják, hogy a felhasználó egyáltalán ne jelenjen meg interaktív kérdésekkel. Ha a kérés nem hajtható végre csendesen egyszeri bejelentkezéssel, a Microsoft Identitásplatform hibát ad vissza. Az okok közé tartozik, hogy nincs bejelentkezett felhasználó, a javasolt felhasználó nincs bejelentkezve, vagy több felhasználó van bejelentkezve, de nem adott meg tippet. A prompt=consent jogcím aktiválja az OAuth hozzájárulás párbeszédpanelt, miután a felhasználó bejelentkezett. A párbeszédpanel arra kéri a felhasználót, hogy adjon engedélyeket az alkalmazásnak. select_account Végül megjeleníti a felhasználónak egy fiókválasztót, amely letiltja a csendes egyszeri bejelentkezést, de lehetővé teszi a felhasználó számára, hogy hitelesítő adatok megadása nélkül válassza ki, hogy melyik fiókkal kíván bejelentkezni. Nem használhatja a és a mindkettőtselect_account.login_hint
login_hint Választható Ezzel a paraméterlel előre kitöltheti a felhasználó bejelentkezési oldalának felhasználónév és e-mail-cím mezőjét, ha előre ismeri a felhasználónevet. Az alkalmazások gyakran használják ezt a paramétert az újrahitelesítés során, miután már kinyerték az login_hintopcionális jogcímet egy korábbi bejelentkezésből.
domain_hint Választható A felhasználó tartománya egy összevont könyvtárban. Ez kihagyja az e-mail-alapú felderítési folyamatot, amelyen a felhasználó végighalad a bejelentkezési oldalon, így egyszerűbb felhasználói élményt nyújt. Az olyan bérlők esetében, amelyek egy helyszíni címtárban, például az AD FS-ben vannak összevonva, ez gyakran zökkenőmentes bejelentkezést eredményez a meglévő bejelentkezési munkamenet miatt.

Ezen a ponton a rendszer felkéri a felhasználót, hogy adja meg a hitelesítő adatait, és fejezze be a hitelesítést. A Microsoft Identitásplatform ellenőrzi, hogy a felhasználó hozzájárult-e a scope lekérdezési paraméterben megadott engedélyekhez. Ha a felhasználó nem járult hozzá ezekhez az engedélyekhez, a Microsoft Identitásplatform megkéri a felhasználót, hogy adja meg a szükséges engedélyeket. További információt az engedélyekről, a hozzájárulásokról és a több-bérlős alkalmazásokról olvashat.

Miután a felhasználó hitelesítette és hozzájárulást adott, a Microsoft Identitásplatform a paraméterben megadott módszerrel választ ad vissza az alkalmazásnak a response_mode megadott átirányítási URI-n.

Sikeres válasz

A sikeres válasz használata response_mode=form_post a következőhöz hasonló:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
Paraméter Leírás
id_token Az alkalmazás által kért azonosító jogkivonat. A paraméterrel id_token ellenőrizheti a felhasználó identitását, és munkamenetet indíthat a felhasználóval. Az azonosító jogkivonatokkal és azok tartalmával kapcsolatos további információkért lásd az azonosító-jogkivonatok referenciáját.
state 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 kérés és a válasz állapotértékei azonosak-e.

Hibaválasz

A hibaválaszok elküldhetők az átirányítási URI-nak is, hogy az alkalmazás kezelni tudja őket, például:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

error=access_denied&error_description=the+user+canceled+the+authentication
Paraméter Leírás
error Hibakódsztring, amellyel osztályozhatja a előforduló hibák típusait, és reagálhat a hibákra.
error_description Egy adott hibaüzenet, amely segíthet azonosítani a hitelesítési hiba kiváltó okát.

Az engedélyezési végpont hibáinak hibakódjai

Az alábbi táblázat a hibaválasz paraméterében error visszaadható hibakódokat ismerteti:

Hibakód Leírás Ügyfélművelet
invalid_request Protokollhiba, például hiányzó kötelező paraméter. Javítsa ki és küldje el újra a kérést. Ezt a fejlesztési hibát az alkalmazástesztelés során kell észlelni.
unauthorized_client Az ügyfélalkalmazás nem kérhet engedélyezési kódot. Ez a hiba akkor fordulhat elő, ha az ügyfélalkalmazás nincs regisztrálva Azure AD, vagy nincs hozzáadva a felhasználó Azure AD bérlőhöz. Az alkalmazás megkérheti a felhasználót, hogy telepítse az alkalmazást, és adja hozzá Azure AD.
access_denied Az erőforrás tulajdonosa megtagadta a hozzájárulást. Az ügyfélalkalmazás értesítheti a felhasználót arról, hogy csak akkor folytathatja a műveletet, ha a felhasználó beleegyezik.
unsupported_response_type Az engedélyezési kiszolgáló nem támogatja a kérés választípusát. Javítsa ki és küldje el újra a kérést. Ezt a fejlesztési hibát az alkalmazástesztelés során kell észlelni.
server_error A kiszolgáló váratlan hibát észlelt. Ismételje meg a kérést. Ezek a hibák ideiglenes feltételekből eredhetnek. Az ügyfélalkalmazás elmagyarázhatja a felhasználónak, hogy a válasza egy ideiglenes hiba miatt késik.
temporarily_unavailable A kiszolgáló átmenetileg túl elfoglalt a kérés kezeléséhez. Ismételje meg a kérést. Az ügyfélalkalmazás elmagyarázhatja a felhasználónak, hogy a válasza egy ideiglenes feltétel miatt késik.
invalid_resource A célerőforrás érvénytelen, mert nem létezik, Azure AD nem találja, vagy helytelenül van konfigurálva. Ez a hiba azt jelzi, hogy az erőforrás , ha létezik, nincs konfigurálva a bérlőben. Az alkalmazás megkérheti a felhasználót az alkalmazás telepítésére és Azure AD való hozzáadására.

Az azonosító jogkivonatának ellenőrzése

Előfordulhat, hogy egy azonosító-jogkivonat fogadása az alkalmazásban nem mindig elegendő a felhasználó teljes hitelesítéséhez. Előfordulhat, hogy ellenőriznie kell az azonosító jogkivonat aláírását, és ellenőriznie kell annak jogcímeit az alkalmazás követelményeinek megfelelően. Mint minden OpenID-szolgáltató, a Microsoft Identitásplatform azonosító jogkivonatai a nyilvános kulcs titkosításával aláírt JSON-webjogkivonatok (JWT-k).

Az engedélyezéshez azonosító jogkivonatokat használó webalkalmazásoknak és webes API-knak ellenőrizniük kell őket, mert az ilyen alkalmazások kaput nyitnak az adatokhoz. Előfordulhat azonban, hogy más típusú alkalmazások esetében nem előnyös az azonosító jogkivonatának érvényesítése. A natív és egyoldalas alkalmazások (SPA-k) például ritkán élvezik az azonosító jogkivonatok érvényesítését, mivel az eszközhöz vagy böngészőhöz fizikai hozzáféréssel rendelkező entitások esetleg megkerülhetik az érvényesítést.

Két példa a tokenérvényesítés megkerülésére:

  • Hamis jogkivonatok vagy kulcsok biztosítása az eszköz hálózati forgalmának módosításával
  • Az alkalmazás hibakeresése és az érvényesítési logika túllépése a program végrehajtása során.

Ha érvényesíti az azonosító jogkivonatokat az alkalmazásban, javasoljuk, hogy ezt ne manuálisan tegye. Ehelyett használjon jogkivonat-érvényesítési kódtárat a jogkivonatok elemzéséhez és érvényesítéséhez. A jogkivonat-érvényesítési kódtárak a legtöbb fejlesztési nyelvhez, keretrendszerhez és platformhoz elérhetők.

Mit kell ellenőrizni egy azonosító jogkivonatban?

Az azonosító jogkivonat aláírásának érvényesítése mellett számos jogcímét is érvényesítenie kell az azonosító-jogkivonat érvényesítése az azonosító-jogkivonat referenciájában című témakörben leírtak szerint. Lásd még: Fontos információk a kulcsátállítás aláírásával kapcsolatban.

Számos más ellenőrzés is gyakori, és alkalmazásforgatókönyvenként eltérő, például:

  • Annak biztosítása, hogy a felhasználó/szervezet regisztrált az alkalmazásra.
  • Annak biztosítása, hogy a felhasználó megfelelő engedélyekkel/jogosultságokkal rendelkezik
  • A hitelesítés bizonyos erősségének biztosítása, például a többtényezős hitelesítés.

Miután ellenőrizte az azonosító jogkivonatot, megkezdheti a munkamenetet a felhasználóval, és a jogkivonat jogcímeiben szereplő információkat felhasználhatja az alkalmazások személyre szabására, megjelenítésére vagy az adataik tárolására.

Protokolldiagram: Hozzáférési jogkivonat beszerzése

Számos alkalmazásnak nemcsak be kell jelentkeznie egy felhasználóba, hanem egy védett erőforráshoz, például egy webes API-hoz is hozzá kell férnie a felhasználó nevében. Ez a forgatókönyv az OpenID Connectet kombinálja egy azonosító jogkivonat lekéréséhez a felhasználó és az OAuth 2.0 hitelesítéséhez egy védett erőforrás hozzáférési jogkivonatának lekéréséhez.

A teljes OpenID Connect-bejelentkezési és jogkivonat-beszerzési folyamat az alábbi ábrához hasonlóan néz ki:

OpenID Connect-protokoll: Jogkivonat beszerzése

Hozzáférési jogkivonat lekérése a UserInfo-végponthoz

Az azonosító jogkivonaton kívül a hitelesített felhasználó adatai is elérhetővé válnak az OIDC UserInfo végpontján.

Az OIDC UserInfo végpont hozzáférési jogkivonatának lekéréséhez módosítsa a bejelentkezési kérést az itt leírtak szerint:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e        // Your app registration's Application (client) ID
&response_type=id_token%20token                       // Requests both an ID token and access token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F       // Your application's redirect URI (URL-encoded)
&response_mode=form_post                              // 'form_post' or 'fragment'
&scope=openid+profile+email                           // 'openid' is required; 'profile' and 'email' provide information in the UserInfo endpoint as they do in an ID token. 
&state=12345                                          // Any value - provided by your app
&nonce=678910                                         // Any value - provided by your app

Használhatja az engedélyezési kódfolyamatot, az eszköz kódfolyamatát vagy egy frissítési jogkivonatot az alkalmazás hozzáférési jogkivonatának response_type=token lekéréséhez.

Sikeres jogkivonat-válasz

Sikeres válasz a használatával response_mode=form_post:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
 access_token=eyJ0eXAiOiJKV1QiLCJub25jZSI6I....
 &token_type=Bearer
 &expires_in=3598
 &scope=email+openid+profile
 &id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI....
 &state=12345

A válaszparaméterek ugyanazt jelentik, függetlenül a beszerzésükhöz használt folyamattól.

Paraméter Leírás
access_token A UserInfo végpont meghívásához használt jogkivonat.
token_type Mindig "Tulajdonos"
expires_in A hozzáférési jogkivonat lejáratáig eltelt idő másodpercben.
scope A hozzáférési jogkivonaton megadott engedélyek. Mivel a UserInfo végpont a Microsoft Graphon található, az scope alkalmazásnak korábban megadott más elemeket is tartalmazhat (például User.Read).
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. Az azonosító jogkivonatokról és azok tartalmáról az azonosítótoken referenciájában talál további információt.
state Ha egy állapotparaméter szerepel a kérelemben, akkor ugyanaz az érték jelenik meg a válaszban. Az alkalmazásnak ellenőriznie kell, hogy a kérésben és a válaszban szereplő állapotértékek azonosak-e.

Figyelmeztetés

Ne kísérelje meg érvényesíteni vagy beolvasni a kódban a nem birtokolt API-k jogkivonatait, beleértve az ebben a példában szereplő jogkivonatokat is. A Microsoft-szolgáltatások jogkivonatai olyan speciális formátumot használhatnak, amely nem lesz érvényesítve JWT-ként, és titkosíthatók a fogyasztói (Microsoft-fiók) felhasználók számára is. Bár a jogkivonatok olvasása hasznos hibakeresési és tanulási eszköz, ne vegyen fel függőségeket a kódban, és ne feltételezz olyan jogkivonatokat, amelyek nem az Ön által vezérelt API-kra vonatkoznak.

Hibaválasz

A hibaválaszok az átirányítási URI-nak is elküldhetők, hogy az alkalmazás megfelelően kezelje őket:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

error=access_denied&error_description=the+user+canceled+the+authentication
Paraméter Leírás
error Hibakódsztring, amellyel osztályozhatja a felmerülő hibák típusait, és reagálhat a hibákra.
error_description Egy adott hibaüzenet, amely segíthet azonosítani a hitelesítési hiba kiváltó okát.

A lehetséges hibakódok és az ajánlott ügyfélválaszok leírását lásd: Engedélyezési végpont hibáinak hibakódjai.

Ha rendelkezik engedélyezési kóddal és azonosító jogkivonattal, bejelentkeztetheti a felhasználót, és hozzáférési jogkivonatokat kérhet le a nevükben. A felhasználó bejelentkeztetéséhez pontosan a leírt módon kell érvényesítenie az azonosító jogkivonatot. A hozzáférési jogkivonatok beszerzéséhez kövesse az OAuth-kódfolyamat dokumentációjában leírt lépéseket.

A UserInfo végpont meghívása

Tekintse át a UserInfo dokumentációját , amelyből megtudhatja, hogyan hívhatja meg a UserInfo végpontot ezzel a jogkivonattal.

Kijelentkezés kérésének küldése

Felhasználó kijelentkeztetéséhez hajtsa végre mindkét műveletet:

  • A felhasználó felhasználói ügynökének átirányítása a Microsoft Identitásplatform kijelentkezés URI-jára
  • Törölje az alkalmazás cookie-ját, vagy egyéb módon fejezheti be a felhasználó munkamenetét az alkalmazásban.

Ha egyik műveletet sem tudja végrehajtani, előfordulhat, hogy a felhasználó továbbra is hitelesítve marad, és a rendszer nem kéri a bejelentkezést az alkalmazás következő használatakor.

A felhasználói ügynök átirányítása az end_session_endpoint OpenID Connect konfigurációs dokumentumában látható módon. A end_session_endpoint HTTP GET és POST kéréseket is támogatja.

GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Paraméter Feltétel Description
post_logout_redirect_uri Ajánlott A sikeres kijelentkezés után a felhasználó által átirányított URL-cím. Ha a paraméter nem szerepel a fájlban, a felhasználó egy általános üzenetet jelenít meg, amelyet a Microsoft Identitásplatform generál. Ennek az URL-címnek meg kell egyeznie az alkalmazáshoz regisztrált átirányítási URI-k egyikével az alkalmazásregisztrációs portálon.
logout_hint Választható Lehetővé teszi a bejelentkezést anélkül, hogy a felhasználónak ki kell választania egy fiókot. A használatához logout_hintengedélyezze a login_hintnem kötelező jogcímet az ügyfélalkalmazásban, és használja a login_hint választható jogcím értékét paraméterként logout_hint . Ne használjon UPN-eket vagy telefonszámokat a logout_hint paraméter értékeként.

Megjegyzés

A sikeres kijelentkezés után az aktív munkamenetek inaktívra lesznek állítva. Ha érvényes elsődleges frissítési jogkivonat (PRT) létezik a kijelentkezett felhasználóhoz, és egy új bejelentkezést hajt végre, a rendszer megszakítja az egyszeri bejelentkezést, és a felhasználó megjelenik egy fiókválasztó kérésével. Ha a kiválasztott lehetőség a PRT-ra hivatkozó csatlakoztatott fiók, a bejelentkezés automatikusan folytatódik, és nem kell friss hitelesítő adatokat beszúrnia.

Egyszeri kijelentkezés

Amikor átirányítja a felhasználót a end_session_endpoint-ra, a Microsoft Identitásplatform törli a felhasználó munkamenetét a böngészőből. Előfordulhat azonban, hogy a felhasználó továbbra is be van jelentkezve más alkalmazásokba, amelyek Hitelesítéshez Microsoft-fiókokat használnak. Ha engedélyezni szeretné ezeknek az alkalmazásoknak, hogy egyidejűleg kijelentkeztethessék a felhasználót, a Microsoft Identitásplatform HTTP GET kérést küld az összes regisztrált LogoutUrl alkalmazásnak, amelybe a felhasználó jelenleg bejelentkezett. Az alkalmazásoknak úgy kell válaszolniuk erre a kérésre, hogy törlik a felhasználót azonosító munkameneteket, és választ adnak 200 vissza. Ha támogatni szeretné az egyszeri bejelentkezést az alkalmazásban, implementálnia kell egy LogoutUrl ilyent az alkalmazás kódjában. Az értéket az LogoutUrl alkalmazásregisztrációs portálon állíthatja be.

Következő lépések