Configurare il comportamento della sessione in Azure Active Directory B2C

Prima di iniziare, usare il selettore Scegli un tipo di criterio per scegliere il tipo di criterio che si sta configurando. Azure Active Directory B2C offre due metodi per definire il modo in cui gli utenti interagiscono con le applicazioni: tramite flussi utente predefiniti o tramite criteri personalizzati completamente configurabili. I passaggi necessari in questo articolo sono diversi per ogni metodo.

L'accesso Single Sign-On (SSO) aggiunge sicurezza e praticità quando gli utenti accedono tra applicazioni in Azure Active Directory B2C (Azure AD B2C). Questo articolo descrive i metodi di Single Sign-On usati in Azure AD B2C e consente di scegliere il metodo SSO più appropriato durante la configurazione dei criteri.

Con l'accesso Single Sign-On, gli utenti accedono una sola volta con un singolo account e ottengono l'accesso a più applicazioni. L'applicazione può essere un'applicazione Web, per dispositivi mobili o a pagina singola, indipendentemente dalla piattaforma o dal nome di dominio.

Quando l'utente accede inizialmente a un'applicazione, Azure AD B2C mantiene una sessione basata su cookie. Dopo le richieste di autenticazione successive, Azure AD B2C legge e convalida la sessione basata su cookie e rilascia un token di accesso senza chiedere all'utente di eseguire di nuovo l'accesso. Se la sessione basata su cookie scade o diventa non valida, all'utente viene richiesto di eseguire di nuovo l'accesso.

Prerequisiti

Panoramica della sessione di Azure AD B2C

L'integrazione con Azure AD B2C prevede tre tipi di sessioni SSO:

  • Azure AD B2C - Sessione gestita da Azure AD B2C
  • Provider di identità federato: sessione gestita dal provider di identità, ad esempio Facebook, Salesforce o account Microsoft
  • Applicazione : sessione gestita dall'applicazione Web, per dispositivi mobili o a pagina singola

SSO session

Sessione di Azure AD B2C

Quando un utente esegue correttamente l'autenticazione con un account locale o di social networking, Azure AD B2C archivia una sessione basata su cookie nel browser dell'utente. Il cookie viene archiviato nel nome di dominio del tenant di Azure AD B2C, ad esempio https://contoso.b2clogin.com.

Quando un utente accede con un account federato, viene avviato un intervallo di tempo di sessione, noto anche come durata (TTL). Se l'utente accede alla stessa app o a un'altra all'interno di questo TTL, Azure AD B2C tenta di acquisire un nuovo token di accesso dal provider di identità federato. Se la sessione del provider di identità federato è scaduta o non è valida, il provider di identità federato richiede all'utente le credenziali. Se la sessione dell'utente è in corso o se l'utente ha eseguito l'accesso usando un account locale anziché un account federato, Azure AD B2C autorizza l'utente e impedisce ulteriori richieste.

È possibile configurare il comportamento della sessione, tra cui il TTL della sessione e il modo in cui Azure AD B2C condivide la sessione tra criteri e applicazioni.

Sessione provider di identità federata

Un provider di identità di social networking o aziendale gestisce la propria sessione. Il cookie viene archiviato con il nome di dominio del provider di identità, ad esempio https://login.salesforce.com. Azure AD B2C non controlla la sessione del provider di identità federato. Il comportamento della sessione viene invece determinato dal provider di identità federato.

Prendi in considerazione lo scenario seguente:

  1. Un utente accede a Facebook per controllare il feed.
  2. Successivamente, l'utente apre l'applicazione e avvia il processo di accesso. L'applicazione reindirizza l'utente ad Azure AD B2C per completare il processo di accesso.
  3. Nella pagina di iscrizione o accesso di Azure AD B2C l'utente sceglie di accedere con il proprio account Facebook. L'utente viene reindirizzato a Facebook. Se è presente una sessione attiva in Facebook, all'utente non viene richiesto di fornire le proprie credenziali e viene immediatamente reindirizzato ad Azure AD B2C con un token Facebook.

Sessione dell'applicazione

