Microsoft Identitásplatform OpenID Csatlakozás protokoll

Az OpenID Csatlakozás (OIDC) egy OAuth 2.0-ra épített hitelesítési protokoll, amely segítségével biztonságosan bejelentkeztethet egy felhasználót egy alkalmazásba. Ha a Microsoft Identitásplatform OpenID-t implementációja Csatlakozás, bejelentkezést és API-hozzáférést adhat az alkalmazásokhoz. Ez a cikk bemutatja, hogyan lehet ezt a nyelvtől függetlenül megtenni, és leírja, hogyan küldhet és fogadhat HTTP-üzeneteket a Microsoft nyílt forráskódú kódtárainak használata nélkül.

Az OpenID Csatlakozás kiterjeszti az OAuth 2.0 hitelesítési protokollt hitelesítési protokollként való használatra, így OAuth használatával egyszeri bejelentkezést is lehet használni. Az OpenID Csatlakozás bevezeti az azonosító jogkivonat fogalmát, amely egy biztonsági jogkivonat, amellyel az ügyfél ellenőrizheti a felhasználó identitását. Az azonosító jogkivonat alapszintű profiladatokat is lekért a felhasználóról. Emellett bevezeti a UserInfo végpontot is,egy API-t, amely információkat ad vissza a felhasználóról.

Tipp

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

Protokolldiagram: Bejelentkezés

A legapvetőbb bejelentkezési folyamat a következő ábrán látható lépésekkel rendelkezik. Ebben a cikkben részletesen ismertetjük az egyes lépéseket.

OpenID Csatlakozás protokoll: Bejelentkezés

Az OpenID és Csatlakozás beolvasása

Az OpenID Csatlakozás egy metaadat-dokumentumot (RFC) ír le, amely az alkalmazás bejelentkezéséhez szükséges legtöbb információt tartalmazza. Ide tartoznak például a használni szükséges URL-címek és a szolgáltatás nyilvános aláírókulcsának helye. Ezt a dokumentumot úgy találhatja meg, hogy hozzáfűzi a felderítési dokumentum elérési útját a hitelesítésszolgáltatói URL-címhez:

Felderítési dokumentum elérési útja: /.well-known/openid-configuration

Hatóság: https://login.microsoftonline.com/{tenant}/v2.0

A {tenant} a következő négy érték valamelyikét használhatja:

Érték Leírás
common A személyes fiókkal és Microsoft-fiók Azure AD-beli munkahelyi vagy iskolai fiókkal is bejelentkezhet az alkalmazásba.
organizations Csak az Azure AD-beli munkahelyi vagy iskolai fiókkal rendelkező felhasználók tudnak bejelentkezni az alkalmazásba.
consumers Csak a személyes Microsoft-fiók bejelentkezhet az alkalmazásba.
8eaef023-2b34-4da1-9baa-8bc8c9d6a490 vagy contoso.onmicrosoft.com Az alkalmazásba csak egy adott Azure AD-bérlő felhasználói jelentkeznek be (függetlenül attól, hogy a címtárban munkahelyi vagy iskolai fiókkal vagy személyes fiókkal Microsoft-fiók) tagjai. Használható az Azure AD-bérlő rövid tartományneve vagy a bérlő GUID-azonosítója. Használhatja a fogyasztói bérlőt is a 9188040d-6c67-4c5b-b112-36a304b66dad consumers bérlője helyére.

A hatóság eltérő az országos felhőkben , például az https://login.microsoftonline.de Azure AD Germany-példány esetében. Ha nem használja a nyilvános felhőt, tekintse át az országos felhővégpontokat, és keresse meg az Önnek megfelelőt. Győződjön meg arról, hogy a bérlő és a is jelen van a kérésben, hogy használni tudja a végpont /v2.0/ 2.0-s verzióját.

Tipp

Próbálja ki! A https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration konfigurációt kattintással common láthatja.

Mintakérés

