OpenID Csatlakozás a Microsoft Identitásplatform

Az OpenID Csatlakozás (OIDC) kibővíti az OAuth 2.0 engedélyezési protokollt további 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 elérhető az OpenID Foundation webhelyén, az OpenID Csatlakozás Core 1.0 specifikációban.

Protokollfolyamat: Bejelentkezés

Az alábbi ábrán az egyszerű OpenID Csatlakozás bejelentkezési folyamat látható. A folyamat lépéseit részletesebben a cikk későbbi szakaszaiban ismertetjük.

Swim-lane diagram showing the OpenID Connect protocol's sign-in flow.

Azonosító jogkivonatok engedélyezése

Az OpenID Csatlakozás á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ó személyazonosságá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 alkalmazások azonosító jogkivonatai az alábbi módszerek egyikével engedélyezve vannak:

  1. Jelentkezzen be a Microsoft Entra felügyeleti központjába.
  2. Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk>< a hitelesítést.>>
  3. A Platformkonfigurációk területen válassza a Platform hozzáadása lehetőséget.
  4. A megnyíló panelen válassza ki az alkalmazásnak megfelelő platformot. Válassza például a Web elemet egy webalkalmazáshoz.
  5. Az Átirányítási URI-k területen adja hozzá az alkalmazás átirányítási URI-ját. Például: https://localhost:8080/.
  6. Az Implicit engedélyezési és hibrid folyamatok területen jelölje be az (implicit és hibrid folyamatokhoz használt) azonosító jogkivonatokat.

Vagy:

  1. Válassza az Identitásalkalmazások>> lehetőséget Alkalmazásregisztrációk>< az alkalmazásjegyzéket.>>
  2. Állítsa oauth2AllowIdTokenImplicitFlow be az alkalmazásregisztráció alkalmazásjegyzékében.true

Ha az azonosító jogkivonatok nincsenek engedélyezve az alkalmazáshoz, és az egyiket kérik, a Microsoft Identitásplatform a következőhöz hasonló hibát ad unsupported_response vissza:

Az "response_type" bemeneti paraméter megadott értéke ebben az ügyfélben nem engedélyezett. A várt érték "kód".

Az azonosító jogkivonat kérését id_token a response_type cikk későbbi részében, a Bejelentkezési kérelem elküldése című cikk ismerteti.

Az OpenID konfigurációs dokumentum lekérése

Az openID-szolgáltatók, például a Microsoft Identitásplatform, nyilvánosan elérhető végponton biztosítják az OpenID-szolgáltató konfigurációs dokumentumát, amely tartalmazza a szolgáltató OIDC-végpontjait, a támogatott jogcímeket és egyéb metaadatokat. Az ügyfélalkalmazások a metaadatok segítségével felderíthetik 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 hitelesítési URL-címek, a szolgáltató nyilvános aláírókulcsai és egyéb szolgáltatás metaadatainak felderítésére használnak. Ha egy hitelesítési kódtárat használ az alkalmazásban, valószínűleg nem kell kézzel kódolnia az OpenID konfigurációs dokumentum végpontjának kéréseit és válaszait.

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

A Microsoft Entra ID-ban minden alkalmazásregisztráció nyilvánosan elérhető végpontot biztosít, 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