Un token di accesso OAuth2, un token ID o un token SAML può proteggere un'applicazione Web, per dispositivi mobili o a pagina singola. Quando un utente tenta di accedere a una risorsa protetta nell'app, l'app verifica se è presente una sessione attiva sul lato applicazione. Se una sessione dell'app non esiste o la sessione scade, l'app indirizza l'utente alla pagina di accesso di Azure AD B2C.

La sessione dell'applicazione può essere una sessione basata su cookie archiviata nel nome di dominio dell'applicazione, ad esempio https://contoso.com. Le applicazioni per dispositivi mobili potrebbero archiviare la sessione in modo diverso, ma usando un approccio simile.

Configurare il comportamento della sessione di Azure AD B2C

È possibile configurare il comportamento della sessione di Azure AD B2C, tra cui:

  • Durata della sessione dell'app Web (minuti): periodo di tempo in cui il cookie di sessione di Azure AD B2C viene archiviato nel browser dell'utente dopo l'autenticazione completata. È possibile impostare la durata della sessione fino a 24 ore.

  • Timeout della sessione dell'app Web - Indica come una sessione viene estesa dall'impostazione della durata della sessione o dall'impostazione Mantieni l'accesso (Servizio di gestione delle chiavi I).

    • Sequenza : indica che la sessione viene estesa ogni volta che l'utente esegue un'autenticazione basata su cookie (impostazione predefinita).
    • Absolute - Indica che l'utente è costretto a ripetere l'autenticazione dopo il periodo di tempo specificato.
  • Configurazione dell'accesso Single Sign-On: la sessione di Azure AD B2C può essere configurata con gli ambiti seguenti:

    • Tenant: questa è l'impostazione predefinita. L'uso di questa impostazione consente a più applicazioni e flussi utente del tenant di B2C di condividere la stessa sessione utente. Ad esempio, una volta che un utente accede a un'applicazione, l'utente può accedere facilmente a un altro al momento dell'accesso.
    • Applicazione: questa impostazione consente di mantenere una sessione utente esclusivamente per un'applicazione, indipendentemente dalle altre applicazioni. Ad esempio, è possibile usare questa impostazione se si vuole che l'utente possa accedere a Contoso Pharmacy indipendentemente dal fatto che l'utente abbia già eseguito l'accesso a Contoso Groceries.
    • Criterio: questa impostazione consente di mantenere una sessione utente esclusivamente per un flusso utente, indipendentemente dalle applicazioni che lo usano. Ad esempio, Azure AD B2C concede all'utente l'accesso a parti di sicurezza più elevate di più applicazioni se l'utente ha già eseguito l'accesso e ha completato un passaggio di autenticazione a più fattori (MFA). Questo accesso continua finché la sessione associata al flusso utente rimane attiva.
    • Soppressa : questa impostazione impone all'utente di eseguire l'intero flusso utente a ogni esecuzione dei criteri.

Configurare il flusso utente

Per configurare il comportamento della sessione nel flusso utente, seguire questa procedura:

  1. Accedi al portale di Azure.
  2. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.
  3. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.
  4. Selezionare Flussi utente.
  5. Aprire il flusso utente creato in precedenza.
  6. Selezionare Proprietà.
  7. Configurare la durata della sessione dell'app Web (minuti), il timeout della sessione dell'app Web, la configurazione single sign-on e Richiedi token ID nelle richieste di disconnessione in base alle esigenze.
  8. Fare clic su Salva.

Configurare i criteri personalizzati