A nyilvános felhő általános hitelesítésszolgáltatójának userinfo végpontjának hívását a következővel használhatja:

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

Mintaválasz

A metaadatok egy egyszerű JavaScript Object Notation (JSON) dokumentum. Példaként tekintse meg az alábbi kódrészletet. A tartalom teljes leírását az OpenID Csatlakozás tartalmazza.

{
  "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"
  ],
  ...

}

Ha az alkalmazás a jogcím-leképezési funkció használatának eredményeként egyéni aláírókulcsokkal rendelkezik, hozzá kell fűznie egy lekérdezési paramétert, amely tartalmazza az alkalmazás azonosítóját, hogy az alkalmazás aláírókulcs-információira appid jwks_uri mutasson. Például: a https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e egy fájlját jwks_uri https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys?appid=6731de76-14a6-49ae-97bc-6eba6914391e tartalmazza.

Ezt a metaadat-dokumentumot általában egy OpenID-kódtár vagy SDK Csatlakozás konfigurálja; A kódtár a metaadatokat használná a munkához. Ha azonban nem egy előre felépített OpenID Csatlakozás-kódtárat használ, a cikk többi részében található lépéseket követve bejelentkezhet egy webalkalmazásba az Microsoft Identitásplatform.

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

Ha a webalkalmazásnak hitelesítenie kell a felhasználót, a felhasználót a végpontra /authorize irányíthatja. Ez a kérés hasonló az OAuth 2.0hitelesítési kódfolyamának első szakaszára, a következő fontos különbségekkel:

  • A kérelemnek tartalmaznia kell openid a hatókört a scope paraméterben.
  • A response_type paraméternek tartalmaznia kell a következőt: id_token .
  • A kérelemnek tartalmaznia kell a nonce paramétert.

Fontos

Ahhoz, hogy sikeresen leküldhető legyen egy azonosító jogkivonat a /authorization végpontról, a regisztrációs portálon az alkalmazásregisztrációhoz engedélyezni kell az id_tokens implicit engedélyét a Hitelesítés lapon (amely az alkalmazásjegyzékben a jelzőt a következőre állítja oauth2AllowIdTokenImplicitFlow be: true ). Ha nincs engedélyezve, a következő hibaüzenet jelenik meg: "A "response_type" bemeneti paraméter megadott értéke nem engedélyezett ehhez az unsupported_response ügyfélhez. A várt érték "code"

Például:

