Provider di sessioni Single Sign-On in Azure Active Directory B2C
Nell'articolo Configurare il comportamento della sessione in Azure Active Directory B2C viene descritta la gestione delle sessioni per i criteri personalizzati di Azure AD B2C. Questo articolo descrive come configurare ulteriormente il comportamento dell'accesso Single Sign-On (SSO) di qualsiasi singolo profilo tecnico all'interno dei criteri personalizzati.
Ad esempio, si configurano i criteri per l'accesso Single Sign-On a livello di tenant, ma si vuole eseguire sempre il passaggio a più fattori indipendentemente da una sessione SSO attiva. È possibile ottenere questo comportamento configurando il provider di sessioni del profilo tecnico a più fattori.
È possibile applicare provider di sessioni a due flussi:
- Accesso aggiornato
- Quando l'utente accede per la prima volta, non è presente alcuna sessione. Tutti i profili tecnici che usano un provider di sessioni diventano un partecipante della sessione.
- Il provider di sessione può scrivere attestazioni nel cookie di sessione.
- Accessi successivi
- Quando l'utente ha una sessione attiva, le attestazioni che fanno parte del cookie di sessione vengono lette nel contenitore di attestazioni.
- Le attestazioni che fanno parte del cookie di sessione non possono essere aggiornate.
- Il provider di sessioni può emettere attestazioni aggiuntive nel contenitore di attestazioni, a indicare che questo profilo tecnico è stato eseguito in condizioni SSO.
- Il profilo tecnico può essere ignorato.
A seconda del provider di gestione delle sessioni scelto per un determinato profilo tecnico, il comportamento della sessione può essere attivo o eliminato. L'elenco seguente presenta alcuni dei numerosi esempi possibili che usano provider di sessioni:
- Impedire o imporre interruzioni dell'interfaccia utente durante gli accessi successivi (SSO).
- Ricordare il provider di identità scelto durante gli accessi successivi (SSO).
- Ridurre il numero di operazioni di lettura nella directory durante gli accessi successivi (SSO).
- Tenere traccia delle sessioni del provider di identità di social networking per eseguire la disconnessa del provider di identità.
- Tenere traccia delle applicazioni relying party registrate per l'accesso Single Sign-Out.
Provider di sessioni
Sono disponibili cinque provider di sessioni per gestire il modo in cui un profilo tecnico gestisce la sessione SSO. È necessario scegliere il provider di sessioni più appropriato durante la configurazione del profilo tecnico.
La tabella seguente illustra il provider di sessioni da usare a seconda del tipo di profilo tecnico che si vuole gestire. Alcuni provider di sessioni consentono la lettura e la scrittura di attestazioni nel cookie di sessione.
Provider di sessione | Tipi di profilo tecnico applicabili | Scopo | Scrivere attestazioni | Leggere le attestazioni |
---|---|---|---|---|
DefaultSSOSessionProvider | Autocertificati, Microsoft Entra ID, autenticazione a più fattori Microsoft Entra, trasformazione attestazioni | Ignora l'esecuzione del profilo tecnico. | Sì | Sì |
ExternalLoginSSOSessionProvider | Provider di identità OAuth1, provider di identità Oauth2, provider di identità OpenID Connect, provider di identità SAML | Accelerare la pagina di selezione del provider di identità. Esecuzione di una disconnessione singola. | Sì | Sì |
OAuthSSOSessionProvider | Autorità emittente del token JWT | Gestisce la sessione tra la relying party OAuth2 o OpenId Connect e Azure AD B2C. Esegue la disconnessione singola. | No | No |
SamlSSOSessionProvider | Autorità emittente del token SAML | Gestisce la sessione tra la relying party SAML e Azure AD B2C. Esegue la disconnessione singola. | No | No |
NoopSSOSessionProvider | Any | Impedire a qualsiasi profilo tecnico di essere parte della sessione. | No | No |
Il diagramma seguente illustra i tipi di sessione usati da Azure AD B2C.
Riferimento a un provider di sessione
Per usare un provider di sessioni nel profilo tecnico:
Creare un profilo tecnico di gestione delle sessioni del appropriato. Si noti che lo starter pack di Azure AD B2C include i profili tecnici di gestione delle sessioni più comuni. È possibile fare riferimento a un profilo tecnico di gestione delle sessioni esistente, se applicabile.
Il frammento XML seguente mostra il profilo tecnico di gestione delle sessioni dello
SM-AAD
starter pack. Il tipo diDefaultSSOSessionProvider
specifica della sessione è .<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>
Fare riferimento al profilo tecnico di gestione delle sessioni all'interno del profilo tecnico. In questo modo, è possibile controllare il comportamento di tale profilo tecnico durante gli accessi successivi (SSO).
Per fare riferimento a un profilo tecnico di gestione delle sessioni dal profilo tecnico, aggiungere l'elemento
UseTechnicalProfileForSessionManagement
. L'esempio seguente illustra l'uso del profilo tecnico di gestione delleSM-AAD
sessioni. Passare all'IDReferenceId
del profilo tecnico di gestione della sessione.<TechnicalProfile Id="{Technical-profile-ID}"> ... <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> </TechnicalProfile>
Importante
Quando un profilo tecnico non fa riferimento ad alcun provider di gestione delle sessioni, viene applicato il provider di sessioni DefaultSSOSessionProvider , che può causare un comportamento imprevisto.
Nota
Durante un flusso di token di aggiornamento, i provider di gestione delle sessioni non vengono richiamati. Tutti i tentativi di emettere un nuovo token di accesso sono una copia delle attestazioni originali rilasciate.
Gestire le attestazioni di sessione
I profili tecnici di gestione delle sessioni controllano quali attestazioni possono essere lette, scritte o output durante l'esecuzione di criteri personalizzati.
All'interno del profilo tecnico di gestione delle sessioni, usare PersistedClaims
gli elementi e OutputClaims
per gestire le attestazioni.
- Attestazioni persistenti: attestazioni che possono essere scritte nel cookie di sessione.
- Affinché un'attestazione venga scritta nel cookie di sessione, deve far parte del contenitore di attestazioni corrente.
- Tutte le attestazioni scritte restituiscono automaticamente durante gli accessi successivi (Single Sign-On). Non è necessario specificare le attestazioni di output.
- Attestazioni di output: attestazioni aggiuntive che possono essere restituite nel contenitore di attestazioni durante gli accessi successivi (Single Sign-On). Poiché le attestazioni di output non vengono restituite dalla sessione, è necessario impostare un valore predefinito.
Gli elementi delle attestazioni persistenti e di output vengono illustrati nel frammento XML seguente:
<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>
I provider di gestione delle DefaultSSOSessionProvider
sessioni e ExternalLoginSSOSessionProvider
possono essere configurati per gestire le attestazioni, in modo che durante:
- Accesso aggiornato
- L'elemento
PersistedClaims
scriverà attestazioni nel cookie di sessione. Le attestazioni persistenti non possono essere riscritte.
- L'elemento
- Accessi successivi
- Ogni attestazione scritta nel cookie di sessione verrà restituita nel contenitore delle attestazioni, disponibile per essere usata nel passaggio di orchestrazione successivo.
- L'elemento
OutputClaims
restituirà attestazioni statiche nel contenitore delle attestazioni. Usare l'attributoDefaultValue
per impostare il valore dell'attestazione di output.
DefaultSSOSessionProvider
Il DefaultSSOSessionProvider
provider di sessioni può essere configurato per gestire le attestazioni durante gli accessi successivi (Single Sign-On) e consentire l'ignorato dei profili tecnici. Deve DefaultSSOSessionProvider
essere usato per rendere persistenti ed emettere attestazioni necessarie per i passaggi di orchestrazione successivi che non verranno altrimenti ottenuti durante gli accessi successivi (Single Sign-On). Ad esempio, attestazioni che potrebbero essere ottenute dalla lettura dell'oggetto utente dalla directory.
Il profilo tecnico seguente SM-AAD
è il tipo di provider di DefaultSSOSessionProvider
sessioni. Il SM-AAD
profilo tecnico è disponibile nel pacchetto di avvio dei criteri personalizzato.
<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>
Ad esempio, il profilo tecnico di gestione delle SM-AAD
sessioni usa il DefaultSSOSessionProvider
provider di sessione. Il comportamento si comporterà come segue quando applicato al SelfAsserted-LocalAccountSignin-Email
profilo tecnico dal pacchetto di avvio dei criteri personalizzato:
- Accesso aggiornato
signInName
verrà scritto nel cookie di sessione, perché il profilo tecnico di gestione della sessione (SM-AAD) è configurato consignInName
per essere salvato in modo permanente e il profilo tecnico che fa riferimento a SM-AAD contiene unOutputClaim
persignInName
. Questo comportamento è applicabile a tutte le attestazioni che soddisfano questo modello.
- Accessi successivi
- Il profilo tecnico viene ignorato e l'utente non visualizzerà la pagina di accesso.
- Il contenitore attestazioni conterrà il
signInName
valore del cookie di sessione, che è stato salvato in modo permanente al momento dell'accesso aggiornato e qualsiasi altra attestazione che soddisfa il modello da rendere persistente nel cookie di sessione. - Il profilo tecnico di gestione della sessione restituisce l'attestazione
objectIdFromSession
perchéOutput
le attestazioni del provider di sessione vengono elaborate durante gli accessi successivi (Single Sign-On). In questo caso, l'attestazioneobjectIdFromSession
presente nel contenitore attestazioni indica che le attestazioni dell'utente provengono dal cookie di sessione a causa dell'accesso Single Sign-On.
ExternalLoginSSOSessionProvider
Il ExternalLoginSSOSessionProvider
provider di sessioni viene usato per ignorare la schermata "selezione del provider di identità" e disconnettersi da un provider di identità federato. Viene in genere fatto riferimento in un profilo tecnico configurato per un provider di identità federato, ad esempio Facebook o Microsoft Entra ID.
- Accesso aggiornato
- L'elemento
PersistedClaims
scriverà attestazioni nel cookie di sessione. Le attestazioni persistenti non possono essere riscritte.
- L'elemento
- Accessi successivi
- Ogni attestazione scritta nel cookie di sessione verrà restituita nel contenitore attestazioni, disponibile per essere usata nel passaggio di orchestrazione successivo.
- L'elemento
OutputClaims
restituirà attestazioni statiche nel contenitore delle attestazioni. Usare l'attributoDefaultValue
per impostare il valore dell'attestazione. - Quando un profilo tecnico, che fa riferimento a un profilo tecnico di gestione delle sessioni, contiene un
OutputClaim
, che è stato salvato in modo permanente nel cookie di sessione, questo profilo tecnico verrà ignorato.
Il profilo tecnico seguente SM-SocialLogin
è il tipo di provider di ExternalLoginSSOSessionProvider
sessioni. Il SM-SocialLogin
profilo tecnico è disponibile nel pacchetto di avvio dei criteri personalizzato.
<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>
L'attestazione AlternativeSecurityId
viene generata quando un utente accede con un provider di identità esterno. Rappresentazione dell'identificatore univoco dell'utente del provider di identità esterno. L'attestazione AlternativeSecurityId
viene mantenuta in modo che nei percorsi single sign-on, il profilo dell'utente può essere letto dalla directory senza alcuna interazione con il provider di identità federato.
Per configurare il provider di sessioni esterne, aggiungere un riferimento a SM-SocialLogin
da profili tecnici OAuth1, OAuth2 o OpenID Connect . Ad esempio, Facebook-OAUTH
usa il profilo tecnico di gestione delle SM-SocialLogin
sessioni. Per altre informazioni, vedere il pacchetto di avvio dei criteri personalizzato.
<TechnicalProfile Id="Facebook-OAUTH">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
OAuthSSOSessionProvider
Il OAuthSSOSessionProvider
provider di sessioni viene usato per gestire le sessioni di Azure AD B2C tra la relying party OAuth2 o OpenId Connect e Azure AD B2C. Azure AD B2C supporta l'accesso Single Sign-Out, noto anche come Single Log-Out (SLO). Quando un utente si disconnette tramite l'endpoint di disconnesso di Azure AD B2C, Azure AD B2C cancellerà il cookie di sessione dell'utente dal browser. Tuttavia, l'utente potrebbe comunque accedere ad altre applicazioni che usano Azure AD B2C per l'autenticazione.
Questo tipo di provider di sessioni consente ad Azure AD B2C di tenere traccia di tutte le applicazioni OAuth2 o OpenId Connect a cui l'utente ha eseguito l'accesso. Durante la disconnesscenza di un'applicazione, Azure AD B2C tenterà di chiamare gli logout
endpoint di tutte le altre applicazioni registrate note. Questa funzionalità è incorporata nel provider di sessioni. Non sono disponibili attestazioni di output o persistenti da configurare. Il profilo tecnico seguente SM-jwt-issuer
è il tipo di provider di OAuthSSOSessionProvider
sessioni.
<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>
Il SM-jwt-issuer
profilo tecnico viene fatto riferimento dal JwtIssuer
profilo tecnico:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
Il SamlSSOSessionProvider
provider di sessioni viene usato per gestire il comportamento della sessione con provider di identità SAML federati o applicazioni relying party SAML e Azure AD B2C.
Gestione delle sessioni del provider di identità SAML
Quando si fa riferimento a un SamlSSOSessionProvider
provider di sessione da una sessione del provider di identità SAML, è RegisterServiceProviders
necessario impostare su false
.
Il profilo tecnico seguente SM-Saml-idp
è il tipo di provider di SamlSSOSessionProvider
sessioni:
<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>
Per usare il profilo tecnico di gestione delle SM-Saml-idp
sessioni, aggiungere un riferimento al profilo tecnico del provider di identità SAML. Ad esempio, il provider di Contoso-SAML2
identità SAML DI AD-FS usa il profilo tecnico di gestione delle SM-Saml-idp
sessioni.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
Gestione delle sessioni del provider di servizi SAML
Quando si fa riferimento a un SamlSSOSessionProvider
provider di sessioni per gestire una sessione della relying party SAML, è RegisterServiceProviders
necessario impostare su true
. La disconnessazione della sessione SAML richiede il completamento di SessionIndex
e NameID
.
Il profilo tecnico seguente SM-Saml-issuer
è il tipo di provider di SamlSSOSessionProvider
sessioni:
<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>
Per usare il profilo tecnico di gestione delle SM-Saml-issuer
sessioni, aggiungere un riferimento al profilo tecnico dell'autorità emittente del token SAML. Ad esempio, il Saml2AssertionIssuer
profilo tecnico usa il profilo tecnico di gestione delle SM-Saml-issuer
sessioni.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Metadati UFX
Attributo | Obbligatorio | Descrizione |
---|---|---|
IncludeSessionIndex | No | Attualmente non usato; può essere ignorato. |
RegisterServiceProviders | No | Indica che il provider deve registrare tutti i provider di servizi SAML a cui sia stata rilasciata un'asserzione. I valori possibili sono: true (impostazione predefinita) o false . |
NoopSSOSessionProvider
Il NoopSSOSessionProvider
provider di sessioni viene usato per eliminare il comportamento dell'accesso Single Sign-On. I profili tecnici che usano questo tipo di provider di sessioni verranno sempre elaborati, anche quando l'utente ha una sessione attiva. Questo tipo di provider di sessioni può essere utile per forzare l'esecuzione sempre di profili tecnici specifici, ad esempio:
- Trasformazione delle attestazioni: per creare o trasformare le attestazioni usate in un secondo momento per determinare quali passaggi di orchestrazione elaborare o ignorare.
- Restful : recuperare i dati aggiornati da un servizio restful ogni volta che viene eseguito il criterio. È anche possibile chiamare restful per la registrazione estesa e il controllo.
- Autocertificata : forzare l'utente a fornire dati ogni volta che viene eseguito il criterio. Ad esempio, verificare i messaggi di posta elettronica con codice pass-time o chiedere il consenso dell'utente.
- Phonefactor : forzare l'utente a eseguire l'autenticazione a più fattori come parte di un "'autenticazione passo avanti" anche durante gli accessi successivi (Single Sign-On).
Questo tipo di provider di sessioni non rende persistenti le attestazioni per il cookie di sessione dell'utente. Il profilo tecnico seguente SM-Noop
è il tipo di provider di NoopSSOSessionProvider
sessioni. Il SM-Noop
profilo tecnico è disponibile nel pacchetto di avvio dei criteri personalizzato.
<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>
Per eliminare il comportamento dell'accesso Single Sign-On di un profilo tecnico, aggiungere un riferimento al SM-Noop
profilo tecnico. Ad esempio, AAD-Common
usa il profilo tecnico di gestione delle SM-Noop
sessioni. Per altre informazioni, vedere il pacchetto di avvio dei criteri personalizzato.
<TechnicalProfile Id="AAD-Common">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Passaggi successivi
Informazioni su come configurare il comportamento della sessione.