Jednotné odhlašování
Aktualizováno: 19. června 2015
Platí pro: Azure
Microsoft Azure Active Directory Access Control (označované také jako služba Access Control nebo služba ACS) teď obsahuje volitelnou funkci jednotného přihlašování, která doplňuje jednotné přihlašování. Výsledkem je kompletní a konzistentní přihlašování a odhlášení pro uživatele webových aplikací integrovaných se službou ACS.
Když se koncový uživatel odhlásí z aplikace předávající strany, která podporuje jednotné přihlašování, může služba ACS automaticky odhlásit uživatele z webu zprostředkovatele identity a odhlásit je ze všech ostatních aplikací, ke kterým se přihlásil pomocí tohoto zprostředkovatele identity. Podobně pokud se zákazník odhlásí z webu zprostředkovatele identity, může služba ACS automaticky odhlásit zákazníka z aplikací, ke kterým se přihlásil pomocí zprostředkovatele identity.
Toto téma vysvětluje, jak funguje jednotné odhlášení a jak implementovat jednotné odhlášení pro aplikaci předávající strany. Nezapomeňte si projít vzorový kód pro implementaci federovaného jednotného přihlašování do aplikace ASP.NET MVC 4 v ukázce kódu: ASP.NET MVC 4 s federovaným odhlášenímt.
Požadavky na systém
K implementaci jednotného odhlášení se vyžadují následující nástroje a služby.
Předplatné Azure
Visual Studio 2012
Informace o jednom Sign-Out
V každé relaci prohlížeče může zákazník vybrat zprostředkovatele federované identity, který se přihlásí k aplikaci předávající strany. Když se uživatel odhlásí od zprostředkovatele identity nebo aplikace předávající strany, zákazník se automaticky odhlásí ze všech aplikací předávající strany, ke kterým se přihlásil pomocí stejného zprostředkovatele identity.
Zákazník například používá účet Microsoft (Windows Live ID) k přihlášení ke třem aplikacím předávající strany integrované službou ACS. Když se zákazník odhlásí z některé z aplikací, automaticky se odhlásí ze svého účtu Microsoft a odhlásí se z ostatních dvou aplikací.
Úplná podpora jednotného přihlašování je dostupná pro vlastní WS-Federation a zprostředkovatele identit ADFS. Podpora omezeného jednotného odhlášení je dostupná pro Facebook, Google, účet Microsoft a Yahoo! zprostředkovatelů identity. Tito zprostředkovatelé identit nemohou zahájit jednotné odhlášení. Pokud ale aplikace předávající strany zahájí jednotné přihlašování, odhlásí se zákazník z těchto zprostředkovatelů identity a přidružené aplikace předávající strany, ke kterým se přihlásili pomocí tohoto zprostředkovatele identity.
Jak funguje jedno Sign-Out
Jednotné odhlášení může iniciovat zprostředkovatel identity nebo aplikace předávající strany. V této části si projdeme všechny tyto procesy odhlášení a vysvětlíme, jak můžete povolit jednotné odhlášení pro vaši aplikaci předávající strany.
Aplikace předávající strany inicializuje Sign-Out
Pokud chcete zahájit jednotné odhlášení, když se uživatel odhlásí z aplikace předávající strany, odešlete adresu URL s následujícími parametry do koncového bodu WS-Federation služby ACS.
wa: Nastavit na wsignout1.0
wreply: Nastavte hodnotu na adresu URL stránky odhlášení, tj. stránku, ve které se uživatel přesměruje po dokončení odhlášení. Tato hodnota by měla být součástí názvu domény RP, například "https://RP.com/"
wtrealm: Nastavte hodnotu vlastnosti sféry aplikace předávající strany na portálu pro správu služby ACS.
Následuje ukázková adresa URL pro jednotné odhlášení.
https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=<YourAppRealm>&wreply=<YourAppRealmLogoutPage>
Příklad:
https://Fabrikam.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=" https://www.fabrikam.com/" &wreply= https://www.fabrikam.com/logout
Ukázkový kód, který implementuje jednotné odhlášení iniciované předávající stranou, najdete v části Ukázka kódu: ASP.NET MVC 4 s federovaným odhlášením. Tato ukázka zahrnuje kód v LogoutController.cs, který získá wreply a wrealm hodnoty a vytvoří instanci SignOutRequestMessage třídy.
Když služba ACS obdrží adresu URL odhlášení, služba ACS ukončí relaci zákazníka s poskytovatelem identity odesláním žádosti wsignout1.0 . Potom služba ACS odešle zprávy wsignoutcleanup1.0 jiným aplikacím předávající strany, ke kterým se uživatel přihlásil pomocí zprostředkovatele identity.
Zprostředkovatel identity inicializuje Sign-Out
Odhlášení iniciované zprostředkovatelem identity se podporuje jenom pro vlastní WS-Federation a zprostředkovatele identit ADFS. Pro účet Microsoft (Windows Live ID), Google, Yahoo!a zprostředkovatelé identity Facebooku není možné podporovat, protože tito zprostředkovatelé identit neoznamují ACS ani aplikaci předávající strany, když se uživatel odhlásí.
Když se uživatel odhlásí zprostředkovatele identity WS-Federation nebo ADFS, odešle zprostředkovatel identity ACS zprávu žádosti o odhlášení wsignoutcleanup1.0 s následujícím formátem: https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignoutcleanup1.0
Když služba ACS obdrží zprávu wsignoutcleanup1.0, ověří, že požadavek pochází ze stejného koncového bodu jako žádost o přihlášení tím, že ověří odkazující v hlavičce protokolu HTTP zprávy: <Referrer>: https://CustomIDP
kde hodnota referreru> je hodnota <odkazujícího v přihlašovací adrese URL v souboru cookie ACSSignOut.
Potom služba ACS odešle zprávu wsignoutcleanup1.0 všem aplikacím předávající strany v relaci prohlížeče klienta aktuálního uživatele, která je přidružená k zprostředkovateli identity. Proces je podobný procesu, který je popsaný v části "Aplikace předávající strany inicializuje odhlášení". Zprostředkovatel identity může prohlížeč přesměrovat na odhlasující stránku, kterou řídí a dokončí proces odhlášení.
Proces jednotného odhlášení
Tato část popisuje jednotlivé kroky v procesu jednotného odhlášení. Vzhledem k tomu, že služba ACS zpracovává podrobnosti za vás, nemusíte tento proces pochopit. Může to ale být užitečné při přizpůsobení nebo ladění.
Jednoduchý Sign-Out krok za krokem
Když služba ACS obdrží žádost o odhlášení1.0 na svém koncovém bodu WS-Federation, služba ACS vyhledá zprostředkovatele identity iniciátoru žádosti o odhlášení v souboru cookie ACSSignOut.
Služba ACS používá k identifikaci zprostředkovatele identity následující odpovídající pravidla.
Pokud je parametr wtrealm zadaný v žádosti o odhlášení, služba ACS vyhledá hodnotu wtrealm v seznamu předávajících stran pro každého zprostředkovatele identity.
Pokud není zadán wtrealm a v souboru cookie ACSSignOut existuje pouze jedna položka zprostředkovatele identity, služba ACS používá zprostředkovatele identity v souboru cookie ACSSignOut.
V opačném případě služba ACS zobrazí chybovou stránku označující, že pokus o odhlášení selhal, protože chybí parametr wtrealm .
Služba ACS odešle zprostředkovateli identity zprávu signout1.0 tak, že předá stránku s vloženým rámcem (<iframe>). Služba ACS také přidá <elementy iframe> , které obsahují zprávu SignOutCleanup1.0 na stránky všech aktivních WS-Federation předávajících stran jiných než iniciační strana a ACS odebere předávající strany ze souboru cookie ACSSignOut .
Stránka, která zobrazuje stav odhlašování předávající strany, obsahuje také JavaScript, který běží po určitou dobu a pak přesměruje prohlížeč. Pokud byl parametr wreply zadán v souboru cookie ACSSignOut, JavaScript přesměruje na adresu označenou hodnotou wreply k dokončení odhlášení. Jinak JavaScript přesměruje na zpáteční adresu URL předávající strany, jak je uvedeno na portálu pro správu služby ACS.
ACSSignOut Cookie
Služba ACS používá soubor cookie relace s názvem ACSSignOut k zaznamenání zprostředkovatele identity, který ověřil uživatele v aplikaci. Soubor cookie můžete zobrazit v trasování relací. Soubor cookie relace má následující formát názvu: ACSSignOut.<YourACSNamespace>
.
Soubor cookie ACSSignOut identifikuje aplikaci předávající strany a zprostředkovatele identity, který uživatele ověřil. Služba ACS používá soubor cookie během jednotného odhlášení, aby se zajistilo odhlášení správného zprostředkovatele identity a že se uživatel odhlásil z jiných aplikací předávající strany, ke kterým se přihlásil pomocí zprostředkovatele identity.
Omezení jednoho Sign-Out
Při používání jednotného odhlášení mějte na paměti následující omezení.
Jednotné přihlašování může zahájit pouze vlastní WS-Federation zprostředkovatele identity a zprostředkovatele identity ADFS. Zprostředkovatelé sociálních identit, jako je Yahoo, Google, Účet Microsoft (Windows Live ID) a Facebook, neoznamují ACS ani aplikaci předávající strany, když se zákazník odhlásí z webu zprostředkovatele identity. Uživatelé aplikací předávající strany, které používají tohoto zprostředkovatele identity, se proto automaticky neodhlásí, když odhlášení pochází z webu zprostředkovatele identity.
Jednotné odhlášení nemusí být efektivní ve všech prostředích. Když služba ACS obdrží zprávu o jednotném odhlášení z aplikace předávající strany, odešle žádost wsignout1.0 zprostředkovateli identity a zprávu wsignoutcleanup1.0 každé z aplikací předávající strany. Když služba ACS obdrží zprávu žádosti wsignoutcleanup1.0 od zprostředkovatele identifikace, odešle zprávu wsignoutcleanup1.0 každému z aplikací předávající strany. Služba ACS však nemůže zaručit, že aplikace identifikujícího poskytovatele nebo předávající strany budou odpovídajícím způsobem reagovat tím, že uživatele odhlásí.
Když se uživatelé odhlásí zprostředkovatele identity Google v Internet Exploreru, zobrazí se v prohlížeči výzva k zobrazení pouze zabezpečeného obsahu. Chcete-li dokončit odhlášení, musí uživatelé kliknout na Zobrazit veškerý obsah. Po dokončení odhlášení se prohlížeč přesměruje na adresu URL zadanou hodnotou parametru wreply .
Internet Explorer 9 a novější verze Internet Exploreru zobrazí upozornění na zabezpečený obsah, když na zabezpečené stránce narazí na nezabezpečený obsah, například obrázky nebo skripty, které pocházejí z nezabezpečeného serveru. V tomto případě reaguje na zabezpečený obsah ACS (HTTPS/SSL) a nebezpečený obsah (HTTP) od zprostředkovatele identity. ACS nemůže toto chování změnit nebo potlačit.
Uživatelé můžou oznámení potlačit, jak je popsáno v oznámení o zobrazení pouze zabezpečeného obsahu v Internet Exploreru 9 nebo novějším. Vzhledem k tomu, že toto nastavení platí pro všechny weby a může být počítač uživatele ohrožený škodlivým obsahem, doporučuje se výchozí nastavení, které blokuje nezabezpečený obsah (HTTP).
Aby koncovým uživatelům pomohli zahájit jednotné odhlášení, měla by aplikace předávající strany instruovat uživatele, aby zavřeli prohlížeč nebo explicitně odhlaste jiné aplikace předávající strany a web zprostředkovatele identity. Zavření karty prohlížeče, okna nebo stránky nestačí. Pokud je počítač sdílený nebo na veřejném místě, například na beznabídkovém počítači, měli by uživatelé vymazat historii prohlížeče před zavřením prohlížeče.
Viz také
Koncepty
Ukázka kódu: ASP.NET MVC 4 s federovaným odhlášením