Delen via


Eenmalige afmelding

Bijgewerkt: 19 juni 2015

Van toepassing op: Azure

Microsoft Azure Active Directory Access Control (ook wel bekend als Access Control Service of ACS) bevat nu een optionele mogelijkheid om eenmalige aanmelding aan te vullen. Het resultaat is een volledige en consistente aanmeldings- en afmeldingservaring voor gebruikers van webtoepassingen die zijn geïntegreerd met ACS.

Wanneer een eindgebruiker zich afmeldt bij een relying party-toepassing die ondersteuning biedt voor eenmalige aanmelding, kan ACS de gebruiker automatisch afmelden bij de site van de id-provider en zich afmelden bij alle andere toepassingen waarvoor ze zich hebben aangemeld met behulp van die id-provider. Als de klant zich afmeldt bij de website van de id-provider, kan ACS de klant automatisch afmelden bij toepassingen waarmee ze zich hebben aangemeld met behulp van de id-provider.

In dit onderwerp wordt uitgelegd hoe eenmalige afmelding werkt en hoe u eenmalige afmelding implementeert voor uw relying party-toepassing. Controleer de voorbeeldcode voor het implementeren van federatieve eenmalige aanmelding in een ASP.NET MVC 4-toepassing in Code Sample: ASP.NET MVC 4 met federatieve afmeldingt.

Systeemvereisten

Als u eenmalige afmelding wilt implementeren, zijn de volgende hulpprogramma's en services vereist.

  • Azure-abonnement

  • Visual Studio 2012

Over enkele Sign-Out

In elke browsersessie kan een klant een federatieve id-provider selecteren om zich aan te melden bij een relying party-toepassing. Wanneer de gebruiker zich afmeldt bij de id-provider of de relying party-toepassing, wordt de klant automatisch afgemeld bij alle relying party-toepassingen waarmee ze zich hebben aangemeld met behulp van dezelfde id-provider.

De klant gebruikt bijvoorbeeld een Microsoft-account (Windows Live ID) om zich aan te melden bij drie met ACS geïntegreerde relying party-toepassingen. Wanneer de klant zich afmeldt bij een van de toepassingen, worden ze automatisch afgemeld bij hun Microsoft-account en afgemeld bij de andere twee toepassingen.

Volledige ondersteuning voor eenmalige afmelding is beschikbaar voor aangepaste WS-Federation- en ADFS-id-providers. Beperkte ondersteuning voor eenmalige afmelding is beschikbaar voor het Facebook-, Google-, Microsoft-account en Yahoo! id-providers. Deze id-providers kunnen eenmalige afmelding niet initiëren. Wanneer een relying party-toepassing echter eenmalige afmelding initieert, wordt de klant afgemeld bij deze id-providers en gekoppelde relying party-toepassingen waarmee ze zich hebben aangemeld met behulp van die id-provider.

Hoe single Sign-Out werkt

Eenmalige afmelding kan worden gestart door de id-provider of de relying party-toepassing. In deze sectie bekijken we elk van deze afmeldingsprocessen en leggen we uit hoe u eenmalige afmelding voor uw relying party-toepassing kunt inschakelen.

Relying Party-toepassing initieert Sign-Out

Als u eenmalige afmelding wilt initiëren wanneer een gebruiker zich afmeldt bij uw relying party-toepassing, verzendt u een URL met de volgende parameters naar het ACS-WS-Federation-eindpunt.

  • wa: Instellen op wsignout1.0

  • wreply: Stel de waarde in op de URL van de afmeldingspagina, dat wil gezegd, de pagina waar de gebruiker wordt omgeleid wanneer afmelden is voltooid. Deze waarde moet het deel van de RP-domeinnaam zijn, zoals 'https://RP.com/"

  • wtrealm: Ingesteld op de waarde van de realm-eigenschap van de relying party-toepassing in de ACS-beheerportal.

Hier volgt een voorbeeld-URL voor eenmalige afmelding.

https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=<YourAppRealm>&wreply=<YourAppRealmLogoutPage>

Bijvoorbeeld:

https://Fabrikam.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=" https://www.fabrikam.com/" &wreply= https://www.fabrikam.com/logout

