Usando provedores de OIDC identidade com 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á.

Usando provedores de OIDC identidade com um grupo de usuários

Os usuários podem entrar no seu aplicativo usando suas contas existentes dos provedores de identidade do OpenID Connect (OIDC) (IdPs). Com os OIDC provedores, os usuários de sistemas independentes de login único podem fornecer as credenciais existentes enquanto seu aplicativo recebe OIDC tokens no formato compartilhado dos grupos de usuários. Um grupo de usuários é um OIDC IdP que também pode servir como um intermediário confiável entre vários aplicativos externos OIDC IdPs e seu aplicativo.

Os usuários que fazem login com um OIDC IdP não precisam fornecer novas credenciais ou informações para acessar seu aplicativo de grupo de usuários. Seu aplicativo pode redirecioná-los silenciosamente para seu IdP para login, com um grupo de usuários como uma ferramenta em segundo plano que padroniza o formato do token para seu aplicativo. Para saber mais sobre o redirecionamento de IdP, consulte. Autorizar endpoint

Assim como com outros provedores de identidade terceirizados, você deve registrar seu aplicativo com o OIDC provedor e obter informações sobre o aplicativo IdP que você deseja conectar ao seu grupo de usuários. Um OIDC IdP do grupo de usuários requer um ID do cliente, um segredo do cliente, os escopos que você deseja solicitar e informações sobre os endpoints do serviço do provedor. Seu grupo de usuários pode descobrir os OIDC endpoints do provedor a partir de um endpoint de descoberta ou você pode inseri-los manualmente. Você também deve examinar os tokens de ID do provedor e criar mapeamentos de atributos entre o IdP e os atributos em seu grupo de usuários.

Visão geral da autenticação com um OIDC IdP
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 OIDC federação com os grupos de identidade do Amazon Cognito.

Você pode adicionar um OIDC IdP ao seu grupo de usuários no AWS Management Console, por meio do ou com o AWS CLI método do grupo API 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 OIDC IdP com a seguinte configuração:

    • Comporta a autenticação de cliente client_secret_post. O Amazon Cognito não verifica a token_endpoint_auth_methods_supported declaração no endpoint de OIDC descoberta do 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ó é usado HTTPS para OIDC endpoints como openid_configurationuserInfo, e. jwks_uri

    • Usa somente TCP as portas 80 e 443 para OIDC endpoints.

    • Assina apenas tokens de ID com HMAC -SHA,ECDSA, ou RSA algoritmos.

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

    • Apresenta uma chave pública não expirada com uma cadeia de confiança de CA raiz válida.

Etapa 1: registrar-se com um OIDC IdP

Antes de criar um OIDC IdP com o Amazon Cognito, você deve registrar seu aplicativo com o OIDC IdP para receber um ID e um segredo do cliente.

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

    Links para OIDC IdPs
    OIDCIdP Como instalar OIDCDescoberta URL
    Salesforce

    Instale um provedor de identidade Salesforce

    https://login.salesforce.com

    Ping Identity

    Instale um provedor de identidade Ping Identity

    https://Your Ping domain address: 9031/idp/userinfo.openid

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

    Okta

    Instale um provedor de identidade Okta

    https://Your Okta subdomain.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 Usando provedores de identidade social com um grupo de usuários.

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

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Registre seu retorno de chamada URL com seu grupo de usuários do Amazon Cognito. Essa é a URL página em que o Amazon Cognito redireciona seu 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 OIDC IdP fornece um ID do cliente e um segredo do cliente. Você os usará ao configurar um OIDC IdP em seu grupo de usuários.

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

Você usa um OIDC IdP quando deseja estabelecer confiança entre um IdP OIDC compatível, 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 Iniciar URL, insira um URL no /authorize endpoint para o domínio do grupo de usuários que faz login com seu IdP do Salesforce. Quando seus usuários acessam seu aplicativo conectado, o Salesforce os direciona para isso URL para concluir o login. Em seguida, o Salesforce redireciona os usuários para o retorno de chamada URL que você associou ao seu cliente de aplicativo.

      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. Ative OAuthas configurações e insira o /oauth2/idpresponse endpoint URL do seu domínio do grupo de usuários no Callback URL. É URL aqui que a Salesforce emite o código de autorização que o Amazon Cognito troca por um token. 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 OIDC IdP ao seu grupo de usuários

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

Para adicionar um OIDC IdP (console do Amazon Cognito)

Adicionar um OIDC IdP
  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 OAuth2.0.

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

  10. Escolha um método de solicitação de atributo para fornecer ao Amazon Cognito o HTTP método (GETouPOST) que ele deve usar para buscar os detalhes do usuário no userInfoendpoint operado pelo seu provedor.

  11. Escolha um método de configuração para recuperar endpoints do OpenID Connect por meio de preenchimento automático por URL meio do emissor ou entrada manual. Use o preenchimento automático do emissor URL quando seu provedor tiver um .well-known/openid-configuration endpoint público em que o Amazon Cognito possa recuperar URLs os endpointstoken,, e. authorization userInfo jwks_uri

  12. Insira o emissor URL ouauthorization,, tokenuserInfo, e o jwks_uri endpoint URLs do seu IdP.

    nota

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

    https://login.salesforce.com

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

  13. O sub da OIDC declaração é mapeado para o atributo Username do grupo de usuários por padrão. Você pode mapear outras OIDC reivindicações para os atributos do grupo de usuários. Insira a OIDC declaração e escolha o atributo correspondente do grupo de usuários 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 OIDC IdP ao cliente do aplicativo em Provedores de identidade.

  17. Escolha Salvar alterações.

Para adicionar um OIDC IdP ()AWS CLI

  • Veja as descrições dos parâmetros do CreateIdentityProviderAPImétodo.

    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 sua configuração de OIDC IdP

Você pode criar a autorização URL usando os elementos das duas seções anteriores e usando-os para testar a configuração do OIDC IdP.

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 seu retorno de chamada URL para o parâmetro redirect_uri. Esta é a URL página para a qual seu usuário será redirecionado após uma autenticação bem-sucedida.