// Line breaks are for legibility only.

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án található értékkel szabályozhatja, hogy ki {tenant} jelentkezhet be az alkalmazásba. Az engedélyezett értékek a common , organizations , és consumers bérlőazonosítók. További információkért lásd a protokollok alapjait. Kritikus fontosságú, hogy olyan vendégforgatókönyvek esetén, amikor egy felhasználót az egyik bérlőből egy másik bérlőbe ír át, meg kell adnia a bérlő azonosítóját, hogy megfelelően bejelentkeztetje őket az erőforrás-bérlőbe.
client_id Kötelező Az alkalmazás (ügyfél) azonosítója, Azure Portal – Alkalmazásregisztrációk alkalmazáshoz rendelt felhasználói élményt.
response_type Kötelező Tartalmaznia kell id_token az OpenID Csatlakozás bejelentkezéshez. Tartalmazhat más értékeket response_type is, például code a következőt: .
redirect_uri Ajánlott Az alkalmazás átirányítási URI-ját, ahol az alkalmazás elküldheti és megkaphatja a hitelesítési válaszokat. Pontosan meg kell egyeznie a portálon regisztrált átirányítási URI-k egyikével, azzal a kivételel, hogy URL-kódolásúnak kell lennie. Ha nincs jelen, a végpont véletlenszerűen kiválaszt egy regisztrált redirect_uri, amelybe visszaküldi a felhasználót.
scope Kötelező A hatókörök szóközrel elválasztott listája. OpenID Csatlakozás tartalmaznia kell a hatókört, amely a hozzájárulási felhasználói felületen openid a "Bejelentkezés" engedélyre van lefordítva. Ebben a kérelemben a hozzájárulás kérése más hatókörökre is kiterjedhet.
nonce Kötelező A kérelemben szereplő, az alkalmazás által létrehozott érték, amely az eredményül kapott id_token tartalmazza jogcímként. Az alkalmazás ellenőrizheti ezt az értéket a jogkivonat-visszajátszásos támadások mérséklé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_mode Ajánlott Megadja a metódust, amely alapján 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ében a használatát javasoljuk, hogy a legbiztonságosabb jogkivonat-átvitelt biztosítsa response_mode=form_post az alkalmazásnak.
state Ajánlott A kérésben szereplő érték, amely szintén a jogkivonat válaszában lesz visszaadva. Ez bármilyen tartalom sztringe lehet. A véletlenszerűen generált egyedi érték általában a webhelyközi kérések hamisítási támadásának megakadályozására használatos. Az állapot arra is használható, hogy a hitelesítési kérelem beeste előtt kódolja a felhasználó állapotinformációját az alkalmazásban, például a lapot vagy a felhasználó állapotát.
prompt Választható A szükséges felhasználói beavatkozás típusát jelzi. Jelenleg az egyetlen érvényes érték a login , none , és consent select_account . A jogcím arra kényszeríti a felhasználót, hogy a kérésnél adja meg a hitelesítő adatait, ami az egyszeri prompt=login bejelentkezést is mellőzi. A paraméter az ellenkezője, és az értékekkel párosítva kell jelezni, hogy melyik prompt=none login_hint felhasználónak kell bejelentkezve lennie. Ezek a paraméterek biztosítják, hogy a felhasználó számára egyáltalán ne legyen interaktív üzenet. Ha a kérést nem lehet csendesen, egyszeri bejelentkezésen keresztül végrehajtani (mivel nincs bejelentkezett felhasználó, a segítő felhasználó nincs bejelentkezve, vagy több felhasználó van bejelentkezve, és nem ad meg tippet), a Microsoft Identitásplatform hibát ad vissza. A prompt=consent jogcím aktiválja az OAuth-jóváhagyási párbeszédpanelt, miután a felhasználó bejelentkezik. A párbeszédpanel arra kéri a felhasználót, hogy adjon engedélyeket az alkalmazásnak. Végül a egy fiókválasztót mutat be a felhasználónak, amely nem engedélyezi a csendes SSO-t, de lehetővé teszi a felhasználó számára, hogy kiváltsa, melyik fiókkal kíván bejelentkezni anélkül, hogy be kell írnia a select_account hitelesítő adatokat. A és az login_hint együttes select_account használata nem használható.
login_hint Választható Ezzel a paraméterrel 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 ezt a paramétert használják az újrahitelesítés során, miután már kinyerték a választható jogcímet login_hint egy korábbi bejelentkezésből.
domain_hint Választható A felhasználó tartománya egy összevont címtárban. Ez kihagyja az e-mail-alapú felderítési folyamatot, amely során a felhasználó a bejelentkezési oldalon végigmegy, így a felhasználói élmény egyszerűbb lesz. A helyszíni címtáron ( például AD FS) keresztül összevont bérlőknél ez gyakran zökkenőmentes bejelentkezést biztosít a meglévő bejelentkezési munkamenet miatt.

Ezen a ponton a rendszer felszólítja a felhasználót, hogy adja meg a hitelesítő adatait, és töltse ki a hitelesítést. A Microsoft Identitásplatform, hogy a felhasználó hozzájárult-e a lekérdezési paraméterben jelzett scope engedélyekhez. Ha a felhasználó nem járult hozzá ezekhez az engedélyekhez, a Microsoft Identitásplatform kéri a felhasználót, hogy járul hozzá a szükséges engedélyekhez. További információ az engedélyekről, a jóváhagyásról és a több-bérlős alkalmazásokról.

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

