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

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.

Refresh token lifetime

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:

  1. Entre no portal do Azure.
  2. 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.
  3. Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
  4. Selecione Fluxos de usuários (políticas) .
  5. Abra o fluxo de usuários criado anteriormente.
  6. Selecione Propriedades.
  7. Em Tempo de vida do token, ajuste as propriedades para atender às necessidades do seu aplicativo.
  8. Selecione Salvar.

configure user flows tokens in Azure portal.

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 para true.
  • 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) ou acr.

Para definir suas configurações de compatibilidade de fluxo de usuário:

  1. Selecione Fluxos de usuários (políticas) .
  2. Abra o fluxo de usuários criado anteriormente.
  3. Selecione Propriedades.
  4. Em configurações de compatibilidade de token, ajuste as propriedades para atender às necessidades do seu aplicativo.
  5. 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 e AuthorityWithTfp.

  • 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) e ACR (referência do contexto de autenticação). TFP é o valor recomendado. Defina AuthenticationContextReferenceClaimPattern com o valor de None.

    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.

  1. Selecione Fluxos de usuários (políticas) .
  2. Abra o fluxo de usuários criado anteriormente.
  3. Selecione Declarações do aplicativo.
  4. Escolha as declarações e atributos que você deseja enviar de volta ao seu aplicativo.
  5. 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.

  1. Abra o arquivo de política personalizada. Por exemplo, SignUpOrSignin.xml.
  2. Localize o elemento OutputClaims. Adicione o OutputClaim que você deseja incluir no token.
  3. 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