Acesso com autenticação única a aplicações SAML 2.0 e OAuth 2.0 - AWS IAM Identity Center

Acesso com autenticação única a aplicações SAML 2.0 e OAuth 2.0

O IAM Identity Center permite que você forneça aos usuários acesso de logon único às aplicações SAML 2.0 ou OAuth 2.0. Os tópicos a seguir fornecem uma visão geral de alto nível do SAML 2.0 e do OAuth 2.0.

SAML 2.0

O SAML 2.0 é um padrão do setor usado para a troca segura de asserções SAML que transmitem informações sobre um usuário entre uma autoridade SAML (chamada de provedor de identidades ou IdP) e um consumidor SAML 2.0 (denominado provedor de serviços ou SP). O serviço do IAM Identity Center usa essas informações para fornecer o login único (SSO) federado para os usuários que estão autorizados a usar aplicações no portal do usuário do AWS.

OAuth 2.0

O OAuth 2.0 é um protocolo que permite que aplicações acessem e compartilhem dados do usuário com segurança sem compartilhar senhas. Esse recurso oferece uma maneira segura e padronizada para os usuários permitirem que as aplicações acessem seus recursos. O acesso é facilitado por diferentes fluxos de concessão do OAuth 2.0.

O IAM Identity Center permite que aplicações executadas em clientes públicos recuperem credenciais de acesso temporárias de Contas da AWS e serviços para seus usuários de modo programático. Clientes públicos geralmente são desktops, laptops ou outros dispositivos móveis usados para executar aplicações localmente. Exemplos de aplicações da AWS executadas em clientes públicos incluem o AWS Command Line Interface (AWS CLI), AWS Toolkit e os kits de desenvolvimento de software (SDKs) da AWS. Para permitir que essas aplicações obtenham credenciais, o IAM Identity Center é compatível com partes dos seguintes fluxos OAuth 2.0:

  • Concessão de código de autorização com Proof Key for Code Exchange (PKCE) (RFC 6749 e RFC 7636)

  • Concessão de autorização de dispositivo (RFC 8628)

nota

Esses tipos de concessão só podem ser usados com Serviços da AWS compatíveis com esse recurso. Esses serviços podem não ser compatíveis com esse tipo de concessão em todas as Regiões da AWS. Consulte a documentação dos Serviços da AWS relevantes para saber as diferenças regionais.

O OpenID Connect (OIDC) é um protocolo de autenticação baseado na estrutura OAuth 2.0. O OIDC especifica como usar OAuth 2.0 para autenticação. Por meio das APIs do serviço OIDC do IAM Identity Center, uma aplicação registra um cliente OAuth 2.0 e usa um desses fluxos para obter um token de acesso que fornece permissões às APIs protegidas do IAM Identity Center. Uma aplicação especifica os escopos de acesso para declarar seu usuário pretendido da API. Depois que você, como administrador do IAM Identity Center, configurar sua fonte de identidades, os usuários finais da aplicação deverão concluir um processo de login, se ainda não o fizeram. Os usuários finais deverão então fornecer seu consentimento para permitir que a aplicação faça chamadas de API. Essas chamadas de API são feitas usando as permissões dos usuários. Em resposta, o IAM Identity Center retorna um token de acesso à aplicação que contém os escopos de acesso nos quais os usuários consentiram.

Uso de um fluxo de concessão OAuth 2.0

Os fluxos de concessão OAuth 2.0 só estão disponíveis por meio de aplicações gerenciadas pela AWS compatíveis com os fluxos. Para usar um fluxo OAuth 2.0, sua instância do IAM Identity Center e todas as aplicações gerenciadas pela AWS compatíveis que você usa devem ser implantadas em apenas uma Região da AWS. Consulte a documentação de cada AWS service (Serviço da AWS) para determinar a disponibilidade regional das aplicações gerenciadas pela AWS e a instância do IAM Identity Center que você deseja usar.

Para usar uma aplicação que usa um fluxo OAuth 2.0, o usuário final deve inserir o URL de onde a aplicação se conectará e se registrará na sua instância do IAM Identity Center. Dependendo da aplicação, como administrador, você deve fornecer aos usuários o URL do portal de acesso AWS ou o URL do emissor da sua instância do IAM Identity Center. Você pode encontrar essas duas configurações na página Configurações do console do IAM Identity Center. Para obter informações adicionais sobre a configuração de uma aplicação cliente, consulte a documentação da aplicação.

