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á.
Coisas que você deve saber sobre os grupos SAML IdPs de usuários do Amazon Cognito
A implementação de um IdP SAML 2.0 vem com alguns requisitos e restrições. Consulte esta seção ao implementar seu IdP. Você também encontrará informações úteis para solucionar erros durante a SAML federação com um grupo de usuários.
- O Amazon Cognito processa SAML afirmações para você
-
Os grupos de usuários do Amazon Cognito oferecem suporte à federação SAML 2.0 com endpoints de POST vinculação. Isso elimina a necessidade de seu aplicativo recuperar ou analisar respostas de SAML asserção, porque o grupo de usuários recebe diretamente a SAML resposta do seu IdP por meio de um agente de usuário. Seu grupo de usuários atua como um provedor de serviços (SP) em nome da aplicação. O Amazon Cognito oferece suporte ao single sign-on (SSO) iniciado pelo SP e pelo IDP, conforme descrito nas seções 5.1.2 e 5.1.4 da Visão geral técnica da V2.0. SAML
- Forneça um certificado de assinatura de IdP válido
-
O certificado de assinatura nos metadados do seu SAML provedor não deve expirar quando você configura o SAML IdP em seu grupo de usuários.
- Grupos de usuários oferecem suporte a vários certificados de assinatura
-
Quando seu SAML IdP inclui mais de um certificado de assinatura nos SAML metadados, no login, seu grupo de usuários determina que a SAML declaração é válida se corresponder a qualquer certificado nos metadados. SAML Cada certificado de assinatura não deve ter mais de 4.096 caracteres.
- Mantenha o parâmetro de estado do relé
-
O Amazon Cognito e seu SAML IdP mantêm as informações da sessão com um parâmetro.
relayState
-
O Amazon Cognito é compatível com valores de
relayState
maiores do que 80 bytes. Embora SAML as especificações afirmem que orelayState
valor “não deve exceder 80 bytes de comprimento”, a prática atual do setor geralmente se desvia desse comportamento. Como consequência, rejeitarrelayState
valores maiores que 80 bytes interromperá muitas integrações padrão SAML de provedores. -
O
relayState
token é uma referência opaca às informações de estado mantidas pelo Amazon Cognito. O Amazon Cognito não garante o conteúdo do parâmetrorelayState
. Não analise o respectivo conteúdo de forma que sua aplicação dependa do resultado. Para obter mais informações, consulte a especificação SAML 2.0.
-
- Identifique o ACS endpoint
-
Seu provedor de SAML identidade exige que você defina um endpoint de asserção para o consumidor. Seu IdP redireciona seus usuários para esse endpoint com a afirmação deles. SAML Configure o seguinte endpoint em seu domínio de grupo de usuários para POST vinculação SAML 2.0 em seu provedor de SAML identidade.
https://
Your user pool domain
/saml2/idpresponse With an Amazon Cognito domain: https://mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse With a custom domain: https://auth.example.com
/saml2/idpresponseConsulte Como configurar um domínio de grupo de usuários para obter mais informações sobre domínios do grupo de usuários.
- Sem afirmações repetidas
-
Você não pode repetir ou reproduzir uma SAML afirmação em seu endpoint do Amazon
saml2/idpresponse
Cognito. Uma SAML declaração repetida tem uma ID de afirmação que duplica a ID de uma resposta anterior do IdP. - O ID do grupo de usuários é o ID da entidade SP
-
Você deve fornecer ao seu IdP o ID do grupo de usuários no provedor de serviços (SP)
urn
, também chamado de ID da entidade do SP URI ou do público. O público URI do seu grupo de usuários tem o seguinte formato.urn:amazon:cognito:sp:
us-east-1_EXAMPLE
Você pode encontrar seu ID do grupo de usuários em Visão geral do grupo de usuários no console do Amazon Cognito
. - Mapeie todos os atributos necessários
-
Configure seu SAML IdP para fornecer valores para quaisquer atributos que você definir conforme necessário em seu grupo de usuários. Por exemplo,
email
é um atributo obrigatório comum para grupos de usuários. Antes que seus usuários possam fazer login, suas afirmações de SAML IdP devem incluir uma declaração que você mapeia para o atributo do grupo de usuários.email
Para ter mais informações sobre mapeamento de atributos, consulte Mapeamento de atributos de IdP para perfis e tokens. - O formato de afirmação tem requisitos específicos
-
Seu SAML IdP deve incluir as seguintes reivindicações na SAML declaração.
-
Uma
NameID
reclamação. O Amazon Cognito associa uma SAML afirmação ao usuário de destino por.NameID
Se houverNameID
mudanças, o Amazon Cognito considera que a afirmação é para um novo usuário. O atributo definidoNameID
na configuração do IdP deve ter um valor persistente. Para atribuir SAML usuários a um perfil de usuário consistente em seu grupo de usuários, atribua suaNameID
reivindicação a partir de um atributo com um valor que não muda.<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:persistent"> carlos </saml2:NameID>
A
Format
em suaNameID
declaração de IdPurn:oasis:names:tc:SAML:1.1:nameid-format:persistent
indica que seu IdP está transmitindo um valor imutável. O Amazon Cognito não exige essa declaração de formato e atribui um formato de seurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
o seu IdP não especificar um formato da declaração.NameID
Esse comportamento está em conformidade com a seção 2.2.2 Tipo Complexo N ameIDType, da especificação SAML 2.0. -
Uma reivindicação
AudienceRestriction
com um valor deAudience
que define o ID da entidade SP do grupo de usuários como o destino da resposta.<saml:AudienceRestriction> <saml:Audience> urn:amazon:cognito:sp:
us-east-1_EXAMPLE
</saml:AudienceRestriction> -
Para login único iniciado pelo SP, um
Response
elemento com umInResponseTo
valor do ID da solicitação original. SAML<saml2p:Response Destination="https://
mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse" ID="id123
" InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" IssueInstant="Date-time stamp
" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema">nota
SAMLAs afirmações iniciadas pelo IDP não devem conter um valor.
InResponseTo
-
Um
SubjectConfirmationData
elemento com umRecipient
valor dosaml2/idpresponse
endpoint do seu grupo de usuários e, para o SP-InitiatedSAML, umInResponseTo
valor que corresponde ao ID da solicitação originalSAML.<saml2:SubjectConfirmationData InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" NotOnOrAfter="
Date-time stamp
" Recipient="https://mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse"/>
-
- Solicitações de login iniciadas pelo SP
-
Quando Autorizar endpoint redireciona seu usuário para sua página de login do IdP, o Amazon Cognito inclui SAMLuma solicitação em um parâmetro da solicitação. URL
HTTP GET
Uma SAML solicitação contém informações sobre seu grupo de usuários, incluindo seu ACS endpoint. Opcionalmente, você pode aplicar uma assinatura criptográfica a essas solicitações. - Assine solicitações e criptografe respostas
-
Cada grupo de usuários com um SAML provedor gera um par de chaves assimétrico e um certificado de assinatura para uma assinatura digital que o Amazon Cognito atribui às solicitações. SAML Cada SAML IdP externo que você configura para suportar SAML respostas criptografadas faz com que o Amazon Cognito gere um novo par de chaves e um novo certificado de criptografia para esse provedor. Para visualizar e baixar os certificados com a chave pública, escolha seu IdP na guia Experiência de login do console do Amazon Cognito.
Para estabelecer confiança com as SAML solicitações do seu grupo de usuários, forneça ao seu IdP uma cópia do certificado de assinatura do grupo de usuários SAML 2.0. Seu IdP pode ignorar as SAML solicitações assinadas pelo grupo de usuários se você não configurar o IdP para aceitar solicitações assinadas.
-
O Amazon Cognito aplica uma assinatura digital às SAML solicitações que seu usuário passa para o seu IdP. Seu grupo de usuários assina todas as solicitações de logout único (SLO) e você pode configurar seu grupo de usuários para assinar solicitações de login único (SSO) para qualquer IdP externoSAML. Quando você fornece uma cópia do certificado, seu IdP pode verificar a integridade das solicitações de seus usuáriosSAML.
-
Seu SAML IdP pode criptografar SAML respostas com o certificado de criptografia. Quando você configura um IdP com SAML criptografia, seu IdP deve enviar somente respostas criptografadas.
-
- Codifique caracteres não alfanuméricos
-
O Amazon Cognito não aceita caracteres de 4 bytes -8UTF, como 😐 ou 𠮷 que seu IdP passa como um valor de atributo. É possível codificar o caractere em Base64, transmiti-lo como texto e, então, decodificá-lo na aplicação.
No exemplo a seguir, a declaração de atributo não será aceita:
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">😐</saml2:AttributeValue> </saml2:Attribute>
Ao contrário do exemplo anterior, a seguinte declaração de atributo será aceita:
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">8J+YkA==</saml2:AttributeValue> </saml2:Attribute>
- O endpoint de metadados deve ter uma segurança de camada de transporte válida
-
Se você ver
InvalidParameterException
ao criar um SAML IdP com um endpoint de HTTPS metadadosURL, por exemplo, “Erro ao recuperar metadados de<metadata endpoint>
”, verifique se o endpoint de metadados foi configurado SSL corretamente e se há um SSL certificado válido associado a ele. Para obter mais informações sobre a validação de certificados, consulte O que é umSSL/TLSCertificado? . - Clientes de aplicativos iniciados por IdP só SAML podem fazer login com SAML
-
Quando você ativa o suporte para um IdP SAML 2.0 que oferece suporte ao login iniciado pelo IdP em um cliente de aplicativo, você só pode adicionar outro SAML 2.0 IdPs a esse cliente de aplicativo. Você está impedido de adicionar o diretório de usuários no grupo de usuários e todos os provedores de identidade não SAML externos a um cliente de aplicativo configurado dessa forma.
- As respostas de logout devem usar vinculação POST
-
O
/saml2/logout
endpoint aceitaLogoutResponse
comoHTTP POST
solicitações. Os grupos de usuários não aceitam respostas de logout comHTTP GET
vinculação.