Per configurare il comportamento della sessione nei criteri personalizzati, seguire questa procedura:

  1. Aprire il file relying party (RP), ad esempio SignUpOrSignin.xml

  2. Se non esiste già, aggiungere l'elemento seguente <UserJourneyBehaviors> all'elemento <RelyingParty> . Deve trovarsi immediatamente dopo <DefaultUserJourney ReferenceId="UserJourney Id"/>.

    <UserJourneyBehaviors>
      <SingleSignOn Scope="Application" />
      <SessionExpiryType>Absolute</SessionExpiryType>
      <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
    </UserJourneyBehaviors>
    

    Dopo aver aggiunto gli elementi del comportamento del percorso utente, l'elemento RelyingParty dovrebbe essere simile all'esempio seguente:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <UserJourneyBehaviors>
        <SingleSignOn Scope="Application" />
        <SessionExpiryType>Absolute</SessionExpiryType>
        <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
      </UserJourneyBehaviors>
      <TechnicalProfile Id="PolicyProfile">
        <DisplayName>PolicyProfile</DisplayName>
        <Protocol Name="OpenIdConnect" />
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="displayName" />
          <OutputClaim ClaimTypeReferenceId="givenName" />
          ...
        </OutputClaims>
        <SubjectNamingInfo ClaimType="sub" />
      </TechnicalProfile>
    </RelyingParty>
    
  3. Modificare il valore dell'attributo Scope in uno dei possibili valori: Suppressed, Tenant, Applicationo Policy. Per altre informazioni, vedere l'articolo di riferimento relyingParty .

  4. Impostare l'elemento SessionExpiryType su Rolling o Absolute. Per altre informazioni, vedere l'articolo di riferimento relyingParty .

  5. Impostare l'elemento SessionExpiryInSeconds su un valore numerico compreso tra 900 secondi (15 minuti) e 86.400 secondi (24 ore). Per altre informazioni, vedere l'articolo di riferimento relyingParty .

Abilita Mantieni l'accesso (Servizio di gestione delle chiavi I)

È possibile abilitare la funzionalità Servizio di gestione delle chiavi I per gli utenti delle applicazioni Web e native che dispongono di account locali nella directory di Azure AD B2C. Quando si abilita la funzionalità, gli utenti possono scegliere di rimanere connessi in modo che la sessione rimanga attiva dopo la chiusura del browser. La sessione viene mantenuta impostando un cookie permanente. Gli utenti che selezionano Servizio di gestione delle chiavi I possono riaprire il browser senza che venga richiesto di immettere nuovamente il nome utente e la password. Questo accesso (cookie persistente) viene revocato quando un utente si disconnette. Per altre informazioni, vedere la demo live.

Example sign-up sign-in page showing a Keep me signed in checkbox

Servizio di gestione delle chiavi I è configurabile a livello di flusso utente singolo. Prima di abilitare Servizio di gestione delle chiavi I per i flussi utente, considerare quanto segue:

  • Servizio di gestione delle chiavi I è supportato solo per Versioni consigliate di iscrizione e accesso (SUSI), accesso e modifica dei profili dei flussi utente. Se si dispone attualmente di versioni standard (legacy) o legacy - v2 di questi flussi utente e si vuole abilitare Servizio di gestione delle chiavi I, è necessario creare nuove versioni consigliate di questi flussi utente.
  • Servizio di gestione delle chiavi I non è supportato con la reimpostazione della password o i flussi utente di iscrizione.
  • Se si vuole abilitare Servizio di gestione delle chiavi I per tutte le applicazioni nel tenant, è consigliabile abilitare Servizio di gestione delle chiavi I per tutti i flussi utente nel tenant. Poiché un utente può essere presentato con più criteri durante una sessione, è possibile che si verifichi uno che non abbia Servizio di gestione delle chiavi I abilitato, che rimuoverebbe il cookie Servizio di gestione delle chiavi I dalla sessione.
  • Servizio di gestione delle chiavi I non deve essere abilitato nei computer pubblici.

Configurare Servizio di gestione delle chiavi I per un flusso utente

Per abilitare Servizio di gestione delle chiavi I per il flusso utente:

  1. Accedi al portale di Azure.

  2. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.

  3. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.

  4. Selezionare Flussi utente (criteri).

  5. Aprire il flusso utente creato in precedenza.

  6. Selezionare Proprietà.

  7. In Comportamento sessione selezionare Abilita mantieni la sessione di accesso. Accanto a Mantieni la sessione di accesso (giorni) immettere un valore compreso tra 1 e 90 per specificare il numero di giorni in cui una sessione può rimanere aperta.

    Enable keep me signed in session

Gli utenti non devono abilitare questa opzione nei computer pubblici.

Configurare l'identificatore di pagina

Per abilitare Servizio di gestione delle chiavi I, impostare l'elemento definizione DataUri del contenuto sull'identificatoreunifiedssp di pagina e sulla versionedella pagina 1.1.0 o successiva.

  1. Aprire il file di estensione dei criteri, Ad esempio, SocialAndLocalAccounts/TrustFrameworkExtensions.xml. Questo file di estensione è uno dei file di criteri inclusi nel pacchetto di avvio dei criteri personalizzati, ottenuto nei prerequisiti, Introduzione ai criteri personalizzati.

  2. Cercare l'elemento BuildingBlocks. Se l'elemento non esiste, aggiungerlo.

  3. Aggiungere l'elemento ContentDefinitions all'elemento BuildingBlocks del criterio.

    I criteri personalizzati dovrebbero essere simili al frammento di codice seguente:

    <BuildingBlocks>
      <ContentDefinitions>
        <ContentDefinition Id="api.signuporsignin">
          <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0</DataUri>
        </ContentDefinition>
      </ContentDefinitions>
    </BuildingBlocks>
    

Aggiungere i metadati al profilo tecnico autocertivi

Per aggiungere la casella di controllo Servizio di gestione delle chiavi I alla pagina di iscrizione e accesso, impostare i setting.enableRememberMe metadati su true. Eseguire l'override dei profili tecnici SelfAsserted-LocalAccountSignin-Email nel file di estensione.

  1. Trovare l'elemento ClaimsProviders. Se l'elemento non esiste, aggiungerlo.

  2. Aggiungere il provider di attestazioni seguente all'elemento ClaimsProviders:

    <ClaimsProvider>
      <DisplayName>Local Account</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
          <Metadata>
            <Item Key="setting.enableRememberMe">True</Item>
          </Metadata>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Salvare il file delle estensioni.

Configurare un file relying party

Aggiornare il file della relying party (RP) che avvierà il percorso utente appena creato. Il keepAliveInDays parametro consente di configurare la durata del salvataggio permanente del cookie di sessione keep me signed in (Servizio di gestione delle chiavi I). Ad esempio, se si imposta il valore su 30, Servizio di gestione delle chiavi I cookie di sessione viene mantenuto per 30 giorni. L'intervallo per il valore è compreso tra 1 e 90 giorni. Se si imposta il valore su 0, la funzionalità KMSI viene disattivata.

  1. Aprire il file dei criteri personalizzati. Ad esempio, SignUpOrSignin.xml.

  2. Se non esiste già, aggiungere un <UserJourneyBehaviors> nodo figlio al <RelyingParty> nodo. Deve trovarsi immediatamente dopo <DefaultUserJourney ReferenceId="User journey Id" />, ad esempio : <DefaultUserJourney ReferenceId="SignUpOrSignIn" />.

  3. Aggiungere il nodo seguente come figlio dell'elemento <UserJourneyBehaviors>.

    <UserJourneyBehaviors>
      <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
      <SessionExpiryType>Absolute</SessionExpiryType>
      <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
    </UserJourneyBehaviors>
    

Si impostano sia KeepAliveInDays che SessionExpiryInSeconds in modo che durante un accesso, se un utente abilita Servizio di gestione delle chiavi I, viene usato KeepAliveInDays per impostare i cookie, altrimenti viene usato il valore specificato nel parametro SessionExpiryInSeconds. È consigliabile impostare il valore di SessionExpiryInSeconds su un breve periodo (1200 secondi), mentre il valore di KeepAliveInDays può essere impostato su un periodo relativamente lungo (30 giorni), come illustrato nell'esempio seguente:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <UserJourneyBehaviors>
    <SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
    <SessionExpiryType>Absolute</SessionExpiryType>
    <SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
  </UserJourneyBehaviors>
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
      <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

Disconnettersi

