Como adicionar provedores de identidade OIDC a um grupo de usuários - Amazon Cognito

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como adicionar provedores de identidade OIDC a um grupo de usuários

Você pode permitir que seus usuários que já têm contas com provedores de identidade () do OpenID Connect (OIDCIdPs) pulem a etapa de inscrição e acessem seu aplicativo usando uma conta existente. Com a interface do usuário da Web hospedada integrada, o Amazon Cognito fornece manuseio e gerenciamento de tokens para todos os usuários autenticados. Dessa forma, os sistemas de backend podem realizar a padronização com base em um conjunto de tokens do grupo de usuários.


                Visão geral de autenticação com um IdP OIDC
nota

O login por meio de um terceiro (federação) está disponível em grupos de usuários do Amazon Cognito. Esse recurso é independente da federação nos grupos de identidades do Amazon Cognito (identidades federadas).

Você pode adicionar um IdP OIDC ao seu grupo de usuários no AWS Management Console, por meio do ou com o método da AWS CLI API do grupo de usuários. CreateIdentityProvider

Pré-requisitos

Antes de começar, você precisará fazer o seguinte:

  • Um grupo de usuários com um cliente da aplicação e um domínio do grupo de usuários. Para obter mais informações, consulte Criar um grupo de usuários.

  • Um IdP OIDC com a seguinte configuração:

    • Comporta a autenticação de cliente client_secret_post. O Amazon Cognito não verifica a declaração token_endpoint_auth_methods_supported no endpoint de descoberta OIDC para seu IdP. O Amazon Cognito não comporta a autenticação de cliente client_secret_basic. Para obter mais informações sobre a autenticação do cliente, consulte Autenticação de cliente na documentação do OpenID Connect.

    • Só usa HTTPS para endpoints OIDC, como openid_configuration, userInfo e jwks_uri.

    • Só usa as portas TCP 80 e 443 para endpoints OIDC.

    • Só assina tokens de ID com algoritmos HMAC-SHA, ECDSA ou RSA.

    • Publica uma reivindicação de ID de chave kid no jwks_uri e inclui uma reivindicação kid nos respectivos tokens.

Etapa 1: registrar com um IdP OIDC

Antes de criar um IdP OIDC com o Amazon Cognito, é necessário registrar sua aplicação no IdP OIDC para receber um ID do cliente e a chave secreta do cliente.

Para registrar com um IdP OIDC
  1. Crie uma conta de desenvolvedor com o IdP OIDC.

    Links para o OIDC IdPs
    IdP OIDC Como instalar URL de descoberta OIDC
    Salesforce

    Instale um provedor de identidade Salesforce

    https://login.salesforce.com

    Ping Identity

    Instale um provedor de identidade Ping Identity

    https://Seu endereço de domínio Ping:9031/idp/userinfo.openid

    Por exemplo: https://pf.company.com:9031/idp/userinfo.openid

    Okta

    Instale um provedor de identidade Okta

    https://Seu subdomínio Okta.oktapreview.com

    ou https://Your Okta subdomain.okta.com

    Microsoft Azure Active Directory (Azure AD)

    Instale um provedor de identidade Microsoft AD Azure

    https://login.microsoftonline.com/{tenant}/v2.0

    Google

    Instale um provedor de identidade Google

    https://accounts.google.com

    nota

    O Amazon Cognito oferece o Google como um IdP de login social integrado. Recomendamos que você use o IdP integrado. Consulte Como adicionar provedores de identidade social a um grupo de usuários.

  2. Inscreva o URL do domínio do grupo de usuários com o endpoint /oauth2/idpresponse com o IdP OIDC. Isso garante que o IdP OIDC o aceite posteriormente no Amazon Cognito quando autenticar os usuários.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Inscreva o URL de retorno de chamada no grupo de usuários do Amazon Cognito. Esse é o URL da página para a qual o Amazon Cognito redireciona o usuário após uma autenticação bem-sucedida.

    https://www.example.com
  4. Selecione seus escopos. O escopo openid é obrigatório. O escopo email é necessário para conceder acesso às solicitações email e email_verified.

  5. O IdP OIDC fornece um ID e uma chave secreta do cliente. Você vai usá-las ao configurar um IdP OIDC no grupo de usuários.

Exemplo: usar o Salesforce como um IdP OIDC com o grupo de usuários

Você usa um IdP OIDC quando deseja estabelecer confiança entre um IdP compatível com OIDC, como o Salesforce e seu grupo de usuários.

  1. Crie uma conta no site de desenvolvedores do Salesforce.

  2. Faça login na conta de desenvolvedor que você criou na etapa anterior.

  3. Na página do Salesforce, execute um dos seguintes procedimentos:

    • Se você estiver usando o Lightning Experience, escolha o ícone de engrenagem da configuração e, depois, Setup Home (Página inicial de configuração).

    • Se você estiver usando o Salesforce Classic e você visualizar Setup (Configuração) no cabeçalho da interface do usuário, selecione-o.

    • Se você estiver usando o Salesforce Classic e você não visualizar Setup (Configuração) no cabeçalho, selecione seu nome na barra de navegação superior e selecione Setup (Configuração) na lista suspensa.

  4. Na barra de navegação à esquerda, escolha Company Settings (Configurações da empresa).

  5. Na barra de navegação, escolha Domain (Domínio), insira um domínio e escolha Create (Criar).

  6. Na barra de navegação à esquerda, em Platform Tools (Ferramentas de plataforma), escolha Apps (Aplicações).

  7. Escolha App Manager (Gerenciador de aplicativos).

    1. Escolha New connected app (Nova aplicação conectada).

    2. Preencha os campos necessários.

      Em Start URL (URL de início), insira um URL no endpoint /authorize para o domínio do grupo de usuários que faz login em seu IdP Salesforce. Quando seus usuários acessam sua aplicação conectada, o Salesforce os direciona para esse URL para concluir o login. Em seguida, o Salesforce redireciona os usuários para o URL de retorno de chamada que você associou ao cliente de aplicação.

      https://mydomain.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
    3. Habilite OAuth settings (Configurações OAuth) e insira o URL do endpoint /oauth2/idpresponse para o domínio do grupo de usuários no Callback URL (URL de retorno de chamada). Esse é o URL em que o Salesforce emite o código de autorização que o Amazon Cognito troca por um token do OAuth.

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Selecione seus escopos. Você deve incluir o escopo openid. Para conceder acesso às solicitações email e email_verified, adicione o escopo email. Escopos separados por espaços.

  9. Escolha Criar.

    No Salesforce, o ID do cliente é chamado de Consumer Key (Chave do consumidor) e a chave secreta do cliente é uma Consumer Secret (Chave secreta do consumidor). Anote o ID e a chave secreta do cliente. Você poderá usá-los na próxima seção.

