Definire un profilo tecnico per un'autorità di certificazione del token JWT nei criteri personalizzati di Azure Active Directory B2C
Nota
In Azure Active Directory B2C i criteri personalizzati sono stati progettati principalmente per far fronte a scenari complessi. Per la maggior parte degli scenari, è consigliabile usare i flussi utente predefiniti. In caso contrario, vedere Introduzione ai criteri personalizzati in Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) rilascia tipi diversi di token di sicurezza durante l'elaborazione di ogni flusso di autenticazione. Un profilo tecnico per un'autorità di certificazione del token JWT emette un token JWT che viene restituito all'applicazione basata su attestazioni. In genere questo profilo tecnico è l'ultimo passaggio di orchestrazione nel percorso utente.
Protocollo
L'attributo Nome dell'elemento Protocollo deve essere impostato su OpenIdConnect
. Impostare l'elemento OutputTokenFormat su JWT
.
Nell'esempio seguente viene illustrato un profilo tecnico per JwtIssuer
:
<TechnicalProfile Id="JwtIssuer">
<DisplayName>JWT Issuer</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputTokenFormat>JWT</OutputTokenFormat>
<Metadata>
<Item Key="client_id">{service:te}</Item>
<Item Key="issuer_refresh_token_user_identity_claim_type">objectId</Item>
<Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
<Key Id="issuer_refresh_token_key" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer" />
</CryptographicKeys>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
Input, output e attestazioni persistenti
Gli elementi InputClaims, OutputClaims e PersistClaims sono vuoti o assenti. Anche gli elementi InutputClaimsTransformations e OutputClaimsTransformations sono assenti.
Metadati UFX
Attributo | Obbligatorio | Descrizione |
---|---|---|
issuer_refresh_token_user_identity_claim_type | Sì | L'attestazione da usare come attestazione dell'identità dell'utente all'interno dei codici di autorizzazione OAuth2 e dei token di aggiornamento. Per impostazione predefinita, è necessario impostare su objectId , a meno che non si specifichi un tipo di attestazione SubjectNamingInfo diverso. |
SendTokenResponseBodyWithJsonNumbers | No | Sempre impostato su true . Per il formato legacy in cui i valori numerici vengono forniti sotto forma di stringhe anziché di numeri JSON, impostare su false . Questo attributo è necessario per i client che hanno acquisito una dipendenza su un'implementazione precedente che ha restituito tali proprietà sotto forma di stringhe. |
token_lifetime_secs | No | Durata del token di accesso. La durata del token di connessione OAuth 2.0 usato per ottenere l'accesso a una risorsa protetta. Il valore predefinito è 3.600 secondi (1 ora). Il valore minimo (inclusivo) è 300 secondi (5 minuti). Il massimo valore (inclusivo) è 86.400 secondi (24 ore). |
id_token_lifetime_secs | No | Durate del token ID. Il valore predefinito è 3.600 secondi (1 ora). Il valore minimo (inclusivo) è 300 secondi (5 minuti). Il massimo valore (inclusivo) è 86.400 secondi (24 ore). |
refresh_token_lifetime_secs | No | Durata del token di aggiornamento. Il periodo di tempo massimo prima del quale un token di aggiornamento può essere usato per acquisire un nuovo token di accesso, nel caso in cui all'applicazione fosse stato concesso l'ambito offline_access. Il valore predefinito è 120.9600 secondi (14 giorni). Il massimo valore (inclusivo) è 86.400 secondi (24 ore). Il massimo valore (inclusivo) è 7.776.000 secondi (90 giorni). |
rolling_refresh_token_lifetime_secs | No | Durata della finestra temporale scorrevole del token di aggiornamento. Allo scadere di questo periodo di tempo, l'utente deve ripetere l'autenticazione, indipendentemente dal periodo di validità del token di aggiornamento più recente acquisito dall'applicazione. Se non si desidera applicare una durata di una finestra temporale scorrevole, impostare il valore di allow_infinite_rolling_refresh_token su true . Il valore predefinito è 7.776.000 secondi (90 giorni). Il massimo valore (inclusivo) è 86.400 secondi (24 ore). Il massimo valore (inclusivo) è 31.536.000 secondi (365 giorni). |
allow_infinite_rolling_refresh_token | No | Se impostato su true , la durata della finestra temporale scorrevole del token di aggiornamento non scade mai. |
IssuanceClaimPattern | No | Controlla l'attestazione dell'autorità di certificazione (iss). Uno dei valori:
|
AuthenticationContextReferenceClaimPattern | No | Controllare il valore di attestazione acr .
<Item> con Key="AuthenticationContextReferenceClaimPattern" esista e il valore sia None . Nei criteri relying party, aggiungere l'elemento <OutputClaims> , aggiungere questo elemento <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/> . Inoltre assicurarsi che i criteri contengano il tipo di attestazione <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType> |
RefreshTokenUserJourneyId | No | Identificatore di un percorso utente che deve essere eseguito durante l'aggiornamento di una richiesta POST del token di accesso all'endpoint /token . |
Chiavi crittografiche
L'elemento CryptographicKeys contiene gli attributi seguenti:
Attributo | Obbligatorio | Descrizione |
---|---|---|
issuer_secret | Sì | Il certificato X509 (set di chiavi RSA) da usare per firmare il token JWT. Questa è la B2C_1A_TokenSigningKeyContainer chiave configurata in Introduzione ai criteri personalizzati. |
issuer_refresh_token_key | Sì | Il certificato X509 (set di chiavi RSA) da usare per crittografare il token di aggiornamento. È stata configurata la chiave B2C_1A_TokenEncryptionKeyContainer in Introduzione ai criteri personalizzati |
Gestione della sessione
Per configurare le sessioni di Azure AD B2C tra Azure AD B2C e un'applicazione relying party, nell'attributo dell'elemento UseTechnicalProfileForSessionManagement
aggiungere un riferimento alla sessione SSO OAuthSSOSessionProvider .