Zie Codevoorbeeld: ASP.NET MVC 4 met federatieve afmelding voor voorbeeldcode die door relying party geïnitieerde eenmalige afmelding implementeert. Dit voorbeeld bevat code in LogoutController.cs waarmee de wreply- en wrealm-waarden worden opgehaald en een exemplaar van de SignOutRequestMessage-klasse wordt gemaakt.

Wanneer ACS de afmeldings-URL ontvangt, beëindigt ACS de sessie van de klant met de id-provider door een wsignout1.0-aanvraag te verzenden. Vervolgens verzendt ACS wsignoutcleanup1.0-berichten naar andere relying party-toepassingen waarmee de gebruiker zich heeft aangemeld met behulp van de id-provider.

Id-provider initieert Sign-Out

Door id-provider geïnitieerde afmelding wordt alleen ondersteund voor aangepaste WS-Federation- en ADFS-id-providers. Het kan niet worden ondersteund voor Microsoft-account (Windows Live ID), Google-, Yahoo!- en Facebook-id-providers, omdat deze id-providers ACS of de relying party-toepassing niet op de hoogte stellen wanneer de gebruiker zich afmeldt.

Wanneer de gebruiker zich afmeldt bij een WS-Federation of ADFS-id-provider, verzendt de id-provider ACS een wsignoutcleanup1.0-afmeldingsbericht met de volgende indeling: https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignoutcleanup1.0

Wanneer ACS een wsignoutcleanup1.0-bericht ontvangt, wordt gecontroleerd of de aanvraag afkomstig is van hetzelfde eindpunt als de aanmeldingsaanvraag door de referrer in de HTTP-header van het bericht te valideren: <Referrer>: https://CustomIDP waarbij de waarde van Referrer de waarde is van <referrer> in de aanmeldings-URL in de ACSSignOut-cookie .

Vervolgens verzendt ACS een wsignoutcleanup1.0-bericht naar alle relying party-toepassingen in de clientbrowsersessie van de huidige gebruiker die zijn gekoppeld aan de id-provider. Het proces is vergelijkbaar met het proces dat wordt beschreven in de sectie 'Relying Party Application Initieert afmelden'. De id-provider kan de browser omleiden naar een afmeldingspagina die wordt bepaald om het afmeldingsproces te voltooien.

Proces voor eenmalige afmelding

In deze sectie wordt elke stap in het proces voor eenmalige afmelding beschreven. Omdat ACS de details voor u afhandelt, hoeft u dit proces niet te begrijpen. Het kan echter handig zijn bij het aanpassen of opsporen van fouten.

Stapsgewijze Sign-Out

  1. Wanneer ACS een aanvraag voor afmelding1.0 ontvangt op het WS-Federation-eindpunt, zoekt ACS de id-provider op van de initiator van de afmeldingsaanvraag in de ACSSignOut-cookie.

    ACS gebruikt de volgende overeenkomende regels om de id-provider te identificeren.

    • Als de wtrealm-parameter is opgegeven in de afmeldingsaanvraag, zoekt ACS naar de wtrealm-waarde in de lijst met relying party's voor elke id-provider.

    • Als wtrealm niet is opgegeven en er slechts één id-providervermelding in de ACSSignOut-cookie staat, gebruikt ACS de id-provider in de ACSSignOut-cookie.

    • Anders wordt in ACS een foutpagina weergegeven die aangeeft dat de poging tot afmelden is mislukt omdat de parameter wtrealm ontbreekt.

  2. ACS verzendt een signout1.0-bericht naar de id-provider door een pagina met een inlineframeelement (<iframe>) weer te geven. ACS voegt <ook iframe-elementen> toe die het SignOutCleanup1.0-bericht bevatten op de pagina's van alle actieve WS-Federation relying party's behalve de initiërende partij en ACS verwijdert de relying party's uit de ACSSignOut-cookie .

  3. De pagina met de afmeldingsstatus van de relying party bevat ook JavaScript dat gedurende een opgegeven tijd wordt uitgevoerd en vervolgens de browser omleidt. Als er een wreply-parameter is opgegeven in de ACSSignOut-cookie, wordt javaScript omgeleid naar het adres dat wordt aangegeven door de wreply-waarde om de afmelding te voltooien. Anders wordt JavaScript omgeleid naar de retour-URL van de relying party, zoals opgegeven in de ACS-beheerportal.

