OpenID Connect na platformě Microsoft Identity Platform
OpenID Connect (OIDC) rozšiřuje autorizační protokol OAuth 2.0 pro použití jako jiný ověřovací protokol. Pomocí OIDC můžete povolit jednotné přihlašování (SSO) mezi aplikacemi s podporou OAuth pomocí tokenu zabezpečení označovaného jako token ID.
Úplná specifikace pro OIDC je k dispozici na webu OpenID Foundation ve specifikaci OpenID Connect Core 1.0.
Tok protokolu: Přihlášení
Následující diagram znázorňuje základní tok přihlášení OpenID Connect. Kroky v toku jsou podrobněji popsány v dalších částech článku.
Povolení tokenů ID
Token ID zavedený službou OpenID Connect je vystaven autorizačním serverem, platformou Microsoft Identity Platform, když klientská aplikace požaduje jeden během ověřování uživatele. Token ID umožňuje klientské aplikaci ověřit identitu uživatele a získat o nich další informace (deklarace identity).
Tokeny ID se ve výchozím nastavení nevystavují pro aplikaci zaregistrovanou na platformě Microsoft Identity Platform. Tokeny ID pro aplikaci jsou povoleny pomocí jedné z následujících metod:
- Přihlaste se do Centra pro správu Microsoft Entra.
- Přejděte na Identity>Applications> Registrace aplikací>< užte ověřování aplikací.>>
- V části Konfigurace platformy vyberte Přidat platformu.
- V podokně, které se otevře, vyberte příslušnou platformu pro vaši aplikaci. Vyberte například web pro webovou aplikaci.
- V části Identifikátory URI přesměrování přidejte identifikátor URI přesměrování vaší aplikace. Například
https://localhost:8080/
. - V části Implicitní udělení a hybridní toky zaškrtněte políčko Tokeny ID (používané pro implicitní a hybridní toky).
Nebo:
- Vyberte Aplikace> identit>Registrace aplikací>< volte manifest aplikace.>>
- Nastavte
oauth2AllowIdTokenImplicitFlow
vtrue
manifestu aplikace registrace aplikace.
Pokud pro vaši aplikaci nejsou povolené tokeny ID a požaduje se jeden, vrátí unsupported_response
platforma Microsoft Identity Platform chybu podobnou této:
Zadaná hodnota vstupního parametru response_type není pro tohoto klienta povolená. Očekávaná hodnota je code.
Žádost o token ID zadáním znaku response_type
je id_token
vysvětlena v části Odeslat žádost o přihlášení později v článku.
Načtení konfiguračního dokumentu OpenID
Zprostředkovatelé OpenID, jako je platforma Microsoft Identity Platform, poskytují konfigurační dokument zprostředkovatele OpenID v veřejně přístupném koncovém bodu obsahujícím koncové body OIDC poskytovatele, podporované deklarace identity a další metadata. Klientské aplikace můžou pomocí metadat zjistit adresy URL, které se mají použít pro ověřování a veřejné podpisové klíče ověřovací služby.
Knihovny ověřování jsou nejběžnějšími uživateli konfiguračního dokumentu OpenID, který používají ke zjišťování ověřovacích adres URL, veřejných podpisových klíčů poskytovatele a dalších metadat služby. Pokud se ve vaší aplikaci používá ověřovací knihovna, pravděpodobně nebudete muset předávat žádosti o kód a odpovědi z koncového bodu dokumentu konfigurace OpenID.
Vyhledání identifikátoru URI konfiguračního dokumentu OpenID vaší aplikace
Každá registrace aplikace v Microsoft Entra ID je poskytována veřejně přístupný koncový bod, který obsluhuje konfigurační dokument OpenID. Pokud chcete zjistit identifikátor URI koncového bodu konfiguračního dokumentu pro vaši aplikaci, připojte k adrese URL autority vaší aplikace známou cestu konfigurace OpenID.
- Známá cesta k dokumentu konfigurace:
/.well-known/openid-configuration
- Adresa URL autority:
https://login.microsoftonline.com/{tenant}/v2.0
Hodnota {tenant}
se liší v závislosti na cílové skupině přihlašování aplikace, jak je znázorněno v následující tabulce. Adresa URL autority se také liší podle cloudové instance.
Hodnota | Popis |
---|---|
common |
Uživatelé s osobním účtem Microsoft i pracovním nebo školním účtem z ID Microsoft Entra se můžou přihlásit k aplikaci. |
organizations |
K aplikaci se můžou přihlásit jenom uživatelé s pracovním nebo školním účtem z ID Microsoft Entra. |
consumers |
K aplikaci se můžou přihlásit jenom uživatelé s osobním účtem Microsoft. |
Directory (tenant) ID nebo contoso.onmicrosoft.com |
K aplikaci se můžou přihlásit jenom uživatelé z konkrétního tenanta Microsoft Entra (členové adresáře s pracovním nebo školním účtem nebo hosty adresáře s osobním účtem Microsoft). Hodnota může být název domény tenanta Microsoft Entra nebo ID tenanta ve formátu GUID. |
Tip
Mějte na paměti, že při používání common
osobních účtů Microsoft nebo consumers
autority musí být aplikace využívající prostředky nakonfigurovaná tak, aby podporovala takový typ účtů v souladu s signInAudience.
Pokud chcete najít konfigurační dokument OIDC v Centru pro správu Microsoft Entra, přihlaste se do Centra pro správu Microsoft Entra a pak:
- Přejděte k aplikacím> identit>Registrace aplikací>< užte koncové body aplikací.>>
- Vyhledejte identifikátor URI v dokumentu metadat OpenID Connect.
Ukázkový požadavek
Následující požadavek získá metadata konfigurace OpenID z common
koncového bodu dokumentu konfigurace OpenID autority ve veřejném cloudu Azure:
GET /common/v2.0/.well-known/openid-configuration
Host: login.microsoftonline.com
Tip
Vyzkoušejte si to! Pokud chcete zobrazit konfigurační dokument OpenID pro autoritu common
aplikace, přejděte na https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration.
Ukázková odpověď
Metadata konfigurace se vrátí ve formátu JSON, jak je znázorněno v následujícím příkladu (zkráceno pro stručnost). Metadata vrácená v odpovědi JSON jsou podrobně popsána ve specifikaci zjišťování OpenID Connect 1.0.
{
"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"
],
...
}
Odeslání žádosti o přihlášení
Pokud chcete ověřit uživatele a požádat o token ID pro použití ve vaší aplikaci, nasměrujte jeho uživatelského agenta na koncový bod /authorize platformy Microsoft Identity Platform. Požadavek se podobá první části toku autorizačního kódu OAuth 2.0, ale s těmito rozdíly:
openid
Do parametru zahrňtescope
obor.- Zadejte
id_token
v parametruresponse_type
. - Zahrňte
nonce
parametr.
Příklad žádosti o přihlášení (konce řádků zahrnuté jenom pro čitelnost):
GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=678910
Parametr | Podmínka | Popis |
---|---|---|
tenant |
Povinní účastníci | Hodnotu v cestě požadavku můžete použít {tenant} k řízení, kdo se může přihlásit k aplikaci. Povolené hodnoty jsou common , organizations , consumers a identifikátory tenanta. Další informace najdete v tématu Základy protokolu. Pro scénáře hosta, ve kterých podepíšete uživatele z jednoho tenanta do jiného tenanta, musíte zadat identifikátor tenanta, aby se správně přihlásil k tenantovi prostředku. |
client_id |
Požaduje se | ID aplikace (klienta), které centrum pro správu Microsoft Entra – Registrace aplikací prostředí přiřazené k vaší aplikaci. |
response_type |
Požaduje se | Musí obsahovat id_token přihlášení openID Connect. |
redirect_uri |
Doporučené | Identifikátor URI přesměrování vaší aplikace, kde můžou aplikace odesílat a přijímat odpovědi na ověřování. Musí přesně odpovídat jednomu z identifikátorů URI přesměrování, které jste zaregistrovali na portálu, s tím rozdílem, že musí být kódovaný adresou URL. Pokud není k dispozici, koncový bod náhodně vybere jeden zaregistrovaný redirect_uri , aby se uživatel vrátil zpět. |
scope |
Požaduje se | Seznam oborů oddělených mezerami. Pro OpenID Connect musí obsahovat obor openid , který se přeloží na oprávnění Přihlásit se v uživatelském rozhraní pro vyjádření souhlasu. Do této žádosti o souhlas můžete zahrnout i další obory. |
nonce |
Požaduje se | Hodnota vygenerovaná a odeslaná vaší aplikací v žádosti o token ID. Stejná nonce hodnota je součástí tokenu ID vráceného do vaší aplikace platformou Microsoft Identity Platform. Pokud chcete zmírnit útoky na přehrání tokenu, měla by vaše aplikace ověřit nonce , že hodnota v tokenu ID je stejná jako při vyžádání tokenu. Hodnota je obvykle jedinečný náhodný řetězec. |
response_mode |
Doporučené | Určuje metodu, která se má použít k odeslání výsledného autorizačního kódu zpět do vaší aplikace. Může být form_post nebo fragment . U webových aplikací doporučujeme používat response_mode=form_post , abyste zajistili nejbezpečnější přenos tokenů do vaší aplikace. |
state |
Doporučené | Hodnota zahrnutá v požadavku, která se také vrátí v odpovědi tokenu. Může to být řetězec libovolného obsahu. Náhodně vygenerovaná jedinečná hodnota se obvykle používá k zabránění útokům na padělání požadavků mezi weby. Stav se také používá ke kódování informací o stavu uživatele v aplikaci před tím, než došlo k žádosti o ověření, jako je stránka nebo zobrazení, na které byl uživatel. |
prompt |
Volitelné | Určuje typ interakce uživatele, který je povinný. Jediné platné hodnoty v tuto chvíli jsou login , none , consent a select_account . Deklarace prompt=login identity vynutí, aby uživatel zadal své přihlašovací údaje k této žádosti, což neguje jednotné přihlašování. Parametr prompt=none je opačný a měl by být spárován s uvedením login_hint , který uživatel musí být přihlášen. Tyto parametry zajišťují, že se uživateli vůbec nezobrazí žádná interaktivní výzva. Pokud požadavek nejde dokončit bezobslužně prostřednictvím jednotného přihlašování, platforma Microsoft Identity Platform vrátí chybu. Příčiny zahrnují žádného přihlášeného uživatele, uživatele s nápovědou není přihlášený nebo se přihlásilo více uživatelů, ale nebyla k dispozici žádná nápověda. Deklarace prompt=consent identity aktivuje dialogové okno souhlasu OAuth po přihlášení uživatele. Dialogové okno požádá uživatele, aby aplikaci udělil oprávnění. Nakonec uživateli zobrazí selektor účtu, který neguje jednotné odhlášení, ale umožní uživateli vybrat účet, select_account se kterým se má přihlásit, aniž by vyžadoval zadání přihlašovacích údajů. Nemůžete použít obojí login_hint a select_account . |
login_hint |
Volitelné | Tento parametr můžete použít k předběžnému vyplnění pole uživatelské jméno a e-mailová adresa přihlašovací stránky pro uživatele, pokud uživatelské jméno znáte předem. Aplikace tento parametr často používají během opětovného ověření po extrahování login_hint volitelné deklarace identity z dřívějšího přihlášení. |
domain_hint |
Volitelné | Sféra uživatele v federovaného adresáři. Tím se přeskočí proces zjišťování na základě e-mailu, kterým uživatel prochází na přihlašovací stránce, aby byl o něco efektivnější uživatelské prostředí. U tenantů federovaných prostřednictvím místního adresáře, jako je služba AD FS, to často vede k bezproblémovému přihlášení kvůli existující relaci přihlášení. |
V tomto okamžiku se uživateli zobrazí výzva k zadání přihlašovacích údajů a dokončení ověřování. Platforma Microsoft Identity Platform ověřuje, že uživatel souhlasil s oprávněními uvedenými v parametru scope
dotazu. Pokud uživatel s žádným z těchto oprávnění nesouhlasí, platforma Microsoft Identity Platform vyzve uživatele k vyjádření souhlasu s požadovanými oprávněními. Další informace o oprávněních, souhlasu a víceklientských aplikacích si můžete přečíst.
Jakmile se uživatel ověří a udělí souhlas, platforma Microsoft Identity Platform vrátí odpověď na vaši aplikaci na zadaném identifikátoru URI přesměrování pomocí metody zadané v parametru response_mode
.
Úspěšná odpověď
Úspěšná odpověď při použití response_mode=form_post
je podobná:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
Chybná odpověď
Do identifikátoru URI přesměrování můžou být odeslány také chybové odpovědi, aby je aplikace mohla zpracovat, například:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
error=access_denied&error_description=the+user+canceled+the+authentication
Parametr | Popis |
---|---|
error |
Řetězec kódu chyby, který můžete použít ke klasifikaci typů chyb, ke kterým dochází, a k reakci na chyby. |
error_description |
Konkrétní chybová zpráva, která vám může pomoct identifikovat původní příčinu chyby ověřování. |
Kódy chyb pro chyby koncového bodu autorizace
Následující tabulka popisuje kódy chyb, které lze vrátit v error
parametru odpovědi na chybu:
Kód chyby | Popis | Akce klienta |
---|---|---|
invalid_request |
Chyba protokolu, jako je chybějící povinný parametr. | Opravte požadavek a odešlete ho znovu. Tato chyba vývoje by se měla zachytit během testování aplikace. |
unauthorized_client |
Klientská aplikace nemůže požádat o autorizační kód. | K této chybě může dojít, když klientská aplikace není zaregistrovaná v Microsoft Entra ID nebo není přidána do tenanta Microsoft Entra uživatele. Aplikace může uživatele vyzvat s pokyny k instalaci aplikace a přidat ji do Microsoft Entra ID. |
access_denied |
Vlastník prostředku zamítl souhlas. | Klientská aplikace může uživatele upozornit, že nemůže pokračovat, pokud uživatel souhlasí. |
unsupported_response_type |
Autorizační server nepodporuje typ odpovědi v požadavku. | Opravte požadavek a odešlete ho znovu. Tato chyba vývoje by se měla zachytit během testování aplikace. |
server_error |
Server zjistil neočekávanou chybu. | Zkuste požadavek zopakovat. Tyto chyby můžou mít za následek dočasné podmínky. Klientská aplikace může uživateli vysvětlit, že jeho odpověď je zpožděná kvůli dočasné chybě. |
temporarily_unavailable |
Server je dočasně příliš zaneprázdněný pro zpracování požadavku. | Zkuste požadavek zopakovat. Klientská aplikace může uživateli vysvětlit, že jeho odpověď je zpožděná kvůli dočasné podmínce. |
invalid_resource |
Cílový prostředek je neplatný, protože neexistuje, ID Microsoft Entra ho nemůže najít nebo je nesprávně nakonfigurované. | Tato chyba značí, že prostředek, pokud existuje, nebyl v tenantovi nakonfigurovaný. Aplikace může uživatele vyzvat k instalaci aplikace a jejímu přidání do Microsoft Entra ID. |
Ověření tokenu ID
Přijetí tokenu ID ve vaší aplikaci nemusí vždy stačit k úplnému ověření uživatele. Možná budete také muset ověřit podpis tokenu ID a ověřit jeho deklarace identity podle požadavků vaší aplikace. Stejně jako všichni zprostředkovatelé OpenID jsou tokeny ID platformy Microsoft Identity Platform podepsané pomocí kryptografie veřejného klíče pomocí webových tokenů JSON (JWT).
Webové aplikace a webová rozhraní API, která k autorizaci používají tokeny ID, je nutné je ověřit, protože tyto aplikace získají přístup k datům. Jiné typy aplikací ale nemusí mít prospěch z ověření tokenu ID. Nativní a jednostránkové aplikace (SPA), například zřídka využívají ověřování tokenů ID, protože jakákoli entita s fyzickým přístupem k zařízení nebo prohlížeči může ověření obejít.
Existují dva příklady obejití ověřování tokenů:
- Poskytnutí falešných tokenů nebo klíčů úpravou síťového provozu do zařízení
- Ladění aplikace a krokování logiky ověřování během provádění programu.
Pokud ve své aplikaci ověříte tokeny ID, doporučujeme to neprovádí ručně. Místo toho použijte knihovnu pro ověřování tokenů k analýze a ověření tokenů. Knihovny ověřování tokenů jsou k dispozici pro většinu vývojových jazyků, architektur a platforem.
Co ověřit v tokenu ID
Kromě ověřování podpisu tokenu ID byste měli ověřit několik jeho deklarací identity, jak je popsáno v části Ověřování tokenu ID. Přečtěte si také důležité informace o vrácení podpisového klíče.
Několik dalších ověření je běžné a liší se podle scénáře aplikace, mezi které patří:
- Zajištění registrace uživatele nebo organizace k aplikaci
- Zajištění, že má uživatel správnou autorizaci nebo oprávnění
- Zajištění určité síly ověřování, například vícefaktorového ověřování.
Po ověření tokenu ID můžete zahájit relaci s uživatelem a použít informace v deklarací identity tokenu pro přizpůsobení, zobrazení nebo ukládání jejich dat.
Diagram protokolu: Získání přístupového tokenu
Mnoho aplikací se musí přihlásit nejen k uživateli, ale také přistupovat k chráněnému prostředku, jako je webové rozhraní API jménem uživatele. Tento scénář kombinuje OpenID Connect k získání tokenu ID pro ověřování uživatele a OAuth 2.0 a získání přístupového tokenu pro chráněný prostředek.
Úplný tok přihlášení a získání tokenu OpenID Connect vypadá podobně jako v tomto diagramu:
Získání přístupového tokenu pro koncový bod UserInfo
Kromě tokenu ID se informace ověřeného uživatele zpřístupní také v koncovém bodu OIDC UserInfo.
Pokud chcete získat přístupový token pro koncový bod UserInfo OIDC, upravte žádost o přihlášení, jak je popsáno tady:
// Line breaks are for legibility only.
GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444 // 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
Místo získání přístupového tokenu pro vaši aplikaci můžete použít tok autorizačního kódu, tok kódu zařízení nebo obnovovací tokenresponse_type=token
.
Úspěšná odpověď tokenu
Úspěšná odpověď od použití 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
Parametry odpovědi znamenají stejnou věc bez ohledu na tok použitý k jejich získání.
Parametr | Popis |
---|---|
access_token |
Token, který se používá k volání koncového bodu UserInfo. |
token_type |
Vždy "nosný" |
expires_in |
Jak dlouho vyprší platnost přístupového tokenu v sekundách. |
scope |
Oprávnění udělená pro přístupový token. Protože koncový bod UserInfo je hostovaný v Microsoft Graphu, je možné scope , že aplikaci dříve udělili jiní uživatelé (například User.Read ). |
id_token |
Token ID, který aplikace požadovala. Token ID můžete použít k ověření identity uživatele a zahájení relace s uživatelem. Další podrobnosti o tokenech ID a jejich obsahu najdete v referenčních informacích o tokenech ID. |
state |
Pokud je v požadavku zahrnutý parametr stavu, měla by se v odpovědi zobrazit stejná hodnota. Aplikace by měla ověřit, že hodnoty stavu v požadavku a odpovědi jsou identické. |
Upozorňující
Nepokoušejte se ověřovat ani číst tokeny pro žádné rozhraní API, které nevlastníte, včetně tokenů v tomto příkladu, ve vašem kódu. Tokeny pro služby Microsoft můžou používat speciální formát, který se neověří jako JWT a může být také zašifrovaný pro uživatele s uživatelským účtem (účtem Microsoft). Přestože je čtení tokenů užitečným nástrojem pro ladění a učení, nepřebídejte závislosti na tomto kódu ani nepředpokládejte konkrétní údaje o tokenech, které nejsou určené pro rozhraní API, které řídíte.
Chybná odpověď
Do identifikátoru URI přesměrování můžou být odeslány také chybové odpovědi, aby je aplikace mohla správně zpracovat:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
error=access_denied&error_description=the+user+canceled+the+authentication
Parametr | Popis |
---|---|
error |
Řetězec kódu chyby, který můžete použít ke klasifikaci typů chyb, ke kterým dochází, a k reakci na chyby. |
error_description |
Konkrétní chybová zpráva, která vám může pomoct identifikovat původní příčinu chyby ověřování. |
Popis možných kódů chyb a doporučených odpovědí klientů najdete v tématu Kódy chyb pro chyby koncového bodu autorizace.
Pokud máte autorizační kód a token ID, můžete uživatele přihlásit a získat přístupové tokeny jeho jménem. Pokud chcete uživatele přihlásit, musíte token ID ověřit, jak je popsáno v ověřovacích tokenech. Přístupové tokeny získáte podle kroků popsaných v dokumentaci k toku kódu OAuth.
Volání koncového bodu UserInfo
Projděte si dokumentaci UserInfo a podívejte se, jak pomocí tohoto tokenu volat koncový bod UserInfo.
Odeslání žádosti o odhlášení
Pokud se chcete odhlásit uživatele, proveďte obě následující operace:
- Přesměrujte uživatelského agenta uživatele na identifikátor URI odhlášení platformy Microsoft Identity Platform.
- Vymažte soubory cookie aplikace nebo relaci koncového uživatele ve vaší aplikaci.
Pokud se vám nepodaří provést některou z těchto operací, uživatel může zůstat ověřený a nebude vyzván k přihlášení při příštím použití vaší aplikace.
Přesměrujte uživatelského agenta na konfigurační end_session_endpoint
dokument OpenID Connect, jak je znázorněno v konfiguračním dokumentu OpenID Connect. Podporuje end_session_endpoint
požadavky HTTP GET i POST.
GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Parametr | Podmínka | Popis |
---|---|---|
post_logout_redirect_uri |
Doporučené | Adresa URL, na kterou se uživatel přesměruje po úspěšném odhlášení. Pokud parametr není zahrnutý, zobrazí se uživateli obecná zpráva vygenerovaná platformou Microsoft Identity Platform. Tato adresa URL musí odpovídat jednomu z identifikátorů URI přesměrování zaregistrovaných pro vaši aplikaci na portálu pro registraci aplikací. |
logout_hint |
Volitelné | Umožňuje odhlásit se, aniž by se uživateli zobrazila výzva k výběru účtu. Pokud chcete použít logout_hint , povolte volitelnou login_hint deklaraci identity v klientské aplikaci a jako parametr použijte hodnotu login_hint volitelné deklarace identity logout_hint . Jako hodnotu parametru logout_hint nepoužívejte hlavní názvy uživatele (UPN) ani telefonní čísla. |
Poznámka:
Po úspěšném odhlášení se aktivní relace nastaví na neaktivní. Pokud pro přihlášeného uživatele existuje platný primární obnovovací token (PRT) a spustí se nové přihlášení, jednotné odhlášení se přeruší a uživatel zobrazí výzvu s výběrem účtu. Pokud je vybraná možnost připojený účet, který odkazuje na žádost o přijetí změn, přihlášení bude pokračovat automaticky bez nutnosti vkládat nové přihlašovací údaje.
Jednotné odhlašování
Když uživatele přesměrujete do end_session_endpoint
aplikace, platforma Microsoft Identity Platform ukončí relaci uživatele pro tuto aplikaci. Uživatel se ale může stále přihlásit k jiným aplikacím, které k ověřování používají stejné účty Microsoft.
Když se uživatel přihlásí k více webovým aplikacím nebo aplikacím SPA zaregistrovaným v tomto adresáři (označované také jako tenant), jednotné odhlášení tohoto uživatele umožňuje okamžité odhlášení ze všech aplikací tím, že se přihlásí do některé z aplikací.
Pokud chcete pro aplikaci Entra povolit jednotné odhlášení, měli byste použít funkci odhlášení z front kanálu OpenID Connect. Tato funkce umožňuje aplikaci oznámit ostatním aplikacím, že se uživatel odhlásil. Když se uživatel odhlásí z jedné aplikace, platforma Microsoft Identity Platform odešle požadavek HTTP GET na adresu URL odhlášení front-channel každé aplikace, ke které je uživatel aktuálně přihlášen.
Tyto aplikace musí na tento požadavek reagovat provedením následujících dvou akcí, aby bylo jednotné odhlášení úspěšné:
- Vymažte všechny relace, které uživatele identifikují.
- Aplikace musí na tento požadavek reagovat vymazáním jakékoli relace, která identifikuje uživatele a vrací
200
odpověď.
Co je adresa URL odhlášení z front kanálu?
Adresa URL odhlášení z front kanálu je místo, kde vaše webová nebo SPA aplikace obdrží žádost o odhlášení ze serveru ověřování Entra a provádí funkci jednotného odhlášení. Každá aplikace má jednu adresu URL odhlášení z front kanálu.
Kdy byste měli nastavit adresu URL odhlášení z front kanálu?
Pokud vy nebo váš vývojář určili, že pro aplikaci se vyžaduje jednotné odhlášení, musíte nastavit adresu URL odhlášení z front kanálu pro registraci aplikace této aplikace. Jakmile je adresa URL odhlášení z front kanálu nastavená pro registraci aplikace této aplikace, platforma Microsoft Identity Platform odešle požadavek HTTP GET na adresu URL odhlášení front-channel této aplikace, když se přihlášený uživatel odhlásil z jiné aplikace.
Jak nastavit jednotné odhlášení pomocí funkce odhlášení z front kanálu
Pokud chcete použít funkci odhlášení z front kanálu pro sadu aplikací, musíte provést následující dvě úlohy:
- Nastavte adresu URL odhlášení front kanálu v Centru pro správu Microsoft Entra pro všechny aplikace, které by se měly odhlásit současně. Každá aplikace má obvykle vlastní vyhrazenou adresu URL odhlášení front kanálu.
- Upravte kód aplikace tak, aby naslouchali požadavku HTTP GET odeslanému platformou Microsoft Identity Platform na adresu URL odhlášení front kanálu a odpověděli na tento požadavek vymazáním jakékoli relace, která identifikuje uživatele a vrací odpověď 200.
Jak zvolit adresu URL odhlášení z front kanálu
Adresa URL odhlášení z front kanálu by měla být adresa URL, která dokáže přijímat požadavky HTTP GET a odpovídat na ně a měla by být schopná vymazat všechny relace, které uživatele identifikují. Příklady adresy URL odhlášení z front kanálu můžou být, ale nejsou omezené na následující:
Další kroky
- Projděte si dokumentaci ke koncovému bodu UserInfo.
- Naplňte hodnoty deklarací identity v tokenu daty z místních systémů.
- Do tokenů zahrňte vlastní deklarace identity.