Sikeres válasz

A használata esetén a sikeres válasz response_mode=form_post a következő:

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 ellenőrizheti a felhasználó identitását, és id_token megkezdheti a munkamenetet a felhasználóval. Az azonosító jogkivonatokkal és azok tartalmával kapcsolatos további információkért tekintse meg a id_tokens hivatkozást.
state Ha a kérelem tartalmaz egy paramétert, ugyaneznek az értéknek state kell megjelennie 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 hibaüzenetek az átirányítási URI-nak is elküldve lesznek, hogy az alkalmazás kezelni tudja őket. A hibaválasz a következő:

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 Egy hibakód-sztring, amely a előforduló hibák típusának besorolására és a hibákra való reagálásra használható.
error_description Egy adott hibaüzenet, amely segíthet a hitelesítési hibák kiváltó okának azonosításában.

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

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

Hibakód Leírás Ügyfél művelet
invalid_request Protokollhiba, például hiányzó, kötelező paraméter. Javítsa ki és újra a kérést. Ez egy fejlesztési hiba, amely általában a kezdeti tesztelés során jelenik meg.
unauthorized_client Az ügyfélalkalmazás nem tud engedélyezési kódot kérni. Ez általában akkor fordul elő, ha az ügyfélalkalmazás nincs regisztrálva az Azure AD-ban, vagy nincs hozzáadva a felhasználó Azure AD-bérlőjéhez. Az alkalmazás utasításokat tud kérni a felhasználótól az alkalmazás telepítéséhez és az Azure AD-hez való hozzáadásához.
access_denied Az erőforrás tulajdonosa megtagadta a jóváhagyást. Az ügyfélalkalmazás értesítheti a felhasználót, hogy nem folytathatja a műveletet, ha a felhasználó nem járul hozzá.
unsupported_response_type Az engedélyezési kiszolgáló nem támogatja a kérés választípusát. Javítsa ki és újra a kérést. Ez egy fejlesztési hiba, amely általában a kezdeti tesztelés során jelenik meg.
server_error A kiszolgáló váratlan hibát észlelt. Próbálja újra a kérést. Ezek a hibák ideiglenes feltételekből is eredményezhetnek. Az ügyfélalkalmazás elmagyarázhatja a felhasználónak, hogy a válasza egy átmeneti hiba miatt késik.
temporarily_unavailable A kiszolgáló átmenetileg túl elfoglalt a kérés kezeléséhez. Próbálja újra 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, az Azure AD nem találja, vagy nincs megfelelően konfigurálva. Ez azt jelzi, hogy ha létezik, az erőforrás nincs konfigurálva a bérlőben. Az alkalmazás utasításokat tud kérni a felhasználótól az alkalmazás telepítéséhez és az Azure AD-hez való hozzáadásához.

Az azonosító jogkivonat ellenőrzése

Csak egy id_token nem mindig elegendő a felhasználó hitelesítéséhez; Előfordulhat, hogy ellenőriznie kell a id_token aláírását, és ellenőriznie kell a jogkivonatban a jogcímeket az alkalmazás követelményeinek megfelelően. Az OIDC-platformokhoz Microsoft Identitásplatform JSON webtokeneket (JWT-ket) és nyilvános kulcsú titkosítást használ az azonosító jogkivonatok aláírásához és azok érvényességének ellenőrzéséhez.

Nem minden alkalmazás számára előnyös az azonosító jogkivonat ellenőrzése – a natív alkalmazások és az egyoldalas alkalmazások például ritkán használják ki az azonosító jogkivonatának ellenőrzését. Az eszközhöz (vagy böngészőhöz) fizikai hozzáféréssel rendelkezik valaki számos módon megkerülheti az ellenőrzést – a webes forgalom eszközre való szerkesztésével hamis jogkivonatok és kulcsok használatával, vagy egyszerűen az alkalmazás hibakeresésével az érvényesítési logika kihagyása érdekében. Másrészt az azonosító jogkivonatot az engedélyezéshez azonosító jogkivonatot használó webalkalmazások és API-k körültekintően kell ellenőrizniük az azonosító jogkivonatot, mivel azok az adatokhoz való hozzáférést engedélyeznek.