Quando si vuole disconnettere l'utente dall'applicazione, non è sufficiente cancellare i cookie dell'applicazione o terminare la sessione con l'utente. È necessario reindirizzare l'utente ad Azure AD B2C per disconnettersi. In caso contrario, l'utente potrebbe essere in grado di ripetere l'autenticazione alle applicazioni senza immettere nuovamente le credenziali.

Dopo una richiesta di disconnessione, Azure AD B2C:

  1. Invalida la sessione basata su cookie di Azure AD B2C.
  2. Tenta di disconnettersi dai provider di identità federati.
  1. Invalida la sessione basata su cookie di Azure AD B2C.
  2. Tenta di disconnettersi dai provider di identità federati:
    • OpenId Connessione: se l'endpoint di configurazione noto del provider di identità specifica un end_session_endpoint percorso. La richiesta di disconnessione non passa il id_token_hint parametro. Se il provider di identità federato richiede questo parametro, la richiesta di disconnessione non riesce.
    • OAuth2: se i metadati del provider di identità contengono il end_session_endpoint percorso.
    • SAML: se i metadati del provider di identità contengono il SingleLogoutService percorso.
  3. Facoltativamente, disconnettersi da altre applicazioni. Per altre informazioni, vedere la sezione Single Sign-Out .

Nota

È possibile disabilitare la disconnessa dai provider di identità federati impostando i metadati SingleLogoutEnabled del profilo tecnico del provider di identità su false.

La disconnessa cancella lo stato dell'accesso Single Sign-On dell'utente con Azure AD B2C, ma potrebbe non disconnettere l'utente dalla sessione del provider di identità social. Se l'utente seleziona lo stesso provider di identità durante un accesso successivo, potrebbe ripetere l'autenticazione senza immettere le credenziali. Se un utente vuole disconnettersi dall'applicazione, non significa necessariamente che voglia disconnettersi dal proprio account Facebook. Tuttavia, se vengono usati account locali, la sessione dell'utente termina correttamente.

Single Sign-Out

Quando si reindirizza l'utente all'endpoint di disconnessione di Azure AD B2C (per OAuth2 e OpenID Connessione) o si invia (LogoutRequestper SAML), Azure AD B2C cancella la sessione dell'utente dal browser. Tuttavia, l'utente potrebbe comunque accedere ad altre applicazioni che usano Azure AD B2C per l'autenticazione. Per disconnettere l'utente da tutte le applicazioni, che hanno una sessione attiva, Azure AD B2C supporta l'accesso Single Sign-Out, noto anche come Single Log-Out (SLO).

Durante la disconnessione, Azure AD B2C invia simultaneamente una richiesta HTTP all'URL di disconnessione registrato di tutte le applicazioni a cui l'utente ha eseguito l'accesso.

Configurare i criteri personalizzati

Per supportare l'accesso Single Sign-Out, i profili tecnici dell'autorità emittente di token per JWT e SAML devono specificare:

  • Nome del protocollo, ad esempio <Protocol Name="OpenIdConnect" />
  • Riferimento al profilo tecnico della sessione, ad esempio UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />.

L'esempio seguente illustra le autorità emittenti di token JWT e SAML con single sign-out:

<ClaimsProvider>
  <DisplayName>Local Account SignIn</DisplayName>
  <TechnicalProfiles>
    <!-- JWT Token Issuer -->
    <TechnicalProfile Id="JwtIssuer">
      <DisplayName>JWT token Issuer</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputTokenFormat>JWT</OutputTokenFormat>
      ...    
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
    </TechnicalProfile>

    <!-- Session management technical profile for OIDC based tokens -->
    <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>

    <!--SAML token issuer-->
    <TechnicalProfile Id="Saml2AssertionIssuer">
      <DisplayName>SAML token issuer</DisplayName>
      <Protocol Name="SAML2" />
      <OutputTokenFormat>SAML2</OutputTokenFormat>
      ...
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
    </TechnicalProfile>

    <!-- Session management technical profile for SAML based tokens -->
    <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>
  </TechnicalProfiles>
</ClaimsProvider>

Configurare l'applicazione