A experiência do usuário final ao fazer login em uma aplicação e fornecer consentimento depende do uso de Concessão de código de autorização com PKCE ou Concessão de autorização de dispositivo pela aplicação.

Concessão de código de autorização com PKCE

Esse fluxo é usado pelas aplicações executadas em um dispositivo que tem navegador.

  1. Uma janela do navegador se abre.

  2. Se o usuário ainda não foi autenticado, o navegador o redirecionará para a autenticação de usuário.

  3. Após a autenticação, é apresentada ao usuário uma tela de consentimento que exibe as seguintes informações:

    • O nome da aplicação

    • Os escopos de acesso que a aplicação está solicitando consentimento para usar

  4. O usuário pode cancelar o processo de consentimento ou dar seu consentimento, e a aplicação prossegue com o acesso segundo as permissões do usuário.

Concessão de autorização de dispositivo

Esse fluxo pode ser usado por aplicações executadas em um dispositivo com ou sem navegador. Quando a aplicação inicia o fluxo, apresenta um URL e um código de usuário que o usuário deverá verificar mais adiante no fluxo. O código do usuário é necessário porque a aplicação que inicia o fluxo pode estar sendo executada em um dispositivo que não é o mesmo no qual o usuário fornece consentimento. O código garante que o usuário esteja consentindo o fluxo iniciado no outro dispositivo.

  1. Quando o fluxo é iniciado em um dispositivo com navegador, uma janela do navegador é aberta. Quando o fluxo é iniciado em um dispositivo sem navegador, o usuário deve abrir um navegador em um outro dispositivo e acessar o URL que a aplicação apresentou.

  2. Em ambos os casos, se o usuário ainda não foi autenticado, o navegador o redirecionará para fazer a autenticação de usuário.

  3. Após a autenticação, é apresentada ao usuário uma tela de consentimento que exibe as seguintes informações:

    • O nome da aplicação

    • Os escopos de acesso que a aplicação está solicitando consentimento para usar

    • O código do usuário que a aplicação apresentou ao usuário

  4. O usuário pode cancelar o processo de consentimento ou dar seu consentimento, e a aplicação prossegue com o acesso segundo as permissões do usuário.

Escopos de acesso

Um escopo define o acesso a um serviço que pode ser acessado por meio de um fluxo OAuth 2.0. Os escopos são uma maneira de um serviço, também chamado de servidor de recursos, agrupar permissões relacionadas a ações e recursos, e eles especificam as operações de baixa granularidade que os clientes OAuth 2.0 podem solicitar. Quando um cliente OAuth 2.0 se registra no serviço OIDC do IAM Identity Center, ele especifica os escopos para declarar as ações pretendidas, para as quais o usuário deve fornecer consentimento.

Os clientes OAuth 2.0 usam valores de scope conforme definido na seção 3.3 do OAuth 2.0 (RFC6749) para especificar quais permissões estão sendo solicitadas para um token de acesso. Os clientes podem especificar até 25 escopos ao solicitar um token de acesso. Quando um usuário fornece consentimento durante uma concessão de código de autorização com PKCE ou um fluxo de concessão de autorização de dispositivo, o IAM Identity Center codifica os escopos no token de acesso que ele retorna.

A AWS adiciona escopos ao IAM Identity Center para os Serviços da AWS compatíveis. A tabela a seguir lista os escopos compatíveis com o serviço OIDC do IAM Identity Center quando você registra um cliente público.

Escopos de acesso compatíveis com o serviço IAM Identity Center OIDC ao registrar um cliente público

Escopo Descrição Serviços com suporte de
sso:account:access Acesse contas gerenciadas e conjuntos de permissões do IAM Identity Center. Centro de Identidade do IAM
codewhisperer:analysis Habilitar acesso à análise de código do Amazon Q Developer. O ID do builder AWS e o IAM Identity Center
codewhisperer:completions Habilitar o acesso às sugestões de códigos em linha do Amazon Q. O ID do builder AWS e o IAM Identity Center
codewhisperer:conversations Habilitar o acesso ao chat do Amazon Q. O ID do builder AWS e o IAM Identity Center
codewhisperer:taskassist Habilite o acesso ao agente do Amazon Q Developer para desenvolvimento de software. O ID do builder AWS e o IAM Identity Center
codewhisperer:transformations Habilitar o acesso ao agente do Amazon Q Developer para transformação de código. O ID do builder AWS e o IAM Identity Center
codecatalyst:read_write Leia e grave em seus recursos do Amazon CodeCatalyst, permitindo acesso a todos os seus recursos existentes. O ID do builder AWS e o IAM Identity Center