Miután ellenőrizte a tanúsítvány aláírását id_token, ellenőriznie kell néhány jogcímet. További id_token információért tekintse meg a referenciát, beleértve a jogkivonatok érvényességének érvényességét és a kulcsváltás aláírásával kapcsolatos fontos információkat. Javasoljuk, hogy használjon kódtárat a jogkivonatok elemzési és érvényesítése érdekében – a legtöbb nyelvhez és platformhoz legalább egy elérhető.

A forgatókönyvtől függően további jogcímeket is érvényesíthet. Néhány gyakori ellenőrzés:

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

Miután érvényesítte a id_token, elkezdhet egy munkamenetet a felhasználóval, és a id_token jogcímeit használva információkat szerezhet be a felhasználóról az alkalmazásban. Ezek az információk felhasználhatók megjelenítéshez, rekordokhoz, személyre szabáshoz stb.

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

Számos webalkalmazásnak nem csupán be kell jelentkeznie a felhasználóhoz, hanem egy webszolgáltatáshoz is hozzá kell férni a felhasználó nevében OAuth használatával. Ez a forgatókönyv az OpenID Csatlakozás-t kombinálja a felhasználói hitelesítéshez, és egyidejűleg kap egy engedélyezési kódot, amely hozzáférési jogkivonatok lekért felhasználásával használható az OAuth engedélyezési kódfolyamának használata esetén.

A teljes OpenID Csatlakozás bejelentkezési és jogkivonat-beszerzési folyamat a következő diagramhoz hasonlóan néz ki. Az egyes lépéseket a cikk következő szakaszaiban ismertetjük részletesen.

OpenID Csatlakozás protokoll: Jogkivonat beszerzése

Hozzáférési jogkivonat lehívása a UserInfo híváshoz

Az OIDC UserInfo végpont jogkivonatának megszerzéséhez módosítsa a bejelentkezési kérelmet:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e        // Your registered Application ID
&response_type=id_token%20token                       // this will return both an id_token and an access token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F       // Your registered redirect URI, URL encoded
&response_mode=form_post                              // 'form_post' or 'fragment'
&scope=openid+profile+email                           // `openid` is required.  `profile` and `email` provide additional information in the UserInfo endpoint the same way 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ódfolyamot, az eszközkódfolyamot vagy egy frissítési tokent is az alkalmazás jogkivonatának response_type=token lekért helyére.

Tipp

A kérelem végrehajtásához kattintson a következő hivatkozásra. Miután bejelentkezett, a böngésző a címre lesz átirányítva egy azonosító jogkivonattal és egy jogkivonattal https://localhost/myapp/ a címsorban. Vegye figyelembe, hogy ez a kérés csak bemutatási célokra szolgál – webalkalmazás esetén a használatát javasoljuk a response_mode=fragment form_post további biztonság érdekében, ahol lehetséges. https://login.microsoftonline.com/common/oauth2/v2.0/authorize...

Sikeres jogkivonatválasz

A sikeres válasz a használatával response_mode=form_post a következő:

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ük folyamatától.