Az érték {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 a felhőpéldányonként is eltérő.

Érték Leírás
common A Személyes Microsoft-fiókkal és a Microsoft Entra-azonosítóból származó munkahelyi vagy iskolai fiókkal rendelkező felhasználók bejelentkezhetnek az alkalmazásba.
organizations Csak a Microsoft Entra-azonosítóból munkahelyi vagy iskolai fiókkal 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 Csak egy adott Microsoft Entra-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 alkalmazásba.

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

Tipp.

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

Ha meg szeretné keresni az OIDC konfigurációs dokumentumát a Microsoft Entra felügyeleti központban, jelentkezzen be a Microsoft Entra felügyeleti központba , majd:

  1. Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk>< a végpontokat.>>
  2. Keresse meg az URI-t az OpenID Csatlakozás metaadat-dokumentum alatt.

Mintakérés

A következő 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! Az alkalmazás szolgáltatójának OpenID-konfigurációs dokumentumának common megtekintéséhez nyissa meg a következőt https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration: .

Mintaválasz

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

{
  "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 /engedélyezés végpontjára. A kérés 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 response_type paraméterben.
  • Adja meg a paramétert nonce .

Példa bejelentkezési kérelemre (a sortörések csak olvashatóság érdekében szerepelnek):

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&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ék használatával {tenant} szabályozhatja, hogy ki jelentkezhet be az alkalmazásba. Az engedélyezett értékek a common, organizationsés consumersa bérlőazonosítók. További információkért tekintse meg a protokoll alapjait. 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 helyesen jelentkezzen be az erőforrás-bérlőbe.
client_id Kötelező Az alkalmazás (ügyfél) azonosítója, amelyet a Microsoft Entra felügyeleti központ – Alkalmazásregisztrációk alkalmazáshoz rendelt felhasználói felület.
response_type Kötelező Az OpenID Csatlakozás bejelentkezéshez szerepelnie id_token kell.
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-címkóddal kell rendelkeznie. 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 Csatlakozás esetében tartalmaznia kell a hatókörtopenid, amely a bejelentkezési engedélyre lefordítja a hozzájárulás felhasználói felületén. Ebben a kérelemben más hatókörök is szerepelhetnek 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 jogkivonatok visszajátszási támadásainak csökkentése érdekében az alkalmazásnak ellenőriznie kell, hogy az nonce azonosító jogkivonatában szereplő érték ugyanaz-e, mint amelyet a jogkivonat kérésekor küldött. 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 javasoljuk, hogy a response_mode=form_postjogkivonatok biztonságos átvitelét biztosítsa az alkalmazásnak.
state Ajánlott A kérésben szereplő érték, amelyet a rendszer a jogkivonat válaszában is visszaad. Bármilyen tartalom sztringje lehet. A véletlenszerűen létrehozott 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 felhasználó lapjának vagy nézetének megtekintéséhez.
prompt Választható A szükséges felhasználói beavatkozás típusát jelzi. Az egyetlen érvényes érték jelenleg a login, none, consentés select_account. A prompt=login jogcím arra kényszeríti a felhasználót, hogy adja meg a hitelesítő adatait a kéréshez, ami nem teszi lehetővé az egyszeri bejelentkezést. A prompt=none paraméter az ellenkezője, és párosítani kell egy login_hint olyannal, amely jelzi, hogy melyik felhasználót kell bejelentkezni. Ezek a paraméterek biztosítják, hogy a felhasználó egyáltalán ne jelenjen meg interaktív kéréssel. Ha a kérés nem hajtható végre csendben 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 nincs megadva tipp. A prompt=consent jogcím aktiválja az OAuth hozzájárulási 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 egy fiókválasztót jelenít meg a felhasználónak, amely letiltja a csendes egyszeri bejelentkezést, de lehetővé teszi a felhasználó számára, hogy a hitelesítő adatok megadása nélkül válassza ki, hogy melyik fiókkal kíván bejelentkezni. Nem használhatja mindkettőt login_hint és select_account.
login_hint Választható Ezzel a paramétersel előre kitöltheti a felhasználó bejelentkezési oldalának felhasználónevét és e-mail-címé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 azt az e-mail-alapú felderítési folyamatot, amelyen a felhasználó végighalad a bejelentkezési oldalon, kissé egyszerűbb felhasználói élmény érdekében. Az olyan bérlők esetében, amelyek egy helyszíni címtáron, például az AD FS-en keresztül vannak összevonva, ez gyakran zökkenőmentes bejelentkezést eredményez a meglévő bejelentkezési munkamenet miatt.

Ekkor a rendszer ké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 kéri a felhasználót, hogy járuljon hozzá a szükséges engedélyekhez. További információ az engedélyekről, a hozzájárulásokról és a több-bérlős alkalmazásokról.

Miután a felhasználó hitelesített és hozzájárulást adott, a Microsoft Identitásplatform a paraméterben response_mode megadott módszerrel választ ad vissza az alkalmazásnak a 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 tekintse meg az azonosító jogkivonat 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álaszokat az átirányítási URI-nak is elküldheti, 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ód-sztring, 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 a Microsoft Entra-azonosítóban, vagy nem kerül a felhasználó Microsoft Entra-bérlőjére. Az alkalmazás megkérheti a felhasználót, hogy telepítse az alkalmazást, és adja hozzá a Microsoft Entra-azonosítóhoz.
access_denied Az erőforrás tulajdonosa megtagadta a hozzájárulást. Az ügyfélalkalmazás értesítheti a felhasználót, 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 átmeneti feltételekből adódhatnak. 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, a Microsoft Entra-azonosító nem találja, vagy helytelenül van konfigurálva. Ez a hiba azt jelzi, hogy az erőforrás , ha létezik, nem lett konfigurálva a bérlőben. Az alkalmazás kérheti a felhasználót az alkalmazás telepítésére és a Microsoft Entra-azonosítóhoz való hozzáadására vonatkozó utasítások megadására.

Az azonosító jogkivonat érvényesíté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 a jogcímeit az alkalmazás igényeinek megfelelően. Az összes OpenID-szolgáltatóhoz hasonlóan a Microsoft Identitásplatform azonosító jogkivonatai a nyilvános kulcsú titkosítással 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 hozzáférést kapnak 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 az egyoldalas alkalmazások (SLA-k) például ritkán részesülnek az azonosító jogkivonatok érvényesítésében, mert 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.

A jogkivonat-érvényesítési megkerülésre két példa:

  • 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 ne tegye ezt manuálisan. 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 érvényesíteni 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 című cikkben leírtak szerint. Lásd még a kulcsátállítás aláírásával kapcsolatos fontos információkat.

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, megkezdhet egy 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

Sok alkalmazásnak nem csak 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 Csatlakozás kombinálásával egy azonosító jogkivonatot kér le 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-Csatlakozás bejelentkezési és jogkivonat-beszerzési folyamat az alábbi diagramhoz hasonlóan néz ki:

OpenID Connect protocol: Token acquisition

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

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

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 alábbiak szerint:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=535fb089-9ff3-47b6-9bfb-4f1264799865        // 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 következő 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 beolvasásukhoz 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árati ideje 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 egyéb 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ó jogkivonatok 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és és a válasz állapotértékei azonosak-e.

Figyelmeztetés

Ne kísérelje meg a jogkivonatok érvényesítését vagy olvasását a kódban a nem birtokolt API-k esetében, 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 érvényesíthető 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ételezze a nem ön által vezérelt API-khoz tartozó jogkivonatokat.

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ód-sztring, 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.

A lehetséges hibakódok és az ajánlott ügyfélválaszok leírásáért tekintse meg az engedélyezési végpont hibáinak hibakódjait.

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ó bejelentkezéséhez érvényesítenie kell az azonosító jogkivonatot az érvényesítési jogkivonatokban leírtak szerint. 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 , és tekintse át, hogyan hívhatja meg a UserInfo végpontot ezzel a jogkivonattal.

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

Felhasználó kijelentkezé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 bejelentkezési 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 hajtja végre, 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 Csatlakozás konfigurációs dokumentumban látható módon. A end_session_endpoint HTTP GET és a 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 Leírás
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 kijelentkezést anélkül, hogy a felhasználót a fiók kiválasztására kéri. A használathoz logout_hintengedélyezze az login_hintopcionális jogcímet az ügyfélalkalmazásban, és használja az login_hint opcionális 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.

Feljegyzé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ó számára, é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óval kapcsolatos kérdésben. Ha a kiválasztott beállítás a PRT-ra hivatkozó csatlakoztatott fiók, a bejelentkezés automatikusan folytatódik, és nem kell új hitelesítő adatokat beszúrnia.

Egyszeri kijelentkezés

Amikor átirányítja a felhasználót a end_session_endpointfelhasználóhoz, 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 bejelentkezik más alkalmazásokba, amelyek a Microsoft-fiókokat használják hitelesítésre. Annak érdekében, hogy ezek az alkalmazások 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, amelyre a felhasználó jelenleg bejelentkezett. Az alkalmazásoknak válaszolniuk kell erre a kérésre a felhasználót azonosító munkamenet törlésével és a 200 válasz visszaadásával. Ha támogatni szeretné az egyszeri kijelentkezéseket az alkalmazásban, ezt az alkalmazás kódjában kell implementálnia LogoutUrl . Ezt az LogoutUrl alkalmazásregisztrációs portálon állíthatja be.

Következő lépések