Etapa 2: adicionar um IdP OIDC ao seu grupo de usuários

Nesta seção, você configura o grupo de usuários para processar solicitações de autenticação baseadas em OIDC de um IdP OIDC.

Para adicionar um IdP OIDC (console do Amazon Cognito)

Adicionar um IdP OIDC
  1. Acesse o console do Amazon Cognito. Se solicitado, insira suas AWS credenciais.

  2. Escolha User Pools (Grupos de usuários) no menu de navegação.

  3. Escolha um grupo de usuários existente na lista ou crie um grupo de usuários.

  4. Escolha a guia Sign-in experience (Experiência de acesso). Localize Federated sign-in (Acesso federado) e selecione Add an identity provider (Adicionar um provedor de identidade).

  5. Escolha um IdP OpenID Connect.

  6. Insira um nome exclusivo em Provider name (Nome do provedor).

  7. Insira o ID do cliente que você recebeu do provedor em Client ID (ID do cliente).

  8. Insira o segredo do cliente que você recebeu do provedor em Client secret (Segredo do cliente).

  9. Insira os Authorized scopes (Escopos autorizados) para esse provedor. Os escopos definem quais grupos de atributos do usuário (como name e email) sua aplicação solicitará ao seu provedor. Os escopos devem ser separados por espaços, seguindo a especificação OAuth 2.0.

    O usuário receberá uma solicitação de consentimento para o fornecimento desses atributos à aplicação.

  10. Selecione um Attribute request method (Método de solicitação de atributos) para fornecer ao Amazon Cognito o método HTTP (GET ou POST) que ele deve usar para buscar os detalhes do usuário no endpoint userInfo operado pelo provedor.

  11. Escolha um Setup method (Método de configuração) para recuperar endpoints OpenID Connect por Auto fill through issuer URL (Preenchimento automático por meio do URL emissor) ou Manual input (Entrada manual). Use o endpoint Auto fill through issuer URL (Preenchimento automático por meio do URL do emissor) quando o Amazon Cognito puder recuperar os URLs dos endpoints authorization, token, userInfo e jwks_uri.

  12. Insira o URL emissor ou os URLs dos endpoints authorization, token, userInfo e jwks_uri do seu IdP.

    nota

    O URL deve começar com https:// e não deve terminar com uma barra /. Somente os números de porta 443 e 80 podem ser usados com esse URL. Por exemplo, Salesforce usa este URL:

    https://login.salesforce.com

    Se você escolher preenchimento automático, o documento de descoberta deverá usar HTTPS para os seguintes valores: authorization_endpoint, token_endpoint, userinfo_endpoint e jwks_uri. Caso contrário, o login falhará.

  13. Por padrão, a declaração OIDC sub é mapeada para o atributo de grupo de usuários Username (Nome de usuário). Você pode mapear outras solicitações OIDC para atributos de grupo de usuários. Insira a solicitação OIDC e escolha o atributo do grupo de usuários correspondente na lista suspensa. Por exemplo, a solicitação email geralmente é mapeada para o atributo de grupo de usuários E-mail.

  14. Mapeie atributos do IdP para o grupo de usuários. Para obter mais informações, consulte Especificar mapeamentos de atributos do provedor de identidade para seu grupo de usuários.

  15. Escolha Criar.

  16. Na guia App client integration (Integração de cliente da aplicação), escolha um dos App clients (Clientes da aplicação) na lista e escolha Edit hosted UI settings (Editar configurações da interface do usuário hospedada). Adicione o novo IdP OIDC ao cliente de aplicação em Identity providers (Provedores de identidade).

  17. Escolha Salvar alterações.

Para adicionar um IdP OIDC (AWS CLI)

  • Veja as descrições dos parâmetros do método CreateIdentityProviderda API.

    aws cognito-idp create-identity-provider --user-pool-id string --provider-name string --provider-type OIDC --provider-details map --attribute-mapping string --idp-identifiers (list) --cli-input-json string --generate-cli-skeleton string

    Use este mapa de detalhes do provedor:

    { "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }

Etapa 3: testar a configuração de IdP OIDC

Você pode criar o URL de autorização usando os elementos das duas seções anteriores, e usá-lo para testar sua configuração de IdP OIDC.

https://mydomain.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Você pode encontrar o domínio na página do console Domain name (Nome do domínio) do grupo de usuários. O client_id está na página General settings (Configurações gerais). Use o URL de retorno de chamada para o parâmetro redirect_uri. Esse é o URL da página para a qual o usuário será redirecionado após uma autenticação bem-sucedida.