Explorar a autenticação

Concluído

Autenticação é validar se a identidade (usuário, aplicativo ou dispositivo) é quem ela declara ser. Em seguida, também fornece um nível apropriado de validação e segurança em toda a transação de autenticação. A autenticação de identidade fornece:

  • Autenticação flexível e compatível com padrões que se integra entre organizações
  • Integração de fontes, aplicativos e protocolos diferentes
  • Emprega muitos diferentes métodos padrão do setor de validação e garantia

O uso de um provedor de identidade para autenticação oferece uma forma de garantir identidades seguras sem limitar as funcionalidades dos usuários. Você obtém conveniência, várias fontes para validar a identidade, protocolos do setor e garantia da identidade.

Conveniência – A funcionalidade de conveniência se concentra na experiência dos usuários finais com a forma como eles são solicitados a fornecer credenciais de autenticação. O foco aqui é na experiência do usuário final. Se algo não for fácil, os usuários evitarão ou reclamarão dele.

Fontes – A funcionalidade de fontes envolve o local em que o usuário obteve o token de autenticação. Muitas organizações têm o que acreditam ser um emissor centralizado (Microsoft Entra ID), mas, na realidade, a maioria das organizações também tem outros repositórios de identidades. A identidade federada é o outro provedor de identidade mais comum.

Protocolos – geralmente, as organizações têm vários protocolos de autenticação em vigor que causam uma experiência deficiente para os usuários finais e para a organização. Uma área de foco dessa funcionalidade é ajudar uma organização a padronizar o uso de um ou mais protocolos de autenticação modernos e seguros para atingir as metas de autenticação.

Garantia – A garantia de autenticação é a confiança que uma organização tem de que uma pessoa que acessa um recurso é quem diz ser. Essa funcionalidade fala sobre se uma organização usa ou não contas compartilhadas, se ela usa contas personalizadas e se soluções como autenticação multifator ou autenticação baseada em risco estão em vigor.

Identidade federada

Federação é uma coleção de domínios que estabeleceram confiança. O nível de confiança varia, mas normalmente inclui autenticação e quase sempre inclui autorização. Essa federação permite que você aplique identidades existentes de fontes confiáveis, como um Active Directory local existente.

Protocolos de comunicação comuns na identidade

Protocolo Descrição e uso
SAML – Security Assertion Markup Language Padrão aberto para troca de dados de autenticação e autorização entre um provedor de identidade e um provedor de serviços. Atributos comuns do SAML:
Entidade de segurança = geralmente um usuário ou um dispositivo; IdP = provedor de identidade; SP = provedor de serviços
IdP = provedor de identidade
SP = provedor de serviços
WS-Fed – especificação Web Services Federation Uma especificação de identidade da estrutura Web Services Security para fornecer logon único por meio da troca de identidade externa e autenticação.
OIDC – OpenID Connect O OIDC estende o protocolo de autorização do OAuth 2.0 para uso como um protocolo de autenticação, o que permite fazer o logon único usando o OAuth.

OpenID Connect

O OIDC (OpenID Connect) é um protocolo de autenticação criado com base no OAuth 2.0. Esse protocolo permite que um usuário conecte um usuário com segurança a um aplicativo. Quando você usa a implementação do OpenID Connect da plataforma de identidade da Microsoft, é possível adicionar a entrada e o acesso à API aos seus aplicativos. O OpenID Connect estende o protocolo de autorização do OAuth 2.0 para uso como um protocolo de autenticação, o que permite executar o logon único usando o OAuth. O OpenID Connect apresenta o conceito de um token de ID, que é um token de segurança que permite ao cliente verificar a identidade do usuário. O token de ID também obtém informações de perfil básico sobre o usuário. Ele também apresenta o ponto de extremidade de UserInfo, uma API que retorna informações sobre o usuário.

Identidade baseada em declarações no Microsoft Entra ID

Quando um usuário se conecta, o Microsoft Entra ID cria e envia um token de ID que contém um conjunto de declarações sobre o usuário. Uma declaração é simplesmente uma informação expressada como um par chave/valor. Por exemplo, email=bob@contoso.com. As declarações têm um emissor (nesse caso, o Microsoft Entra ID), que é a entidade que autentica o usuário e cria as declarações. Você confia nas declarações porque confia no emissor. (Por outro lado, se você não confiar o emissor, não confiará nas declarações.)

Em um alto nível:

  1. O usuário é autenticado.
  2. O IdP (provedor de identidade) envia um conjunto de declarações.
  3. O aplicativo normaliza ou amplia as declarações (opcional).
  4. O aplicativo usa as declarações para tomar decisões sobre a autorização.

No OpenID Connect, o conjunto de declarações que você obtém é controlado pelo parâmetro de escopo da solicitação de autenticação. No entanto, o Microsoft Entra ID emite um conjunto limitado de declarações por meio do OpenID Connect por meio de um token de segurança, principalmente, usando Tokens Web JSON. Se você quiser mais informações sobre o usuário, precisará usar a API do Graph com o Microsoft Entra ID.

Tokens de segurança

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. Há três tipos comuns de tokens: tokens de acesso, tokens de atualização e tokens de ID.

  • 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, pode acontecer de algumas vezes os servidores de autorização emitirem um token de atualização ao mesmo tempo em que o token de acesso é 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 – Os 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.

O que é um JWT (Token Web JSON)?

O JWT (Token Web JSON) é um padrão aberto (RFC 7519) que define uma forma compacta e independente de transmitir informações com segurança entre partes como um objeto JSON. É possível verificar essas informações e confiar nelas porque elas são assinadas digitalmente. Os JWTs podem ser assinados por meio de um segredo ou um par de chaves pública/privada. Embora os JWTs possam ser criptografados para também fornecer sigilo entre as partes, nos concentramos em tokens assinados. Os tokens assinados podem verificar a integridade das declarações contidas nele, enquanto os tokens criptografados ocultam essas declarações de outras partes. Quando os tokens são assinados usando pares de chaves públicas/privadas, a assinatura também certifica que somente a parte que contém a chave privada é a que o assinou.

Observação

Informações fornecidas do site do JWT – https://jwt.io/.

Definições na identidade baseada em declarações

Há alguns termos comuns usados ao discutir a identidade baseada em declarações no Microsoft Entra ID.

  • Declaração – Um par de dados de valor em um token de segurança. Há várias declarações transferidas no token da declaração que define o tipo do token para o método de criptografia. Veja um exemplo:
       Header
       {
         "alg": "HS256",
         "typ": "JWT"
       }
       Content payload
       {
         "sub": "1234567890",
         "name": "John Doe",
         "aud": "https://jwt.io"
       }
    
  • Declaração – Um pacote de dados, geralmente em forma de token, que compartilha as informações de identidade e de segurança sobre um usuário ou uma conta entre domínios de segurança.
  • Atributo – Um par de dados de valor em um token.
  • Aumento – o processo de adição de outras declarações ao token de usuário para fornecer detalhes extras sobre o usuário. Isso pode incluir dados de sistemas de RH (recursos humanos), de um aplicativo como o SharePoint ou outros sistemas.