Delen via


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.

Diagram met de typen sessieproviders voor Azure AD B2C.

Verwijzen naar een sessieprovider

Als u een sessieprovider wilt gebruiken in uw technische profiel:

  1. 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 type DefaultSSOSessionProvider.

    <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>
    
  2. 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 voor SM-AAD-sessiebeheer. Wijzig de ReferenceId 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.
  • 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 kenmerk DefaultValue 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 met signInName om te worden behouden, en het technische profiel dat SM-AAD verwijst, een OutputClaim voor signInName 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 omdat Output-claims van de sessieprovider worden verwerkt tijdens volgende aanmeldingen (eenmalige aanmelding). In dit geval geeft de objectIdFromSession-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.
  • 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 kenmerk DefaultValue 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.