Configurar tokens no Azure Active Directory B2C
Antes de começar, use o seletor Escolha um tipo de política para escolher o tipo de política que você está configurando. O Azure Ative Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos de usuário predefinidos ou por meio de políticas personalizadas totalmente configuráveis. As etapas exigidas neste artigo são diferentes para cada método.
Neste artigo, você aprenderá a configurar o tempo de vida e a compatibilidade de um token no Azure Ative Directory B2C (Azure AD B2C).
Pré-requisitos
- Crie um fluxo de usuários para que os usuários possam se inscrever e entrar em seu aplicativo.
- Registe uma aplicação Web.
- Conclua as etapas em Introdução às políticas personalizadas no Ative Directory B2C
- Registe uma aplicação Web.
Comportamento do tempo de vida do token
Você pode configurar o tempo de vida do token, incluindo:
- Tempos de vida do token de acesso e ID (minutos) - O tempo de vida do token ao portador do OAuth 2.0 e dos tokens de ID. O padrão é 60 minutos (1 hora). O mínimo (inclusive) é de 5 minutos. O máximo (inclusive) é de 1.440 minutos (24 horas).
- Tempo de vida do token de atualização (dias) - O período de tempo máximo antes do qual um token de atualização pode ser usado para adquirir um novo token de acesso, se seu aplicativo tiver recebido o
offline_access
escopo. O padrão é 14 dias. O mínimo (inclusive) é de um dia. O máximo (inclusive) 90 dias. - Tempo de vida da janela deslizante do token de atualização - O tipo de janela deslizante do token de atualização.
Bounded
indica que o token de atualização pode ser estendido conforme especificado no Tempo de vida (dias).No expiry
indica que o tempo de vida da janela deslizante do token de atualização nunca expira. - Duração do tempo de vida (dias) - Após esse período de tempo, o usuário é forçado a se autenticar novamente, independentemente do período de validade do token de atualização mais recente adquirido pelo aplicativo. O valor deve ser maior ou igual ao valor do tempo de vida do token Refresh.
O diagrama a seguir mostra o comportamento do tempo de vida da janela deslizante do token de atualização.
Nota
Os aplicativos de página única que usam o fluxo de código de autorização com PKCE sempre têm um tempo de vida de token de atualização de 24 horas, enquanto aplicativos móveis, aplicativos de desktop e aplicativos Web não enfrentam essa limitação. Saiba mais sobre as implicações de segurança dos tokens de atualização no navegador.
Configurar o tempo de vida do token
Para configurar o tempo de vida do token de fluxo de usuário:
- Inicie sessão no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
- Escolha Todos os serviços no canto superior esquerdo do portal do Azure e, em seguida, procure e selecione Azure AD B2C.
- Selecione Fluxos de usuário (políticas).
- Abra o fluxo de usuário que você criou anteriormente.
- Selecione Propriedades.
- Em Tempo de vida do token, ajuste as propriedades para atender às necessidades do seu aplicativo.
- Selecione Guardar.
Para alterar as configurações de compatibilidade de token, defina os metadados do perfil técnico do Emissor de Token na extensão ou o arquivo de terceira parte confiável da política que deseja afetar. O perfil técnico do emissor do token se parece com o seguinte exemplo:
<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>
Os seguintes valores são definidos no exemplo anterior:
- token_lifetime_secs - Tempo de vida do token de acesso (segundos). O padrão é 3.600 (1 hora). O mínimo é de 300 (5 minutos). O máximo é de 86.400 (24 horas).
- id_token_lifetime_secs - Tempo de vida do token de ID (segundos). O padrão é 3.600 (1 hora). O mínimo é de 300 (5 minutos). O máximo é de 86.400 (24 horas).
- refresh_token_lifetime_secs Atualize os tempos de vida do token (segundos). O padrão é 1.209.600 (14 dias). O mínimo é de 86.400 (24 horas). O máximo é de 7.776.000 (90 dias).
- rolling_refresh_token_lifetime_secs - Atualize o tempo de vida da janela deslizante do token (segundos). O padrão é 7.776.000 (90 dias). O mínimo é de 86.400 (24 horas). O máximo é de 31.536.000 (365 dias). Se não quiser impor um tempo de vida de janela deslizante, defina o valor de
allow_infinite_rolling_refresh_token
true
como . - allow_infinite_rolling_refresh_token - A vida útil da janela deslizante do token de atualização nunca expira.
Configurações de compatibilidade de token
Você pode configurar a compatibilidade de token, incluindo:
- Declaração do emissor (iss) - O formato do emissor do token de acesso e ID.
- Assunto (sub) reivindicação - O principal sobre o qual o token afirma informações, como o usuário de um aplicativo. Esse valor é imutável e não pode ser reatribuído ou reutilizado. Ele pode ser usado para executar verificações de autorização com segurança, como quando o token é usado para acessar um recurso. Por padrão, a declaração de assunto é preenchida com a ID do objeto do usuário no diretório.
- Declaração que representa o fluxo do usuário - Esta declaração identifica o fluxo do usuário que foi executado. Valores possíveis:
tfp
(padrão) ouacr
.
Para definir as configurações de compatibilidade de fluxo de usuário:
- Selecione Fluxos de usuário (políticas).
- Abra o fluxo de usuário que você criou anteriormente.
- Selecione Propriedades.
- Em Configurações de compatibilidade de token, ajuste as propriedades para atender às necessidades do seu aplicativo.
- Selecione Guardar.
Para alterar as configurações de compatibilidade de token, defina os metadados do perfil técnico do Emissor de Token na extensão ou o arquivo de terceira parte confiável da política que deseja atualizar. O perfil técnico do emissor do token se parece com o seguinte exemplo:
<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>
Declaração do Emissor (iss) - A declaração do Emissor (iss) é definida com o item de metadados IssuanceClaimPattern . Os valores aplicáveis são
AuthorityAndTenantGuid
eAuthorityWithTfp
.Definindo a declaração que representa a ID da política - As opções para definir esse valor são
TFP
(política da estrutura de confiança) eACR
(referência de contexto de autenticação).TFP
é o valor recomendado. Defina AuthenticationContextReferenceClaimPattern com o valor deNone
.No elemento ClaimsSchema, adicione este elemento:
<ClaimType Id="trustFrameworkPolicy"> <DisplayName>Trust framework policy name</DisplayName> <DataType>string</DataType> </ClaimType>
Em sua política de terceira parte confiável, no elemento OutputClaims, adicione a seguinte declaração de saída:
<OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp" />
Para ACR, remova o item AuthenticationContextReferenceClaimPattern .
Assunto (sub) reivindicação - Esta opção assume como padrão ObjectID, se você quiser alternar essa configuração para
Not Supported
, substitua esta linha:<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
com esta linha:
<OutputClaim ClaimTypeReferenceId="sub" />
Fornecer declarações opcionais ao seu aplicativo
As declarações do aplicativo são valores que são retornados ao aplicativo. Atualize seu fluxo de usuário para conter as declarações desejadas.
- Selecione Fluxos de usuário (políticas).
- Abra o fluxo de usuário que você criou anteriormente.
- Selecione Afirmações de aplicação.
- Escolha as declarações e os atributos que você deseja enviar de volta ao seu aplicativo.
- Selecione Guardar.
As declarações de saída do perfil técnico da terceira parte confiável são valores retornados a um aplicativo. Adicionar declarações de saída emitirá as declarações no token após uma jornada de usuário bem-sucedida e será enviada para o aplicativo. Modifique o elemento de perfil técnico na seção de terceira parte confiável para adicionar as declarações desejadas como uma declaração de saída.
- Abra o arquivo de política personalizado. Por exemplo, SignUpOrSignin.xml.
- Localize o elemento OutputClaims. Adicione o OutputClaim que você deseja incluir no token.
- Defina os atributos de declaração de saída.
O exemplo a seguir adiciona a accountBalance
declaração. A reivindicação accountBalance é enviada para o aplicativo como um 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>
O elemento OutputClaim contém os seguintes atributos:
- ClaimTypeReferenceId - O identificador de um tipo de declaração já definido na seção ClaimsSchema no arquivo de política ou arquivo de política pai.
- PartnerClaimType - Permite alterar o nome da declaração no token.
- DefaultValue - Um valor padrão. Você também pode definir o valor padrão para um resolvedor de declarações, como ID de locatário.
- AlwaysUseDefaultValue - Força o uso do valor padrão.
Tempo de vida do código de autorização
Ao usar o fluxo de código de autorização do OAuth 2.0, o aplicativo pode usar o código de autorização para solicitar um token de acesso para um recurso de destino. Os códigos de autorização são de curta duração e expiram após cerca de 10 minutos. O tempo de vida do código de autorização não pode ser configurado. Certifique-se de que seu aplicativo resgata os códigos de autorização em 10 minutos.
Próximos passos
- Saiba mais sobre como solicitar tokens de acesso.
- Saiba como criar resiliência por meio das práticas recomendadas do desenvolvedor.