Configurar tokens no Azure Active Directory B2C
Antes de começar, use o seletor Escolher um tipo de política para escolher o tipo de política que você está configurando. O Azure Active Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos dos usuários predefinidos ou de políticas personalizadas totalmente configuráveis. As etapas necessárias 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 Active Directory B2C (Azure AD B2C).
Pré-requisitos
- Criar um fluxo do usuário para que os usuários podem se registrar e entrar no seu aplicativo.
- Registrar um aplicativo Web.
- Conclua as etapas em Introdução às políticas personalizadas no Active Directory B2C
- Registrar um aplicativo Web.
Comportamento do tempo de vida do token
Você pode configurar o tempo de vida do token, incluindo:
- Tempo de vida dos tokens de acesso e ID (minutos) : o tempo de vida do token portador do OAuth 2.0 e dos tokens de ID. O valor padrão é 60 minutos (1 hora). O mínimo (inclusive) é de 5 minutos. O máximo (inclusive) é de 1.440 minutos (24 horas).
- Atualizar o tempo de vida do token (dias) - 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 é 14 dias. O mínimo (inclusive) é de um dia. O máximo (inclusive) é de 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 como especificado na duração do 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 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. O valor deve ser maior ou igual ao valor tempo de vida do token de atualização.
O diagrama a seguir mostra o comportamento do tempo de vida da janela deslizante do token de atualização.
Observação
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 os aplicativos móveis, os aplicativos de área de trabalho e os aplicativos Web não experimentam essa limitação. Saiba mais sobre as implicações de segurança de tokens de atualização no navegador.
Configurar o tempo de vida do token
Para configurar o tempo de vida do token do fluxo de usuário:
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Selecione Fluxos de usuários (políticas) .
- Abra o fluxo de usuários criado anteriormente.
- Selecione Propriedades.
- Em Tempo de vida do token, ajuste as propriedades para atender às necessidades do seu aplicativo.
- Selecione Salvar.
Para alterar as configurações de compatibilidade de token, defina os metadados do perfil técnico do emissor do token na extensão ou o arquivo de terceira parte confiável da política que você deseja impactar. O perfil técnico do emissor do token é semelhante ao 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 - tempos de vida de token de acesso (segundos). O padrão é 3.600 (1 hora). O mínimo é de 300 (5 minutos). O máximo é 86.400 (24 horas).
- id_token_lifetime_secs - tempos de vida de token de ID (segundos). O padrão é 3.600 (1 hora). O mínimo é de 300 (5 minutos). O máximo é 86.400 (24 horas).
- refresh_token_lifetime_secs tempos de vida de token de atualização (segundos). O padrão é 1.209.600 (14 dias). O mínimo é 86.400 (24 horas). O máximo é 7.776.000 (90 dias).
- rolling_refresh_token_lifetime_secs - tempo de vida da janela deslizante do token de atualização (segundos). O padrão é 7.776.000 (90 dias). O mínimo é 86.400 (24 horas). O máximo é 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
paratrue
. - allow_infinite_rolling_refresh_token - o tempo de vida 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 de emissor do token de ID e acesso.
- Declaração do sujeito (sub) - o item mais importante sobre o qual o token declara informações, como o usuário de um aplicativo. Esse valor é imutável e não pode ser reatribuído nem reutilizado. Ele pode ser usado para executar verificações de autorização com segurança, por exemplo, quando o token é usado para acessar um recurso. Por padrão, a declaração de entidade é preenchida com a ID de objeto do usuário no diretório.
- Declaração que representa o fluxo de usuário - esta declaração identifica o fluxo de usuário que foi executado. Valores possíveis:
tfp
(padrão) ouacr
.
Para definir suas configurações de compatibilidade de fluxo de usuário:
- Selecione Fluxos de usuários (políticas) .
- Abra o fluxo de usuários criado anteriormente.
- Selecione Propriedades.
- Em configurações de compatibilidade de token, ajuste as propriedades para atender às necessidades do seu aplicativo.
- Selecione Salvar.
Para alterar as configurações de compatibilidade de token, defina os metadados do perfil técnico do emissor do token na extensão ou o arquivo de terceira parte confiável da política que você deseja atualizar. O perfil técnico do emissor do token é semelhante ao 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 iss (Issuer) – a declaração iss (Issuer) é definida com o item de metadados IssuanceClaimPattern. Os valores aplicáveis são
AuthorityAndTenantGuid
eAuthorityWithTfp
.Configuração de declaração que representa a ID de política – as opções para definir esse valor são
TFP
(política de confiança da estrutura) eACR
(referência do contexto de autenticação).TFP
é o valor recomendado. Defina AuthenticationContextReferenceClaimPattern com o valor deNone
.No elemento ClaimsSchema, adicione esse elemento:
<ClaimType Id="trustFrameworkPolicy"> <DisplayName>Trust framework policy name</DisplayName> <DataType>string</DataType> </ClaimType>
Na 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 o ACR, remova o item AuthenticationContextReferenceClaimPattern.
Declaração sub (Subject) – essa opção é padronizada para a ObjectID. Se você quer mudar 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 de aplicativo são valores que são retornados para o aplicativo. Atualize seu fluxo de usuário para conter as declarações desejadas.
- Selecione Fluxos de usuários (políticas) .
- Abra o fluxo de usuários criado anteriormente.
- Selecione Declarações do aplicativo.
- Escolha as declarações e atributos que você deseja enviar de volta ao seu aplicativo.
- Selecione Salvar.
As declarações de saída do perfil técnico da política de terceira parte confiável são valores retornados para um aplicativo. A adição de declarações de saída emitirá as declarações para o token, após um percurso do usuário bem-sucedido, 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 de saída como uma declaração de saída.
- Abra o arquivo de política personalizada. 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 declaração accountBalance
. A declaraçã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 no arquivo de política pai.
- PartnerClaimType - permite que você altere 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ção, como a ID do 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. Authorization_codes têm duração curta que expiram depois de aproximadamente 10 minutos. O tempo de vida do código de autorização não pode ser configurado. Verifique se seu aplicativo resgata os códigos de autorização dentro de 10 minutos.
Próximas etapas
- Saiba mais sobre como solicitar tokens de acesso.
- Saiba como criar a Resiliência por meio das melhores práticas para desenvolvedores.