Sessionsprovidrar för enkel inloggning i Azure Active Directory B2C
I artikeln Konfigurera sessionsbeteende i Azure Active Directory B2C beskriver vi sessionshanteringen för din anpassade Azure AD B2C-princip. Den här artikeln beskriver hur du ytterligare konfigurerar beteendet för enkel inloggning (SSO) för en enskild teknisk profil i din anpassade princip.
Du kan till exempel konfigurera din princip för klientomfattande enkel inloggning, men du vill alltid utföra multifaktorsteget oavsett en aktiv SSO-session. Du kan uppnå det här beteendet genom att konfigurera sessionsprovidern för den tekniska multifaktorprofilen.
Du kan tillämpa sessionsprovidrar på två flöden:
- Ny inloggning
- När användaren loggar in för första gången finns det ingen session. Alla tekniska profiler som använder en sessionsprovider blir sessionsdeltagare.
- Sessionsprovidern kan skriva anspråk till sessionscookien.
- Efterföljande inloggningar
- När användaren har en aktiv session läss anspråk som ingår i sessionscookien in i anspråkspåsen.
- Anspråk som ingår i sessionscookien kan inte uppdateras.
- Sessionsprovidern kan utfärda extra anspråk i anspråkspåsen, vilket anger att den här tekniska profilen utfördes under SSO-villkor.
- Den tekniska profilen kan hoppas över.
Beroende på vilken sessionshanteringsprovider som valts för en viss teknisk profil kan sessionsbeteendet vara aktivt eller undertryckt. I följande lista visas några av de många möjliga exemplen med sessionsprovidrar:
- Förhindra eller framtvinga avbrott i användargränssnittet under efterföljande inloggningar (SSO).
- Kom ihåg den valda identitetsprovidern under efterföljande inloggningar (SSO).
- Minska antalet läsåtgärder i katalogen under efterföljande inloggningar (SSO).
- Spåra sessioner för social identitetsprovider för att utföra utloggning av identitetsprovider.
- Spåra loggade i förlitande partprogram för enkel utloggning.
Sessionsprovidrar
Det finns fem sessionsprovidrar tillgängliga för att hantera hur en teknisk profil hanterar SSO-sessionen. Du måste välja den lämpligaste sessionsprovidern när du konfigurerar din tekniska profil.
I följande tabell visas vilken sessionsprovider som ska användas beroende på vilken typ av teknisk profil du vill hantera. Vissa sessionsprovidrar tillåter läs- och skrivanspråk till sessionscookien.
Sessionsprovider | Tillämpliga tekniska profiltyper | Syfte | Skriva anspråk | Läs anspråk |
---|---|---|---|---|
DefaultSSOSessionProvider | Självbestämt, Microsoft Entra-ID, Microsoft Entra multifaktorautentisering, anspråkstransformering | Hoppar över körning av teknisk profil. | Ja | Ja |
ExternalLoginSSOSessionProvider | OAuth1-identitetsprovider, Oauth2-identitetsprovider, OpenID Connect-identitetsprovider, SAML-identitetsprovider | Påskynda sidan för val av identitetsprovider. Utför enkel utloggning. | Ja | Ja |
OAuthSSOSessionProvider | Utfärdare av JWT-token | Hanterar session mellan OAuth2- eller OpenId Connect-förlitande part och Azure AD B2C. Utför enkel inloggning. | Nej | Nej |
SamlSSOSessionProvider | UTFÄRDARe av SAML-token | Hanterar session mellan SAML-förlitande part och Azure AD B2C. Utför enkel inloggning. | Nej | Nej |
NoopSSOSessionProvider | Alla | Förhindra att någon teknisk profil ingår i sessionen. | Nej | Nej |
Följande diagram visar de typer av sessioner som används av Azure AD B2C.
Referera till en sessionsprovider
Så här använder du en sessionsprovider i din tekniska profil:
Skapa en teknisk profil för sessionshantering av lämpliga. Observera att Azure AD B2C-startpaketet innehåller de vanligaste tekniska profilerna för sessionshantering. Du kan referera till en befintlig teknisk profil för sessionshantering om tillämpligt.
Följande XML-kodfragment visar startpaketets
SM-AAD
tekniska profil för sessionshantering. Sessionen som anger är typen avDefaultSSOSessionProvider
.<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>
Referera till den tekniska profilen för sessionshantering i din tekniska profil. Genom att göra det kontrollerar du beteendet för den tekniska profilen under efterföljande inloggningar (SSO).
Om du vill referera till en teknisk profil för sessionshantering från din tekniska profil lägger du till elementet
UseTechnicalProfileForSessionManagement
. I följande exempel visas användningen avSM-AAD
teknisk profil för sessionshantering.ReferenceId
Ändra till ID för din tekniska profil för sessionshantering.<TechnicalProfile Id="{Technical-profile-ID}"> ... <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> </TechnicalProfile>
Viktigt!
När en teknisk profil inte refererar till någon sessionshanteringsprovider tillämpas StandardSSOSessionProvider-sessionsprovidern , vilket kan orsaka oväntat beteende.
Kommentar
Under ett flöde för uppdateringstoken anropas inte sessionshanteringsprovidrar. Alla försök att utfärda en ny åtkomsttoken är en kopia av de ursprungliga anspråk som utfärdats.
Hantera sessionsanspråk
De tekniska profilerna för sessionshantering styr vilka anspråk som kan läsas, skrivas eller matas ut under körning av anpassad princip.
I den tekniska profilen för sessionshantering använder PersistedClaims
du och OutputClaims
element för att hantera anspråken.
- Beständiga anspråk – Anspråk som kan skrivas till sessionscookien.
- För att ett anspråk ska skrivas in i sessionscookien måste det vara en del av den aktuella anspråkspåsen.
- Alla anspråk som skrivs automatiskt returneras under efterföljande inloggningar (enkel inloggning). Du behöver inte ange utdataanspråken.
- Utdataanspråk – Extra anspråk som kan matas ut till anspråkspåsen under efterföljande inloggningar (enkel inloggning). Eftersom utdataanspråken inte returneras från sessionen måste du ange ett standardvärde.
Elementen persisted och output claims visas i följande XML-kodfragment:
<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>
Sessionshanteringsprovidrar DefaultSSOSessionProvider
och ExternalLoginSSOSessionProvider
kan konfigureras för att hantera anspråk, så att under:
- Ny inloggning
- Elementet
PersistedClaims
skriver anspråk i sessionscookien. Beständiga anspråk kan inte skrivas om.
- Elementet
- Efterföljande inloggningar
- Varje anspråk som skrivs till sessionscookien kommer att matas ut i anspråkspåsen, som kan användas i nästa orkestreringssteg.
- Elementet
OutputClaims
matar ut statiska anspråk i anspråkspåsen.DefaultValue
Använd attributet för att ange värdet för utdataanspråket.
DefaultSSOSessionProvider
Sessionsprovidern DefaultSSOSessionProvider
kan konfigureras för att hantera anspråk under efterföljande inloggningar (enkel inloggning) och tillåta att tekniska profiler hoppas över. DefaultSSOSessionProvider
Bör användas för att bevara och utfärda anspråk som behövs av efterföljande orkestreringssteg som annars inte erhålls under efterföljande inloggningar (enkel inloggning). Till exempel anspråk som kan hämtas från att läsa användarobjektet från katalogen.
Följande SM-AAD
tekniska profil är typ av DefaultSSOSessionProvider
sessionsprovider. Den SM-AAD
tekniska profilen finns i startpaketet för anpassad princip.
<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>
Den tekniska profilen SM-AAD
för sessionshantering använder DefaultSSOSessionProvider
till exempel sessionsprovidern. Den fungerar på följande sätt när den tillämpas mot den SelfAsserted-LocalAccountSignin-Email
tekniska profilen från startpaketet för anpassad princip:
- Ny inloggning
signInName
skrivs till sessionscookien eftersom den tekniska profilen för sessionshantering (SM-AAD) har konfigurerats medsignInName
för att bevaras och den tekniska profilen som refererar till SM-AAD innehåller enOutputClaim
försignInName
. Det här beteendet gäller för alla anspråk som uppfyller det här mönstret.
- Efterföljande inloggningar
- Den tekniska profilen hoppas över och användaren ser inte inloggningssidan.
- Anspråkspåsen innehåller
signInName
värdet från sessionscookien, som bevarades vid ny inloggning, och alla andra anspråk som uppfyllde mönstret för att sparas i sessionscookien. - Den tekniska profilen för sessionshantering returnerar anspråket
objectIdFromSession
eftersomOutput
anspråk från sessionsprovidern bearbetas under efterföljande inloggningar (enkel inloggning). I det här fallet anger anspråketobjectIdFromSession
som finns i anspråkspåsen att användarens anspråk kommer från sessionscookien på grund av enkel inloggning.
ExternalLoginSSOSessionProvider
Sessionsprovidern ExternalLoginSSOSessionProvider
används för att hoppa över skärmen "val av identitetsprovider" och logga ut från en federerad identitetsprovider. Den refereras vanligtvis i en teknisk profil som konfigurerats för en federerad identitetsprovider, till exempel Facebook eller Microsoft Entra-ID.
- Ny inloggning
- Elementet
PersistedClaims
skriver anspråk i sessionscookien. Beständiga anspråk kan inte skrivas om.
- Elementet
- Efterföljande inloggningar
- Varje anspråk som skrivs till sessionscookien kommer att matas ut i anspråkspåsen, som kan användas i nästa orkestreringssteg.
- Elementet
OutputClaims
matar ut statiska anspråk i anspråkspåsen.DefaultValue
Använd attributet som anger värdet för anspråket. - När en teknisk profil, som refererar till en teknisk profil för sessionshantering, innehåller en
OutputClaim
, som har sparats i sessionscookien, hoppas den tekniska profilen över.
Följande SM-SocialLogin
tekniska profil är typ av ExternalLoginSSOSessionProvider
sessionsprovider. Den SM-SocialLogin
tekniska profilen finns i startpaketet för anpassad princip.
<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>
Anspråket AlternativeSecurityId
genereras när en användare loggar in med en extern identitetsprovider. Representerar den externa identitetsproviderns unika identifierare. Anspråket AlternativeSecurityId
bevaras så att användarens profil vid enkel inloggning kan läsas från katalogen utan interaktion med den federerade identitetsprovidern.
Om du vill konfigurera den externa sessionsprovidern lägger du till en referens till SM-SocialLogin
de tekniska profilerna OAuth1, OAuth2 eller OpenID Connect. Till exempel Facebook-OAUTH
använder den tekniska profilen SM-SocialLogin
sessionshantering. Mer information finns i startpaketet för anpassad princip.
<TechnicalProfile Id="Facebook-OAUTH">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
OAuthSSOSessionProvider
Sessionsprovidern OAuthSSOSessionProvider
används för att hantera Azure AD B2C-sessioner mellan den förlitande OAuth2- eller OpenId Connect-parten och Azure AD B2C. Azure AD B2C stöder enkel utloggning, även kallat enkel utloggning (SLO). När en användare loggar ut via azure AD B2C-utloggningsslutpunkten rensar Azure AD B2C användarens sessionscookie från webbläsaren. Användaren kan dock fortfarande vara inloggad i andra program som använder Azure AD B2C för autentisering.
Med den här typen av sessionsprovider kan Azure AD B2C spåra alla OAuth2- eller OpenId Connect-program som användaren loggade in på. Under utloggningen av ett program försöker Azure AD B2C anropa slutpunkterna logout
för alla andra kända inloggade program. Den här funktionen är inbyggd i sessionsprovidern. Det finns inga beständiga anspråk eller utdataanspråk som ska konfigureras. Följande SM-jwt-issuer
tekniska profil är typ av OAuthSSOSessionProvider
sessionsprovider.
<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>
Den SM-jwt-issuer
tekniska profilen refereras från den JwtIssuer
tekniska profilen:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
Sessionsprovidern SamlSSOSessionProvider
används för att hantera sessionsbeteendet med federerade SAML-identitetsprovidrar eller SAML-förlitande partprogram och Azure AD B2C.
Sessionshantering för SAML-identitetsprovider
När du refererar till en SamlSSOSessionProvider
sessionsprovider från en SAML-identitetsprovidersession RegisterServiceProviders
måste den vara inställd på false
.
Följande SM-Saml-idp
tekniska profil är typ av SamlSSOSessionProvider
sessionsprovider:
<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>
Om du vill använda den SM-Saml-idp
tekniska profilen för sessionshantering lägger du till en referens till din tekniska profil för SAML-identitetsprovidern . AD-FS SAML-identitetsprovidern Contoso-SAML2
använder till exempel den tekniska profilen SM-Saml-idp
för sessionshantering.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
Saml-tjänstproviderns sessionshantering
När du refererar till en SamlSSOSessionProvider
sessionsprovider för att hantera en SAML-förlitande partsession måste du RegisterServiceProviders
ange till true
. SAML-sessionsinloggning kräver SessionIndex
och NameID
för att slutföras.
Följande SM-Saml-issuer
tekniska profil är typ av SamlSSOSessionProvider
sessionsprovider:
<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>
Om du vill använda den SM-Saml-issuer
tekniska profilen för sessionshantering lägger du till en referens till din tekniska profil för SAML-token utfärdare . Den tekniska profilen använder till exempel Saml2AssertionIssuer
den tekniska profilen SM-Saml-issuer
för sessionshantering.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Metadata
Attribut | Obligatoriskt | Beskrivning |
---|---|---|
IncludeSessionIndex | Nej | Används inte för närvarande, kan ignoreras. |
RegisterServiceProviders | Nej | Anger att providern ska registrera alla SAML-tjänstleverantörer som har utfärdat ett intyg. Möjliga värden: true (standard) eller false . |
NoopSSOSessionProvider
Sessionsprovidern NoopSSOSessionProvider
används för att förhindra beteende för enkel inloggning. Tekniska profiler som använder den här typen av sessionsprovider bearbetas alltid, även när användaren har en aktiv session. Den här typen av sessionsprovider kan vara användbar för att tvinga vissa tekniska profiler att alltid köras, till exempel:
- Anspråksomvandling – För att skapa eller transformera anspråk som senare används för att avgöra vilka orkestreringssteg som ska bearbetas eller hoppa över.
- Restful – Hämta uppdaterade data från en vilsam tjänst varje gång principen körs. Du kan också anropa en Restful för utökad loggning och granskning.
- Självbestämt – Tvinga användaren att ange data varje gång principen körs. Kontrollera till exempel e-postmeddelanden med engångslösenkod eller fråga användarens medgivande.
- Phonefactor – Tvinga användaren att utföra multifaktorautentisering som en del av en "step up authentication" även under efterföljande inloggningar (enkel inloggning).
Den här typen av sessionsprovider bevarar inte anspråk på användarens sessionscookie. Följande SM-Noop
tekniska profil är typ av NoopSSOSessionProvider
sessionsprovider. Den SM-Noop
tekniska profilen finns i startpaketet för anpassad princip.
<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>
Om du vill förhindra beteende för enkel inloggning för en teknisk profil lägger du till en referens till SM-Noop
den tekniska profilen. Till exempel AAD-Common
använder den tekniska profilen SM-Noop
sessionshantering. Mer information finns i startpaketet för anpassad princip.
<TechnicalProfile Id="AAD-Common">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Nästa steg
Lär dig hur du konfigurerar sessionsbeteende.