Tokens de segurança

Um provedor de identidade centralizado é útil principalmente para aplicativos que têm usuários localizados em todo o mundo e cujos usuários não precisam necessariamente se conectar a partir da rede da empresa. A plataforma de identidade da Microsoft autentica usuários e fornece tokens de segurança como tokens de acesso, tokens de atualização e tokens de ID. Tokens de segurança permitem que um aplicativo cliente acesse recursos protegidos em um servidor de recursos.

Token de acesso: um token de acesso é um token de segurança emitido por um servidor de autorização como parte de um fluxo OAuth 2.0. Ele contém informações sobre o usuário e o recurso para o qual o token se destina. As informações podem ser usadas para acessar APIs Web e outros recursos protegidos. Tokens de acesso são validados por recursos para conceder acesso a um aplicativo cliente. Para saber mais sobre como a plataforma de identidade da Microsoft emite tokens de acesso, consulte Tokens de acesso.

Token de atualização: como os tokens de acesso são válidos apenas por um breve período de tempo, pode acontecer algumas vezes de os servidores de autorização emitirem um token de atualização ao mesmo tempo em que o token de acesso for emitido. O aplicativo cliente pode trocar esse token de atualização por um novo token de acesso quando necessário. Para saber mais sobre como a plataforma de identidade da Microsoft usa tokens de atualização para revogar permissões, consulte Atualizar tokens.

Token de ID: tokens de ID são enviados para o aplicativo cliente como parte de um fluxo do OpenID Connect. Eles podem ser enviados junto ou no lugar de um token de acesso. Os tokens de ID são usados pelo cliente para autenticar o usuário. Para saber mais sobre como a plataforma de identidade da Microsoft emite tokens de ID, consulte Tokens de ID.

Observação

Este artigo aborda os tokens de segurança usados pelos protocolos OAuth2 e OpenID Connect. Muitos aplicativos empresariais usam o SAML para autenticar usuários. Para obter informações sobre as declarações SAML, consulte a Referência de token SAML do Azure Active Directory.

Validar tokens de segurança

A validação do token cabe ao aplicativo para o qual o token foi gerado, ao aplicativo Web que fez a entrada do usuário ou à API Web que está sendo chamada. O token é assinado pelo servidor de autorização com uma chave privada. O servidor de autorização publica a chave pública correspondente. Para validar um token, o aplicativo verifica a assinatura usando a chave pública do servidor de autorização para validar que a assinatura foi criada usando a chave privada.

Os tokens são válidos por um período limitado. Normalmente, o servidor de autorização fornece um par de tokens, tais como:

  • Um token de acesso, que acessa o aplicativo ou recurso protegido.
  • Um token de atualização, que é usado para atualizar o token de acesso quando este está perto de expirar.

Tokens de acesso são transmitidos para uma API da Web como o token de portador no cabeçalho Authorization. Um aplicativo pode fornecer um token de atualização para o servidor de autorização. Se o acesso do usuário ao aplicativo não tiver sido revogado, ele receberá um novo token de acesso e um novo token de atualização. É assim que é tratado o cenário em que alguém deixa a empresa. Quando o servidor de autorização recebe o token de atualização, ele não emite outro token de acesso válido se o usuário não estiver mais autorizado.

Tokens Web JSON e declarações

A plataforma de identidade da Microsoft implementa tokens de segurança como tokens Web JSON (JWTs) que contêm declarações. Como JWTs são usados como tokens de segurança, essa forma de autenticação é chamada, às vezes, de autenticação JWT.

Uma declaração fornece instruções assert sobre uma entidade, como um aplicativo cliente ou proprietário do recurso, para outra entidade, como um servidor de recursos. Uma declaração também pode ser referida como uma declaração JWT ou uma declaração de token Web JSON.

As declarações são pares de nomes ou valores que retransmitem fatos sobre o assunto do token. Por exemplo, uma declaração pode conter fatos sobre a entidade de segurança que foi autenticada pelo servidor de autorização. As declarações presentes em um token específico dependem de muitas coisas, como o tipo de token, o tipo de credencial usado para autenticar o assunto e a configuração do aplicativo.

Os aplicativos podem usar declarações para diversas tarefas, incluindo:

  • Validar o token.
  • Identificar o locatário do assunto do token.
  • Exibir informações do usuário.
  • Determinar a autorização da entidade.

Uma declaração consiste em pares chave-valor que fornecem informações como:

  • Servidor de Token de Segurança que gerou o token.
  • Data em que o token foi gerado.
  • Assunto (tal como o usuário – exceto para daemons).
  • Público, que é o aplicativo para o qual o token foi gerado.
  • Aplicativo (o cliente) que solicitou o token. No caso de aplicativos Web, o aplicativo pode ser o mesmo que o público.

Para saber mais sobre como a plataforma de identidade da Microsoft implementa tokens e informações de declaração, consulte Tokens de acesso e Tokens de ID.

Como cada fluxo emite tokens e códigos

Dependendo de como o cliente é criado, ele pode usar um (ou vários) dos fluxos de autenticação compatíveis com a plataforma de identidade da Microsoft. Esses fluxos podem produzir vários tokens (tokens de ID, tokens de atualização, tokens de acesso) e códigos de autorização. Eles exigem tokens diferentes para funcionar. Esta tabela fornece uma visão geral.

Flow Exige token de ID Token de acesso Token de atualização Código de Autorização
Fluxo do código de autorização x x x x
Fluxo implícito x x
Fluxo de OIDC híbrido x x
Resgate de token de atualização Token de atualização x x x
Fluxo em-nome-de Token de acesso x x x
Credenciais do cliente x (somente de aplicativo)

Tokens emitidos no modo implícito têm uma limitação de comprimento, porque são transmitidos de volta para o navegador por meio da URL (em que response_mode é query ou fragment). Alguns navegadores têm um limite de tamanho da URL que pode ser digitada na barra do navegador e falham quando ela é muito longa. Como resultado, esses tokens não têm declarações groups ou wids.

Próximas etapas

Para obter mais informações sobre autenticação e autorização na plataforma de identidade da Microsoft, veja os seguintes artigos: