Sessieproviders van eenmalige aanmelding in Azure Active Directory B2C
In het artikel Sessiegedrag in Azure Active Directory B2C configureren beschrijven we het sessiebeheer voor uw aangepaste Azure AD B2C-beleid. In dit artikel wordt beschreven hoe u het gedrag van eenmalige aanmelding van elk afzonderlijk technisch profiel in uw aangepaste beleid verder configureert.
U configureert bijvoorbeeld uw beleid voor eenmalige aanmelding voor de hele tenant, maar u wilt altijd de meervoudige stap uitvoeren, ongeacht of er een actieve sessie met eenmalige aanmelding is. U kunt dit gedrag instellen door de sessieprovider van het meervoudige technische profiel te configureren.
U kunt sessieproviders toepassen op twee stromen:
- Nieuwe aanmelding
- Wanneer de gebruiker zich voor het eerst aanmeldt, is er geen sessie. Alle technische profielen die gebruikmaken van een sessieprovider, worden een sessiedeelnemer.
- De sessieprovider kan claims schrijven naar de sessiecookie.
- Volgende aanmeldingen
- Wanneer de gebruiker een actieve sessie heeft, worden claims die deel uitmaken van de sessiecookie in de claimverzameling gelezen.
- Claims die deel uitmaken van de sessiecookie kunnen niet worden bijgewerkt.
- De sessieprovider kan extra claims uitgeven in de claimverzameling, waarmee wordt aangegeven dat dit technische profiel is uitgevoerd onder voorwaarden voor eenmalige aanmelding.
- Het technische profiel kan worden overgeslagen.
Afhankelijk van de sessiebeheerprovider die is gekozen voor een bepaald technisch profiel, kan sessiegedrag actief zijn of onderdrukt worden. De volgende lijst bevat enkele voorbeelden van de vele opties met sessieproviders:
- Onderbrekingen van de gebruikersinterface voorkomen of afdwingen tijdens volgende aanmeldingen (eenmalige aanmelding).
- De gekozen id-provider tijdens volgende aanmeldingen onthouden (eenmalige aanmelding).
- Het aantal leesbewerkingen in de map beperken tijdens volgende aanmeldingen (eenmalige aanmelding).
- De sessies van de id-provider voor sociale netwerken bijhouden om afmelding bij de id-provider uit te voeren.
- Aangemelde Relying Party-toepassingen voor eenmalige afmelding bijhouden.
Sessieproviders
Er zijn vijf sessieproviders beschikbaar om te beheren hoe een technisch profiel de sessie met eenmalige aanmelding verwerkt. Kies de meest geschikte sessieprovider tijdens het configureren van uw technische profiel.
De volgende tabel toont welke sessieprovider het beste kan worden gebruikt afhankelijk van het type technisch profiel dat u wilt beheren. Sommige sessieproviders staan het lezen en schrijven van claims naar de sessiecookie toe.
Sessieprovider | Toepasselijke typen technische profielen | Doel | Claims schrijven | Claims lezen |
---|---|---|---|---|
DefaultSSOSessionProvider | Zelf-asserted, Microsoft Entra ID, Microsoft Entra multifactor authentication, Claims transformation | Slaat de uitvoering van het technische profiel over. | Ja | Ja |
ExternalLoginSSOSessionProvider | OAuth1-id-provider, OAuth2-id-provider, OpenID Connect-id-provider, SAML-id-provider | Versnelt de pagina voor het selecteren van de id-provider. Voert eenmalige afmelding uit. | Ja | Ja |
OAuthSSOSessionProvider | JWT-tokenuitgever | Beheert de sessie tussen OAuth2 of OpenId Connect Relying Party en Azure AD B2C. Voert eenmalige afmelding uit. | Nee | Nr. |
SamlSSOSessionProvider | SAML-tokenuitgever | Beheert de sessie tussen SAML Relying Party en Azure AD B2C. Voert eenmalige afmelding uit. | Nee | Nr. |
NoopSSOSessionProvider | Alle | Voorkomt dat enig technisch profiel deel uitmaakt van de sessie. | Nee | Nr. |
Het volgende diagram toont de typen sessies die door Azure AD B2C worden gebruikt.
Verwijzen naar een sessieprovider
Als u een sessieprovider wilt gebruiken in uw technische profiel:
Maak een technisch profiel voor sessiebeheer van de juiste provider. Let op: Het Azure AD B2C-starterspakket bevat de meest voorkomende technische profielen voor sessiebeheer. U kunt indien van toepassing verwijzen naar een bestaand technisch profiel voor sessiebeheer.
In het volgende XML-fragment ziet u het technische profiel voor
SM-AAD
-sessiebeheer van het starterspakket. De sessieprovider is van het typeDefaultSSOSessionProvider
.<TechnicalProfile Id="SM-AAD"> <DisplayName>Session Mananagement Provider</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <PersistedClaims> <PersistedClaim ClaimTypeReferenceId="objectId" /> <PersistedClaim ClaimTypeReferenceId="signInName" /> <PersistedClaim ClaimTypeReferenceId="authenticationSource" /> <PersistedClaim ClaimTypeReferenceId="identityProvider" /> <PersistedClaim ClaimTypeReferenceId="newUser" /> <PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" /> </PersistedClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true" /> </OutputClaims> </TechnicalProfile>
Controleer het technische profiel voor sessiebeheer in uw technische profiel. Hierdoor bepaalt u het gedrag van dat technische profiel tijdens volgende aanmeldingen (eenmalige aanmelding).
Als u wilt verwijzen naar een technisch profiel voor sessiebeheer vanuit uw technische profiel, voegt u het element
UseTechnicalProfileForSessionManagement
toe. Het volgende voorbeeld toont het gebruik van het technische profiel voorSM-AAD
-sessiebeheer. Wijzig deReferenceId
in de id van uw technische profiel voor sessiebeheer.<TechnicalProfile Id="{Technical-profile-ID}"> ... <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> </TechnicalProfile>
Belangrijk
Wanneer een technisch profiel niet naar een sessiebeheerprovider verwijst, wordt de sessieprovider DefaultSSOSessionProvider toegepast, wat onverwacht gedrag kan veroorzaken.
Notitie
Tijdens een vernieuwingstokenstroom worden de sessiebeheerproviders niet aangeroepen. Alle pogingen om een nieuw toegangstoken uit te geven, zijn een kopie van de oorspronkelijk uitgegeven claims.
Sessieclaims beheren
De technische profielen voor sessiebeheer bepalen welke claims tijdens de uitvoering van aangepast beleid kunnen worden gelezen, geschreven of uitgevoerd.
Gebruik PersistedClaims
- en OutputClaims
-elementen in het technische profiel voor sessiebeheer om de claims te beheren.
- Persistente claims: claims die naar de sessiecookie kunnen worden geschreven.
- Een claim kan alleen naar de sessiecookie worden geschreven als deze deel uitmaakt van de huidige claimverzameling.
- Alle claims die automatisch worden geschreven, keren terug tijdens volgende aanmeldingen (eenmalige aanmelding). U hoeft de uitvoerclaims niet op te geven.
- Uitvoerclaims : extra claims die kunnen worden uitgevoerd naar de claimverzameling tijdens volgende aanmeldingen (eenmalige aanmelding). Omdat de uitvoerclaims niet vanuit de sessie worden geretourneerd, moet u een standaardwaarde instellen.
De persistente en uitvoerclaimelementen worden gedemonstreerd in het volgende XML-fragment:
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
De sessiebeheerproviders DefaultSSOSessionProvider
en ExternalLoginSSOSessionProvider
kunnen worden geconfigureerd voor het beheren van claims, zodat tijdens:
- Nieuwe aanmelding
- Het element
PersistedClaims
claims naar de sessiecookie schrijft. Persistente claims kunnen niet opnieuw worden geschreven.
- Het element
- Volgende aanmeldingen
- Elke claim die naar de sessiecookie wordt geschreven, wordt uitgevoerd in de claimuitvoering die in de volgende indelingsstap kan worden gebruikt.
- Het element
OutputClaims
voert statische claims uit in de claimverzameling. Gebruik het kenmerkDefaultValue
om de waarde van de uitvoerclaim in te stellen.
DefaultSSOSessionProvider
De sessieprovider DefaultSSOSessionProvider
kan worden geconfigureerd voor het beheren van claims tijdens volgende aanmeldingen (eenmalige aanmelding) en staat toe dat technische profielen worden overgeslagen. De DefaultSSOSessionProvider
moet worden gebruikt om claims te behouden en uit te geven die nodig zijn voor volgende indelingsstappen die niet op andere wijze worden verkregen tijdens volgende aanmeldingen (eenmalige aanmelding). Bijvoorbeeld claims die kunnen worden verkregen door het lezen van gebruikersobject uit de map.
Het volgende technische SM-AAD
-profiel is het type sessieprovider DefaultSSOSessionProvider
. Het technische SM-AAD
-profiel vindt u in het starterspakket voor aangepast beleid.
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
<PersistedClaim ClaimTypeReferenceId="signInName" />
<PersistedClaim ClaimTypeReferenceId="authenticationSource" />
<PersistedClaim ClaimTypeReferenceId="identityProvider" />
<PersistedClaim ClaimTypeReferenceId="newUser" />
<PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
Het technische SM-AAD
-profiel voor sessiebeheer gebruikt bijvoorbeeld de sessieprovider DefaultSSOSessionProvider
. Het gedraagt zich als volgt wanneer het wordt toegepast op het technische profiel SelfAsserted-LocalAccountSignin-Email
van het starterspakket voor aangepast beleid:
- Nieuwe aanmelding
signInName
wordt naar de sessiecookie geschreven, omdat het technisch profiel voor sessiebeheer (SM-AAD) is geconfigureerd metsignInName
om te worden behouden, en het technische profiel dat SM-AAD verwijst, eenOutputClaim
voorsignInName
bevat. Dit gedrag is van toepassing op alle claims die aan dit patroon voldoen.
- Volgende aanmeldingen
- Het technische profiel wordt overgeslagen en de gebruiker krijgt de aanmeldingspagina niet te zien.
- De claimverzameling bevat de waarde
signInName
van de sessiecookie, die is behouden bij nieuwe aanmelding, en eventuele andere claims die voldoen aan het patroon dat moet worden behouden in de sessiecookie. - Het technische profiel voor sessiebeheer retourneert de
objectIdFromSession
-claim omdatOutput
-claims van de sessieprovider worden verwerkt tijdens volgende aanmeldingen (eenmalige aanmelding). In dit geval geeft deobjectIdFromSession
-claim in de claimverzameling aan dat de claims van de gebruiker afkomstig zijn van de sessiecookie vanwege eenmalige aanmelding.
ExternalLoginSSOSessionProvider
De sessieprovider ExternalLoginSSOSessionProvider
wordt gebruikt om het scherm voor het selecteren van de id-provider over te slaan en u af te melden bij een federatieve id-provider. Dit wordt meestal verwezen in een technisch profiel dat is geconfigureerd voor een federatieve id-provider, zoals Facebook of Microsoft Entra-id.
- Nieuwe aanmelding
- Het element
PersistedClaims
claims naar de sessiecookie schrijft. Persistente claims kunnen niet opnieuw worden geschreven.
- Het element
- Volgende aanmeldingen
- Elke claim die naar de sessiecookie wordt geschreven, wordt uitgevoerd in de claimuitvoering die in de volgende indelingsstap kan worden gebruikt.
- Het element
OutputClaims
voert statische claims uit in de claimverzameling. Gebruik het kenmerkDefaultValue
om de waarde van de claim in te stellen. - Wanneer een technisch profiel, dat verwijst naar een technisch profiel voor sessiebeheer, een
OutputClaim
bevat die in de sessiecookie is behouden, wordt dit technische profiel overgeslagen.
Het volgende technische SM-SocialLogin
-profiel is het type sessieprovider ExternalLoginSSOSessionProvider
. Het technische SM-SocialLogin
-profiel vindt u in het starterspakket voor aangepast beleid.
<TechnicalProfile Id="SM-SocialLogin">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.ExternalLoginSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="AlternativeSecurityId" />
</PersistedClaims>
</TechnicalProfile>
De claim AlternativeSecurityId
wordt gegenereerd wanneer een gebruiker zich aanmeldt met een externe id-provider. Dit staat voor de unieke id van de gebruiker van de externe id-provider. De claim AlternativeSecurityId
wordt behouden, zodat bij eenmalige aanmelding het profiel van de gebruiker uit de map kan worden gelezen zonder enige interactie met de federatieve id-provider.
Als u de externe sessieprovider wilt configureren, voegt u een verwijzing toe naar de SM-SocialLogin
uit uw technische profielen voor OAuth1, OAuth2 of OpenID Connect. Facebook-OAUTH
gebruikt bijvoorbeeld het technische SM-SocialLogin
-profiel voor sessiebeheer. Zie het starterspakket voor aangepast beleid voor meer informatie.
<TechnicalProfile Id="Facebook-OAUTH">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
OAuthSSOSessionProvider
De sessieprovider OAuthSSOSessionProvider
wordt gebruikt voor het beheren van de Azure AD B2C-sessies tussen de Relying Party OAuth2 of OpenId Connect en Azure AD B2C. Azure AD B2C ondersteunt eenmalige afmelding, ook wel bekend als eenmalige afmelding (SLO). Wanneer een gebruiker zich afmeldt via het Azure AD B2C-afmeldingseindpunt, wist Azure AD B2C de sessiecookie van de gebruiker uit de browser. De gebruiker kan echter nog steeds zijn aangemeld bij andere toepassingen die Azure AD B2C gebruiken voor verificatie.
Met dit type sessieprovider kan Azure AD B2C alle OAuth2- of OpenId Connect-toepassingen bijhouden waarbij de gebruiker is aangemeld. Tijdens het afmelden bij een toepassing probeert Azure AD B2C de logout
-eindpunten van alle andere bekende aangemelde toepassingen aan te roepen. Deze functionaliteit is in de sessieprovider geïntegreerd. Er zijn geen persistente of uitvoerclaims beschikbaar om te configureren. Het volgende technische SM-jwt-issuer
-profiel is het type sessieprovider OAuthSSOSessionProvider
.
<TechnicalProfile Id="SM-jwt-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.OAuthSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
Vanuit het technische profiel JwtIssuer
wordt naar het technische profiel SM-jwt-issuer
verwezen:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
De sessieprovider SamlSSOSessionProvider
wordt gebruikt voor het beheren van het sessiegedrag met federatieve SAML-id-providers of SAML Relying Party-toepassingen en Azure AD B2C.
Sessiebeheer van SAML-id-provider
Wanneer u naar een SamlSSOSessionProvider
-sessieprovider verwijst vanuit een SAML-id-providersessie, moeten de RegisterServiceProviders
worden ingesteld op false
.
Het volgende technische SM-Saml-idp
-profiel is het type sessieprovider SamlSSOSessionProvider
:
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
Als u het technische SM-Saml-idp
-profiel voor sessiebeheer wilt gebruiken, voegt u een verwijzing naar het technische profiel van uw SAML-id-provider toe. De AD-FS SAML-id-provider Contoso-SAML2
gebruikt bijvoorbeeld het SM-Saml-idp
technische profiel voor sessiebeheer.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
Sessiebeheer van SAML-serviceprovider
Wanneer u naar een SamlSSOSessionProvider
-sessieprovider verwijst voor het beheren van een SAML Relying Party-sessie, moeten de RegisterServiceProviders
worden ingesteld op true
. Afmelden voor SAML-sessies vereist dat de SessionIndex
en NameID
worden voltooid.
Het volgende technische SM-Saml-issuer
-profiel is het type sessieprovider SamlSSOSessionProvider
:
<TechnicalProfile Id="SM-Saml-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</TechnicalProfile>
Als u het technische SM-Saml-issuer
-profiel voor sessiebeheer wilt gebruiken, voegt u een verwijzing naar het technische profiel van uw SAML-tokenverlener toe. Het technische profiel Saml2AssertionIssuer
gebruikt bijvoorbeeld het technische SM-Saml-issuer
-profiel voor sessiebeheer.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Metagegevens
Kenmerk | Vereist | Beschrijving |
---|---|---|
IncludeSessionIndex | Nee | Momenteel niet in gebruik, kan worden genegeerd. |
RegisterServiceProviders | Nee | Geeft aan dat de provider alle SAML-serviceproviders moet registreren waarvoor een assertie is uitgegeven. Mogelijke waarden: true (standaard) of false . |
NoopSSOSessionProvider
De sessieprovider NoopSSOSessionProvider
wordt gebruikt om eenmalige aanmelding te onderdrukken. Technische profielen die gebruikmaken van dit type sessieprovider, worden altijd verwerkt, zelfs wanneer de gebruiker een actieve sessie heeft. Dit type sessieprovider kan handig zijn om bepaalde technische profielen altijd geforceerd uit te voeren, bijvoorbeeld:
- Claimtransformatie: claims maken of transformeren die later worden gebruikt om te bepalen welke indelingsstappen moeten worden verwerkt of overgeslagen.
- Restful: elke keer dat het beleid wordt uitgevoerd, bijgewerkte gegevens ophalen uit een Restful-service. U kunt ook een Restful aanroepen voor uitgebreide logboekregistratie en controle.
- Zelf bevestigd: elke keer dat het beleid wordt uitgevoerd, de gebruiker dwingen om gegevens op te geven. Bijvoorbeeld: e-mailberichten verifiëren met een eenmalige code of de gebruiker om toestemming vragen.
- Phonefactor : dwing de gebruiker af om meervoudige verificatie uit te voeren als onderdeel van een 'step up authentication' zelfs tijdens volgende aanmeldingen (eenmalige aanmelding).
Dit type sessieprovider behoudt geen claims voor de sessiecookie van de gebruiker. Het volgende technische SM-Noop
-profiel is het type sessieprovider NoopSSOSessionProvider
. Het technische SM-Noop
-profiel vindt u in het starterspakket voor aangepast beleid.
<TechnicalProfile Id="SM-Noop">
<DisplayName>Noop Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.NoopSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
Als u eenmalige aanmelding van een technisch profiel wilt onderdrukken, voegt u een verwijzing naar SM-Noop
toe aan het technische profiel. AAD-Common
gebruikt bijvoorbeeld het technische SM-Noop
-profiel voor sessiebeheer. Zie het starterspakket voor aangepast beleid voor meer informatie.
<TechnicalProfile Id="AAD-Common">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Volgende stappen
Meer informatie over sessiegedrag configureren.