Per consentire a un'applicazione di partecipare all'accesso Single Sign-Out:

  • Per i provider di servizi SAML, configurare l'applicazione con il percorso SingleLogoutService nel documento di metadati SAML. È anche possibile configurare la registrazione logoutUrldell'app. Per altre informazioni, vedere Impostare l'URL di disconnessione.
  • Per le applicazioni OpenID Connessione o OAuth2, impostare l'attributo logoutUrl del manifesto della registrazione dell'app. Per configurare l'URL di disconnessione:
    1. Nel menu di Azure AD B2C selezionare Registrazioni app.
    2. Selezionare la registrazione dell'applicazione.
    3. In Gestisci selezionare Autenticazione.
    4. Nell'URL di disconnessione del canale anteriore configurare l'URL di disconnessione.

Gestione delle richieste di disconnessione Single Sign-Out

Quando Azure AD B2C riceve la richiesta di disconnessione, usa un iframe HTML front-channel per inviare una richiesta HTTP all'URL di disconnessione registrato di ogni applicazione partecipante a cui l'utente ha eseguito l'accesso. Si noti che l'applicazione che attiva la richiesta di disconnessione ottiene questo messaggio di disconnessione. Le applicazioni devono rispondere alla richiesta di disconnessione cancellando la sessione dell'applicazione che identifica l'utente.

  • Per le applicazioni OpenID Connessione e OAuth2, Azure AD B2C invia una richiesta HTTP GET all'URL di disconnessione registrato.
  • Per le applicazioni SAML, Azure AD B2C invia una richiesta di disconnessione SAML all'URL di disconnessione registrato.

Quando Azure AD B2C invia una notifica a tutte le applicazioni relative alla disconnessità, procede con una delle operazioni seguenti:

  • Per le applicazioni OpenID Connessione o OAuth2, reindirizza l'utente all'oggetto richiestopost_logout_redirect_uri, incluso il parametro (facoltativo) state specificato nella richiesta iniziale. Ad esempio https://contoso.com/logout?state=foo.
  • Per le applicazioni SAML, invia una risposta di disconnessione SAML tramite HTTP POST all'applicazione che inizialmente ha inviato la richiesta di disconnessione.

Proteggere il reindirizzamento della disconnessione

Dopo la disconnessione, l'utente viene reindirizzato all'URI specificato nel post_logout_redirect_uri parametro, indipendentemente dagli URL di risposta specificati per l'applicazione. Tuttavia, se viene passato un valore valido id_token_hint e l'opzione Richiedi token ID nelle richieste di disconnessione è attivata, Azure AD B2C verifica che il valore di post_logout_redirect_uri corrisponda a uno degli URI di reindirizzamento configurati dell'applicazione prima di eseguire il reindirizzamento. Se non è stato configurato alcun URL di risposta corrispondente per l'applicazione, viene visualizzato un messaggio di errore e l'utente non viene reindirizzato.

Per richiedere un token ID nelle richieste di disconnessione:

  1. Accedi al portale di Azure.
  2. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.
  3. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.
  4. Selezionare Flussi utente.
  5. Aprire il flusso utente creato in precedenza.
  6. Selezionare Proprietà.
  7. Abilitare richiedi token ID nelle richieste di disconnessione.

Per richiedere un token ID nelle richieste di disconnessione, aggiungere un elemento UserJourneyBehaviors all'interno dell'elemento RelyingParty . Impostare quindi l'elemento EnforceIdTokenHintOnLogout dell'elemento SingleSignOn su true. Per altre informazioni, vedere la demo live. L'elemento UserJourneyBehaviors dovrebbe essere simile all'esempio seguente:

<UserJourneyBehaviors>
  <SingleSignOn Scope="Tenant" EnforceIdTokenHintOnLogout="true"/>
</UserJourneyBehaviors>

Per configurare l'URL di disconnessione dell'applicazione:

  1. Selezionare Registrazioni app e quindi selezionare l'applicazione.
  2. Seleziona Autenticazione.
  3. Nella casella di testo Logout URL (URL disconnessione) digitare l'URI di reindirizzamento post disconnessione e quindi selezionare Salva.

Passaggi successivi