Coisas que você deve saber sobre os grupos SAML IdPs de usuários do Amazon Cognito - 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á.

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

  1. O Amazon Cognito é compatível com valores de relayState maiores do que 80 bytes. Embora SAML as especificações afirmem que o relayState valor “não deve exceder 80 bytes de comprimento”, a prática atual do setor geralmente se desvia desse comportamento. Como consequência, rejeitar relayState valores maiores que 80 bytes interromperá muitas integrações padrão SAML de provedores.

  2. 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âmetro relayState. 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/idpresponse

Consulte 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 houver NameID mudanças, o Amazon Cognito considera que a afirmação é para um novo usuário. O atributo definido NameID 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 sua NameID 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 sua NameID declaração de IdP urn: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 se urn: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 de Audience 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 um InResponseTo 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 um Recipient valor do saml2/idpresponse endpoint do seu grupo de usuários e, para o SP-InitiatedSAML, um InResponseTo 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.

  1. 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.

  2. 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 aceita LogoutResponse como HTTP POST solicitações. Os grupos de usuários não aceitam respostas de logout com HTTP GET vinculação.