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

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. Boundedindica 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.

Refresh token lifetime

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:

  1. Inicie sessão 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 seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. Escolha Todos os serviços no canto superior esquerdo do portal do Azure e, em seguida, procure e selecione Azure AD B2C.
  4. Selecione Fluxos de usuário (políticas).
  5. Abra o fluxo de usuário que você criou anteriormente.
  6. Selecione Propriedades.
  7. Em Tempo de vida do token, ajuste as propriedades para atender às necessidades do seu aplicativo.
  8. Selecione Guardar.

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

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

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

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

    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.

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

  1. Abra o arquivo de política personalizado. 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 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