Definir um perfil técnico para um emissor de token JWT em uma política personalizada do Azure Active Directory B2C

Observação

No Azure Active Directory B2C, as políticas personalizadas são projetadas principalmente para tratar de cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuários predefinidos. Se você ainda não fez isso, saiba mais sobre o pacote de início de política personalizado em Introdução às políticas personalizadas no Active Directory B2C.

O Azure AD B2C (Azure Active Directory B2C) emite vários tipos de tokens de segurança ao processar cada fluxo de autenticação. Um perfil técnico para um emissor de token JWT emite um token JWT que é retornado para o aplicativo de terceira parte confiável. Normalmente, esse perfil técnico é a última etapa de orquestração no percurso do usuário.

Protocolo

O atributo Name do elemento Protocol precisa ser definido como OpenIdConnect. Defina o elemento OutputTokenFormat como JWT.

O exemplo a seguir mostra um perfil técnico para 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>

Entrada, saída e manter declarações

Os elementos InputClaims, OutputClaims e PersistClaims estão vazios ou ausentes. Os elementos InutputClaimsTransformations e OutputClaimsTransformations também estão ausentes.

Metadados

Atributo Obrigatório Descrição
issuer_refresh_token_user_identity_claim_type Yes A declaração que deve ser usada como a declaração de identidade do usuário nos códigos de autorização OAuth2 e tokens de atualização. Por padrão, você deve defini-la como objectId, a menos que especifique um tipo de declaração SubjectNamingInfo diferente.
SendTokenResponseBodyWithJsonNumbers No Sempre defina como true. Para formatos herdados em que os valores numéricos são fornecidos como cadeias de caracteres em vez de números JSON, defina como false. Esse atributo é necessário para clientes que adotaram uma dependência em uma implementação anterior que retornou propriedades como cadeias de caracteres.
token_lifetime_secs No Tempos de vida do token de acesso. O tempo de vida do token de portador do OAuth 2.0 usado para obter acesso a um recurso protegido. O padrão é 3.600 segundos (1 hora). O mínimo (inclusive) é 300 segundos (5 minutos). O máximo (inclusive) é 86.400 segundos (24 horas).
id_token_lifetime_secs No Tempos de vida do token de ID. O padrão é 3.600 segundos (1 hora). O mínimo (inclusive) é 300 segundos (5 minutos). O máximo (inclusive) é 86.400 segundos (24 horas).
refresh_token_lifetime_secs No Tempos de vida do token de atualização. O período de tempo máximo que um token de atualização poderá ser usado para adquirir um novo token de acesso se o aplicativo tiver recebido o escopo offline_access. O padrão é 120,9600 segundos (14 dias). O mínimo (inclusive) é 86.400 segundos (24 horas). O máximo (inclusive) é 7.776.000 segundos (90 dias).
rolling_refresh_token_lifetime_secs No Tempo de vida da janela deslizante do token de atualização. Após a passagem desse período, o usuário será forçado a autenticar-se novamente, independentemente do período de validade do token de atualização mais recente adquirido pelo aplicativo. Se você não quiser impor um tempo de vida de janela deslizante, defina o valor de allow_infinite_rolling_refresh_token como true. O padrão é 7.776.000 segundos (90 dias). O mínimo (inclusive) é 86.400 segundos (24 horas). O máximo (inclusive) é 31.536.000 segundos (365 dias).
allow_infinite_rolling_refresh_token No Se definido como true, o tempo de vida da janela deslizante do token de atualização nunca expira.
IssuanceClaimPattern No Controla a declaração do emissor (iss). Um dos valores:
  • AuthorityAndTenantGuid – A declaração de iss inclui seu nome de domínio, como login.microsoftonline ou tenant-name.b2clogin.come o identificador de locatário https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/
  • AuthorityWithTfp – A declaração de iss inclui seu nome de domínio, como login.microsoftonline ou tenant-name.b2clogin.com, seu identificador de locatário e o nome da política da terceira parte confiável. https://login.microsoftonline.com/tfp/00000000-0000-0000-0000-000000000000/b2c_1a_tp_sign-up-or-sign-in/v2.0/
Valor padrão: AuthorityAndTenantGuid
AuthenticationContextReferenceClaimPattern No Controla o valor da declaração acr.
  • Nenhum – O Azure AD B2C não emite a declaração do ACR
  • PolicyId – A declaração acr contém o nome da política
As opções para definir esse valor são TFP (política de estrutura confiável) e ACR (referência do contexto de autenticação). É recomendável definir esse valor como TFP. Para definir o valor, verifique se o <Item> com o Key="AuthenticationContextReferenceClaimPattern" existe e o valor é None. Em sua política de terceira parte confiável, adicione o item <OutputClaims> e este elemento <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/>. Além disso, verifique se a sua política contém o tipo de declaração <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType>
RefreshTokenUserJourneyId No O identificador de um percurso do usuário que deve ser executado durante a solicitação POST atualizar na token de acesso para o ponto de extremidade /token.

Chaves de criptografia

O elemento CryptographicKeys contém os seguintes atributos:

Atributo Obrigatório Descrição
issuer_secret Sim O certificado X509 (conjunto de chaves RSA) a ser usado para assinar o token JWT. Use a chave B2C_1A_TokenSigningKeyContainer que você configurou em Introdução às políticas personalizadas.
issuer_refresh_token_key Yes O certificado X509 (conjunto de chaves RSA) a ser usado para criptografar o token de atualização. Você configurou a chave B2C_1A_TokenEncryptionKeyContainer em Introdução às políticas personalizadas

Gerenciamento da sessão

Para configurar as sessões do Azure AD B2C entre um aplicativo de terceira parte confiável e o Azure AD B2C, no atributo do elemento UseTechnicalProfileForSessionManagement, confira a sessão de SSO OAuthSSOSessionProvider.