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
-
Acesse o console do Amazon Cognito. Se solicitado, insira suas credenciais da AWS.
-
Escolha User Pools (Grupos de usuários).
-
Escolha um grupo de usuários existente na lista ou crie um grupo de usuários.
-
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).
-
Escolha um IdP SAML.
-
Insira um Nome de provedor. Você pode passar esse nome amigável em um parâmetro de solicitação identity_provider
para Autorizar endpoint.
-
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.
-
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.
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.
-
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.
-
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.
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.
-
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
-
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
"
}
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
"
}
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
-
Faça login no console do Amazon Cognito.
-
No painel de navegação, escolha User Pools (Grupos de usuários) e escolha o grupo de usuários que deseja editar.
-
Escolha a guia Experiência de login e localize Login do provedor de identidades federado.
-
Selecione o botão de opção ao lado dos IdPs SAML que deseja excluir.
-
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).