Configurare i token 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.
Questo articolo illustra come configurare la durata e la compatibilità di un token in Azure Active Directory B2C (Azure AD B2C).
Prerequisiti
- Creare un flusso utente in modo che gli utenti possano iscriversi e accedere all'applicazione.
- Registrare un'applicazione Web.
- Completare i passaggi descritti in Introduzione ai criteri personalizzati in Active Directory B2C
- Registrare un'applicazione Web.
Comportamento della durata dei token
È possibile configurare la durata del token, tra cui:
- Durata dei token di accesso e ID (minuti): durata del token di connessione OAuth 2.0 e dei token ID. Il valore predefinito è 60 minuti (1 ora). Il valore minimo (inclusivo) è 5 minuti. Il valore massimo (inclusivo) è 1.440 minuti (24 ore).
- Durata del token di aggiornamento (giorni): periodo di tempo massimo prima del quale è possibile usare un token di aggiornamento per acquisire un nuovo token di accesso, se all'applicazione è stato concesso l'ambito
offline_access
. Il valore predefinito è 14 giorni. Il valore minimo (inclusivo) è un giorno. Massimo (inclusi) 90 giorni. - Durata della finestra temporale scorrevole del token di aggiornamento: tipo di finestra temporale scorrevole del token di aggiornamento.
Bounded
indica che il token di aggiornamento può essere esteso come specificato nella durata (giorni).No expiry
indica che la durata della finestra temporale scorrevole del token di aggiornamento non scade mai. - Durata (giorni): dopo questo periodo di tempo l'utente viene costretto a ripetere l'autenticazione, indipendentemente dal periodo di validità del token di aggiornamento più recente acquisito dall'applicazione. Il valore deve essere maggiore o uguale al valore di durata del token di aggiornamento.
Il diagramma seguente mostra il comportamento di durata della durata della finestra temporale scorrevole del token di aggiornamento.
Nota
Le applicazioni a pagina singola che usano il flusso del codice di autorizzazione con PKCE hanno sempre una durata del token di aggiornamento di 24 ore, mentre le app per dispositivi mobili, le app desktop e le app Web non riscontrano questa limitazione. Altre informazioni sulle implicazioni di sicurezza dei token di aggiornamento nel browser.
Configurare la durata dei token
Per configurare la durata del token del flusso utente:
- Accedi al portale di Azure.
- 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.
- Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.
- Selezionare Flussi utente (criteri).
- Aprire il flusso utente creato in precedenza.
- Selezionare Proprietà.
- In Durata token modificare le proprietà in base alle esigenze dell'applicazione.
- Seleziona Salva.
Per modificare le impostazioni sulla compatibilità dei token, impostare i metadati del profilo tecnico dell'autorità di certificazione token nell'estensione o il file relying party del criterio che si vuole influire. Il profilo tecnico dell'autorità di certificazione del token è simile all'esempio seguente:
<ClaimsProviders>
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="JwtIssuer">
<Metadata>
<Item Key="token_lifetime_secs">3600</Item>
<Item Key="id_token_lifetime_secs">3600</Item>
<Item Key="refresh_token_lifetime_secs">1209600</Item>
<Item Key="rolling_refresh_token_lifetime_secs">7776000</Item>
<!--<Item Key="allow_infinite_rolling_refresh_token">true</Item>-->
<Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
<Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>
Nell'esempio precedente vengono impostati i valori seguenti.
- token_lifetime_secs - Durata dei token di accesso (secondi). Il valore predefinito è 3.600 (1 ora). Il minimo è 300 (5 minuti). Il valore massimo è 86.400 (24 ore).
- id_token_lifetime_secs - Durata dei token ID (secondi). Il valore predefinito è 3.600 (1 ora). Il minimo è 300 (5 minuti). Il valore massimo è 86.400 (24 ore).
- refresh_token_lifetime_secs Durata del token di aggiornamento (secondi). Il valore predefinito è 1.209.600 (14 giorni). Il valore minimo è 86.400 (24 ore). Il valore massimo è 7.776.000 (90 giorni).
- rolling_refresh_token_lifetime_secs : durata della finestra temporale temporale scorrevole del token di aggiornamento (secondi). Il valore predefinito è 7.776.000 (90 giorni). Il valore minimo è 86.400 (24 ore). Il valore massimo è 31.536.000 (365 giorni). Se non si vuole applicare una durata temporale scorrevole, impostare il valore di
allow_infinite_rolling_refresh_token
sutrue
. - allow_infinite_rolling_refresh_token : la durata della finestra temporale temporale scorrevole del token di aggiornamento non scade mai.
Impostazioni di compatibilità dei token
È possibile configurare la compatibilità dei token, tra cui:
- Attestazione autorità di certificazione (iss): formato dell'autorità emittente del token ID e di accesso.
- Attestazione oggetto (sub): entità su cui il token asserisce informazioni, ad esempio l'utente di un'applicazione. Questo valore non è modificabile e non può essere riassegnato o riutilizzato. Può essere usato per eseguire controlli di autorizzazione in modo sicuro, ad esempio quando il token viene usato per accedere a una risorsa. Per impostazione predefinita, l'attestazione dell'oggetto viene popolata con l'ID oggetto dell'utente nella directory.
- Attestazione che rappresenta il flusso utente: questa attestazione identifica il flusso utente eseguito. I valori possibili sono:
tfp
(impostazione predefinita) oacr
.
Per configurare le impostazioni di compatibilità del flusso utente:
- Selezionare Flussi utente (criteri).
- Aprire il flusso utente creato in precedenza.
- Selezionare Proprietà.
- In Impostazioni di compatibilità dei token modificare le proprietà in base alle esigenze dell'applicazione.
- Seleziona Salva.
Per modificare le impostazioni sulla compatibilità dei token, impostare i metadati del profilo tecnico dell'autorità di certificazione token nell'estensione o il file relying party dei criteri da aggiornare. Il profilo tecnico dell'autorità di certificazione del token è simile all'esempio seguente:
<ClaimsProviders>
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="JwtIssuer">
<Metadata>
...
<Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
<Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>
Attestazione autorità di certificazione (iss): l'attestazione dell'autorità di certificazione (iss) viene impostata con l'elemento dei metadati IssuanceClaimPattern. I valori applicabili sono
AuthorityAndTenantGuid
eAuthorityWithTfp
.Impostazione dell'attestazione che rappresenta l'ID criteri: per impostare questo valore sono disponibili le opzioni
TFP
(criteri del framework attendibilità) eACR
(riferimento al contesto di autenticazione). Il valore consigliato èTFP
. Impostare AuthenticationContextReferenceClaimPattern con il valoreNone
.Nell'elemento ClaimsSchema, aggiungere l'elemento seguente:
<ClaimType Id="trustFrameworkPolicy"> <DisplayName>Trust framework policy name</DisplayName> <DataType>string</DataType> </ClaimType>
Nei criteri della relying party aggiungere l'attestazione di output seguente nell'elemento OutputClaims :
<OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp" />
Per ACR, rimuovere l'elemento AuthenticationContextReferenceClaimPattern.
Attestazione soggetto (sub): l'impostazione predefinita di questa opzione è ObjectID. Per modificare l'impostazione in
Not Supported
, sostituire questa riga:<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
con questa riga:
<OutputClaim ClaimTypeReferenceId="sub" />
Fornire attestazioni facoltative all'app
Le attestazioni dell'applicazione sono valori restituiti all'applicazione. Aggiornare il flusso utente in modo da contenere le attestazioni desiderate.
- Selezionare Flussi utente (criteri).
- Aprire il flusso utente creato in precedenza.
- Selezionare Attestazioni dell'applicazione.
- Scegliere le attestazioni e gli attributi da inviare all'applicazione.
- Seleziona Salva.
Le attestazioni di output del profilo tecnico dei criteri relying party sono valori restituiti a un'applicazione. L'aggiunta di attestazioni di output emetterà le attestazioni nel token dopo un percorso utente riuscito e verrà inviata all'applicazione. Modificare l'elemento del profilo tecnico all'interno della sezione relying party per aggiungere le attestazioni desiderate come attestazione di output.
- Aprire il file dei criteri personalizzati. Ad esempio, SignUpOrSignin.xml.
- Trovare l'elemento OutputClaims. Aggiungere l'outputClaim che si vuole includere nel token.
- Impostare gli attributi dell'attestazione di output.
Nell'esempio seguente viene aggiunta l'attestazione accountBalance
. L'attestazione accountBalance viene inviata all'applicazione come saldo.
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<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}" />
<!--Add the optional claims here-->
<OutputClaim ClaimTypeReferenceId="accountBalance" DefaultValue="" PartnerClaimType="balance" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
L'elemento OutputClaim contiene gli attributi seguenti:
- ClaimTypeReferenceId : identificatore di un tipo di attestazione già definito nella sezione ClaimsSchema nel file di criteri o nel file dei criteri padre.
- PartnerClaimType : consente di modificare il nome dell'attestazione nel token.
- DefaultValue : valore predefinito. È anche possibile impostare il valore predefinito su un resolver di attestazioni, ad esempio l'ID tenant.
- AlwaysUseDefaultValue : forzare l'uso del valore predefinito.
Durata del codice di autorizzazione
Quando si usa il flusso del codice di autorizzazione OAuth 2.0, l'app può usare il codice di autorizzazione per richiedere un token di accesso per una risorsa di destinazione. I codici di autorizzazione sono di breve durata che scadono dopo circa 10 minuti. Non è possibile configurare la durata del codice di autorizzazione. Assicurarsi che l'applicazione riscatti i codici di autorizzazione entro 10 minuti.
Passaggi successivi
- Altre informazioni su come richiedere token di accesso.
- Informazioni su come creare resilienza tramite le procedure consigliate per gli sviluppatori.