ACS maakt gebruik van een sessiecooky met de naam ACSSignOut om de id-provider vast te leggen die de gebruiker heeft geverifieerd bij de toepassing. U kunt de cookie bekijken in sessietraceringen. De sessiecooky heeft de volgende naamindeling: ACSSignOut.<YourACSNamespace>.

De ACSSignOut-cookie identificeert de relying party-toepassing en de id-provider die de gebruiker heeft geverifieerd. ACS gebruikt de cookie tijdens eenmalige afmelding om ervoor te zorgen dat de juiste id-provider wordt afgemeld en dat de gebruiker is afgemeld bij andere relying party-toepassingen waarmee ze zich hebben aangemeld met behulp van de id-provider.

Beperkingen van enkele Sign-Out

Wanneer u eenmalige afmelding gebruikt, moet u rekening houden met de volgende beperkingen.

  • Alleen aangepaste WS-Federation id-providers en ADFS-id-providers kunnen eenmalige afmelding initiëren. Sociale id-providers, zoals Yahoo, Google, Microsoft-account (Windows Live ID) en Facebook, melden ACS of de relying party-toepassing niet wanneer de klant zich afmeldt bij de website van de id-provider. Daarom worden gebruikers van relying party-toepassingen die gebruikmaken van deze id-provider niet automatisch afgemeld wanneer de afmelding afkomstig is van de site van de id-provider.

  • Eenmalige afmelding is mogelijk niet effectief in alle omgevingen. Wanneer ACS een bericht over eenmalige afmelding ontvangt van een relying party-toepassing, wordt er een wsignout1.0-aanvraag verzonden naar de id-provider en een wsignoutcleanup1.0-bericht naar elk van de andere relying party-toepassingen. Wanneer ACS een wsignoutcleanup1.0-aanvraagbericht van een identificatieprovider ontvangt, wordt er een wsignoutcleanup1.0-bericht verzonden naar elk van de relying party-toepassingen. ACS kan echter niet garanderen dat de id-provider of relying party-toepassingen op de juiste wijze reageren door de gebruiker af te melden.

  • Wanneer gebruikers zich afmelden bij de Google-id-provider in Internet Explorer, wordt in de browser de prompt Alleen beveiligde inhoud weergegeven. Als u afmelden wilt voltooien, moeten gebruikers op Alle inhoud weergeven klikken. Wanneer afmelden is voltooid, wordt de browser omgeleid naar de URL die is opgegeven door de waarde van de wreply-parameter .

    In Internet Explorer 9 en latere versies van Internet Explorer wordt de melding over beveiligde inhoud weergegeven wanneer deze niet-beveiligde inhoud op een beveiligde pagina tegenkomt, zoals afbeeldingen of scripts die afkomstig zijn van een niet-beveiligde server. In dit geval reageert het op beveiligde ACS-inhoud (HTTPS/SSL) en niet-beveiligde (HTTP)-inhoud van de id-provider. ACS kan dit gedrag niet wijzigen of onderdrukken.

    Gebruikers kunnen de kennisgeving onderdrukken, zoals wordt beschreven in de melding Alleen beveiligde inhoud wordt weergegeven in Internet Explorer 9 of hoger. Omdat deze instelling echter van toepassing is op alle websites en de computer van de gebruiker kwetsbaar kan maken voor schadelijke inhoud, wordt de standaardinstelling, die niet-beveiligde (HTTP)-inhoud blokkeert, aanbevolen.

Om eindgebruikers te helpen bij het initiëren van eenmalige aanmelding, moet de afmeldingspagina van de relying party-toepassing gebruikers instrueren om de browser te sluiten of expliciet af te melden bij andere relying party-toepassingen en de website van de id-provider. Het sluiten van een browsertabblad, -venster of -pagina is niet voldoende. Als de computer wordt gedeeld of op een openbare locatie, zoals een kioskcomputer, moeten de gebruikers de browsergeschiedenis wissen voordat ze de browser sluiten.

Zie ook

Concepten

Codevoorbeeld: ASP.NET MVC 4 met federatieve afmelding

Meer informatie

Passieve verificatie voor ASP.NET in WIF