Paraméter Leírás
access_token A UserInfo végpont hívásának jogkivonata.
token_type Mindig "Bearer"
expires_in A hozzáférési jogkivonat lejáratának ideje másodpercben.
scope A hozzáférési jogkivonaton megadott engedélyek. Vegye figyelembe, hogy mivel a UserInfo végpontot az MS Graph üzemelteti, előfordulhat, hogy további Graph-hatókörök is szerepelnek itt (például user.read), ha korábban megadták őket az alkalmazásnak. Ennek az az oka, hogy egy adott erőforrás jogkivonata mindig tartalmazza az ügyfélnek jelenleg megadott összes engedélyt.
id_token Az alkalmazás által kért azonosító jogkivonat. Az azonosító jogkivonattal ellenőrizheti a felhasználó identitását, és megkezdheti a munkamenetet a felhasználóval. Az azonosító jogkivonatokkal és azok tartalmával kapcsolatos további részleteket a referencia id_tokens tartalmazza.
state Ha egy állapotparaméter szerepel a kérésben, ugyaneznek az értéknek kell megjelennie a válaszban. Az alkalmazásnak ellenőriznie kell, hogy a kérés és a válasz állapotértékei azonosak-e.

Figyelmeztetés

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

Hibaválasz

A hibaüzenetek az átirányítási URI-nak is elküldve lesznek, hogy az alkalmazás megfelelően tudja kezelni őket. A hibaválasz a következő:

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ód-sztring, amely a előforduló hibák típusainak besorolására és a hibákra való reagálásra használható.
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 az engedélyezési végpont hibáinak hibakódjaiban láthatja.

Ha rendelkezik engedélyezési kóddal és azonosító jogkivonattal, bejelentkeztetheti a felhasználót, és le tudja szerezni a hozzáférési jogkivonatokat a nevükben. A felhasználó bejelentkezéshez az azonosító jogkivonatát pontosan a leírt módon kell ellenőriznie. A hozzáférési jogkivonatok lekért lépéseit az OAuth-kódfolyam dokumentációjában leírt lépésekben találhatja meg.

A UserInfo végpont hívása

A UserInfo dokumentációjában áttekinti, hogyan hívja meg a UserInfo végpontot ezzel a jogkivonattal.

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

Ha ki szeretné jelentkezni a felhasználót az alkalmazásból, nem elég, ha törli az alkalmazás cookie-jait, vagy más módon véget ér a felhasználó munkamenete. A kijelentkezni való bejelentkezéshez át kell irányítania Microsoft Identitásplatform felhasználót a webhelyre. Ha ezt nem teszi meg, a felhasználó újrahitelesít az alkalmazáshoz anélkül, hogy újra beadja a hitelesítő adatait, mert a felhasználó érvényes egyszeri bejelentkezési munkamenetet fog Microsoft Identitásplatform.

A felhasználót átirányíthatja az end_session_endpoint OpenID metaadat-Csatlakozás felsoroltakra:

GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Paraméter Feltétel Leírás
post_logout_redirect_uri Ajánlott Az URL-cím, amelybe a felhasználó a sikeres kijelentkezás után át lesz irányítva. Ha a paraméter nincs megadva, a felhasználó egy általános üzenetet kap, amelyet a felhasználó Microsoft Identitásplatform. Ennek az URL-címnek meg kell egyeznie az alkalmazáshoz az alkalmazásregisztrációs portálon regisztrált átirányítási URI-k egyikével.

Egyszeri kijelentkezés

Amikor átirányítja a felhasználót a alkalmazásba, Microsoft Identitásplatform törli a felhasználó munkamenetét end_session_endpoint a böngészőből. Előfordulhat azonban, hogy a felhasználó továbbra is be van jelentkezve más alkalmazásokba, amelyek Microsoft-fiókokat használnak a hitelesítéshez. Ahhoz, hogy ezek az alkalmazások egyidejűleg kijelentkeztet használják a felhasználót, a Microsoft Identitásplatform HTTP GET kérést küld az összes olyan alkalmazásnak, amelybe a felhasználó jelenleg LogoutUrl bejelentkezett. Az alkalmazásoknak úgy kell válaszolniuk erre a kérésre, hogy törlik a felhasználót azonosító és választ visszaadó 200 munkamenetet. Ha támogatni szeretné az egyszeri kijelentkeztet az alkalmazásban, ezt implementálja az alkalmazás LogoutUrl kódában. A beállítását LogoutUrl az alkalmazásregisztrációs portálon lehet beállítani.

Következő lépések