Como adicionar e gerenciar provedores de identidade SAML em um grupo de usuários - Amazon Cognito

Como adicionar e gerenciar provedores de identidade SAML em um grupo de usuários

Depois de configurar seu provedor de identidades para trabalhar com o Amazon Cognito, você pode adicioná-lo aos seus grupos de usuários e clientes de aplicações. Os procedimentos a seguir demonstram como criar, modificar e excluir provedores SAML em um grupo de usuários do Amazon Cognito.

AWS Management Console

É possível usar o AWS Management Console para criar e excluir provedores de identidade (IdP) SAML.

Antes de criar um IdP SAML, é necessário ter o documento de metadados do SAML, que você obtém do IdP de terceiros. Para obter instruções sobre como obter ou gerar o documento de metadados do SAML necessário, consulte Como configurar seu provedor de identidades SAML de terceiros.

Para configurar um IdP SAML 2.0 em seu grupo de usuários
  1. Acesse o console do Amazon Cognito. Se solicitado, insira suas credenciais da AWS.

  2. Escolha User Pools (Grupos de usuários).

  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 escolha Add an identity provider (Adicionar um provedor de identidade).

  5. Escolha um IdP SAML.

  6. Insira um Nome de provedor. Você pode passar esse nome amigável em um parâmetro de solicitação identity_provider para Autorizar endpoint.

  7. Insira Identifiers (Identificadores) separados por vírgulas. Um identificador diz ao Amazon Cognito que ele deve conferir o endereço de e-mail que um usuário insere quando faz o acesso e, em seguida, direcioná-lo ao provedor que corresponde ao domínio dele.

  8. Escolha Add sign-out flow (Adicionar fluxo de desconexão) se quiser que o Amazon Cognito envie solicitações de desconexão assinadas ao seu provedor quando um usuário se desconectar. Você deve configurar seu IdP SAML 2.0 para enviar respostas de desconexão ao endpoint https://mydomain.us-east-1.amazoncognito.com/saml2/logout que é criado quando você configura a interface do usuário hospedada. O endpoint saml2/logout usa uma associação POST.

    nota

    Se você selecionar essa opção e seu IdP SAML esperar uma solicitação de logout assinada, você também precisará configurar o IdP SAML com um certificado de assinatura do seu grupo de usuários.

    O IdP SAML processará a solicitação de logout assinada e desconectará seu usuário da sessão do Amazon Cognito.

  9. Escolha sua configuração de login SAML iniciada pelo IdP. Como prática recomendada de segurança, escolha Aceitar somente declarações SAML iniciadas pelo SP. Se você preparou seu ambiente para aceitar com segurança sessões de login SAML não solicitadas, escolha Aceitar declarações de SAML iniciadas pelo SP e iniciadas pelo IdP. Para ter mais informações, consulte Iniciação de sessão SAML em grupos de usuários do Amazon Cognito.

  10. Escolha uma Metadata document source (Fonte de documento de metadados). Se seu IdP oferecer metadados SAML em um URL público, você poderá escolher Metadata document URL (URL do documento de metadados) e inserir esse URL público. Do contrário, escolha Upload metadata document (Carregar documento de metadados) e, em seguida, um arquivo de metadados que você tenha baixado de seu provedor anteriormente.

    nota

    Se seu provedor tiver um endpoint público, recomendamos que você insira um URL do documento de metadados em vez de carregar um arquivo. O Amazon Cognito atualiza os metadados automaticamente a partir do URL de metadados. Normalmente, a atualização de metadados ocorre a cada seis horas ou antes de os metadados expirarem, o que ocorrer primeiro.

  11. Escolha Mapear atributos entre seu provedor SAML e sua aplicação para mapear atributos do provedor SAML para o perfil de usuário em seu grupo de usuários. Inclua os atributos obrigatórios do grupo de usuários no mapa de atributos.

    Por exemplo, quando escolher o User pool attribute (Atributo do grupo de usuários) email, insira o nome do atributo SAML como ele aparece na declaração SAML de seu IdP. Se o IdP oferecer exemplos de declarações SAML, é possível usá-los para ajudar você a encontrar o nome. Alguns IdPs usam nomes simples, comoemail, enquanto outros usam nomes como os que seguem.

    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  12. Escolha Criar.

API/CLI

Use os comandos a seguir para criar e gerenciar um provedor de identidade (IdP) SAML.

Para criar um IdP e carregar um documento de metadados
  • AWS CLI: aws cognito-idp create-identity-provider

    Exemplo com arquivo de metadados: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    Onde details.json contém:

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    nota

    Se<SAML metadata XML> contiver qualquer instância do caractere ", você deverá adicionar \ como caractere de escape: \".

    Exemplo com URL de metadados: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • API da AWS: CreateIdentityProvider

Para fazer upload de um novo documento de metadados para um IdP
  • AWS CLI: aws cognito-idp update-identity-provider

    Exemplo com arquivo de metadados: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    Onde details.json contém:

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    nota

    Se<SAML metadata XML> contiver qualquer instância do caractere ", você deverá adicionar \ como caractere de escape: \".

    Exemplo com URL de metadados: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • API da AWS: UpdateIdentityProvider

Para obter informações sobre um IdP específico
  • AWS CLI: aws cognito-idp describe-identity-provider

    aws cognito-idp describe-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • API da AWS: DescribeIdentityProvider

Para listar informações sobre todos os IdPs
  • AWS CLI: aws cognito-idp list-identity-providers

    Exemplo: aws cognito-idp list-identity-providers --user-pool-id us-east-1_EXAMPLE --max-results 3

  • API da AWS: ListIdentityProviders

Para excluir um IdP
  • AWS CLI: aws cognito-idp delete-identity-provider

    aws cognito-idp delete-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • API da AWS: DeleteIdentityProvider

Para configurar o IdP SAML para adicionar um grupo de usuários como uma parte dependente
  • O URN do provedor de serviço dos grupos de usuários é urn:amazon:cognito:sp:us-east-1_EXAMPLE. O Amazon Cognito exige um valor de restrição de público que corresponda a esse URN na resposta do SAML. Configure o IdP para usar o seguinte endpoint de vinculação POST para a mensagem de resposta do IdP para o SP.

    https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse
  • O IdP SAML deve preencher o NameID e quaisquer atributos necessários para o grupo de usuários na declaração do SAML. NameID é usado para identificar exclusivamente o usuário federado do SAML no grupo de usuários. O IdP deve transmitir o ID de nome do SAML de cada usuário em um formato consistente com distinção entre maiúsculas e minúsculas. Qualquer variação no valor do ID do nome de um usuário cria um novo perfil de usuário.

Como fornecer um certificado de assinatura ao IdP SAML 2.0
  • Para baixar uma cópia da chave pública do Amazon Cognito que o IdP pode usar para validar solicitações de logout SAML, escolha a guia Experiência de login do grupo de usuários, selecione seu IdP e, em Ver certificado de assinatura, selecione Baixar como .crt.

É possível excluir qualquer provedor SAML configurado em seu grupo de usuários com o console do Amazon Cognito.

Como excluir um provedor SAML
  1. Faça login no console do Amazon Cognito.

  2. No painel de navegação, escolha User Pools (Grupos de usuários) e escolha o grupo de usuários que deseja editar.

  3. Escolha a guia Experiência de login e localize Login do provedor de identidades federado.

  4. Selecione o botão de opção ao lado dos IdPs SAML que deseja excluir.

  5. Quando receber a solicitação de Delete identity provider (Excluir provedor de identidade), insira o nome do provedor SAML para confirmar a exclusão e escolha Delete (Excluir).