

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

# Assinatura e criptografia SAML
<a name="cognito-user-pools-SAML-signing-encryption"></a>

O login do SAML 2.0 acontece com base no usuário de uma aplicação como portador de solicitações e respostas em seu fluxo de autenticação. Talvez você queira que os usuários não leiam nem modifiquem esses documentos SAML em trânsito. Para fazer isso, adicione assinatura e criptografia SAML aos provedores de identidade SAML (IdPs) em seu grupo de usuários. Com a assinatura SAML, seus grupos de usuários adicionam uma assinatura às solicitações de login e saída do SAML. Com a chave pública do grupo de usuários, seu IdP pode verificar se está recebendo solicitações SAML não modificadas. Então, quando seu IdP responde e transmite as declarações de SAML para as sessões do navegador dos usuários, o IdP pode criptografar essa resposta para que o usuário não inspecione seus próprios atributos e direitos.

Com a assinatura e criptografia do SAML, todas as operações criptográficas durante as operações do SAML do grupo de usuários devem gerar assinaturas e texto cifrado com as chaves geradas pelo Amazon Cognito. user-pool-provided Atualmente, você não pode configurar um grupo de usuários para assinar solicitações ou aceitar declarações criptografadas usando uma chave externa.

**nota**  
Seus certificados de grupo de usuários são válidos por 10 anos. Uma vez por ano, o Amazon Cognito gera novos certificados de assinatura e criptografia para seu grupo de usuários. O Amazon Cognito retorna o certificado mais recente quando você solicita o certificado de assinatura e assina as solicitações com o certificado de assinatura mais recente. Seu IdP pode criptografar declarações SAML com qualquer certificado de criptografia de grupo de usuários que não tenha expirado. Seus certificados anteriores continuam válidos até o fim do prazo, e a chave pública não muda entre os certificados. Como prática recomendada, atualize anualmente o certificado na configuração do seu provedor.

**Topics**
+ [

## Aceitar respostas SAML criptografadas do seu IdP
](#cognito-user-pools-SAML-encryption)
+ [

## Assinatura de solicitações SAML
](#cognito-user-pools-SAML-signing)

## Aceitar respostas SAML criptografadas do seu IdP
<a name="cognito-user-pools-SAML-encryption"></a>

O Amazon Cognito e seu IdP podem estabelecer confidencialidade nas respostas do SAML quando os usuários fazem login e logout. O Amazon Cognito atribui um par de chaves RSA público-privado e um certificado a cada provedor externo de SAML que você configura no seu grupo de usuários. Ao ativar a criptografia de resposta para seu provedor de SAML do grupo de usuários, carregue o certificado em um IdP que aceite respostas SAML criptografadas. A conexão do grupo de usuários com o IdP SAML só funciona quando o IdP começa a criptografar todas as declarações do SAML com a chave fornecida.

Veja a seguir uma visão geral do fluxo de login com SAML criptografado.

1. Seu usuário inicia o login e escolhe o IdP SAML.

1. Seu grupo de usuários [Autorizar endpoint](authorization-endpoint.md) redireciona o usuário para o IdP SAML com uma solicitação de login do SAML. Seu grupo de usuários pode, como opção, colocar nessa solicitação uma assinatura que permita a verificação da integridade pelo IdP. Quando quiser assinar solicitações SAML, você deve configurar seu IdP para aceitar solicitações que seu grupo de usuários tenha assinado com a chave pública no certificado de assinatura.

1. O IdP SAML faz login com seu usuário e gera uma resposta SAML. O IdP criptografa a resposta com a chave pública e redireciona o usuário para o endpoint `/saml2/idpresponse` do grupo de usuários. O IdP deve criptografar a resposta conforme definido pela especificação SAML 2.0. Para obter mais informações, consulte `Element <EncryptedAssertion>` em [Declarações e protocolos para o OASIS Security Assertion Markup Language (SAML) V2.0](https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf).

1. Seu grupo de usuários decifra o texto cifrado na resposta SAML com a chave privada e faz login com seu usuário.

**Importante**  
Quando você ativa a criptografia de resposta para um IdP SAML em seu grupo de usuários, o IdP deve criptografar todas as respostas com uma chave pública específica do provedor. O Amazon Cognito não aceita respostas SAML não criptografadas de um IdP externo SAML que você configura para aceitar a criptografia. 

Qualquer IdP SAML externo no grupo de usuários pode aceitar criptografia de resposta, e cada IdP recebe seu próprio par de chaves.

------
#### [ Console de gerenciamento da AWS ]

**Para configurar a criptografia de resposta SAML**

1. Crie um [grupo de usuários](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), um [cliente de aplicação](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html) e um IdP SAML.

1. Ao criar ou editar seu provedor de identidades SAML, em **Assinar solicitações e criptografar respostas**, marque a caixa com o título **Exigir declarações de SAML criptografadas desse provedor**.

1. No menu **Provedores sociais e externos** do grupo de usuários, selecione o IdP SAML e clique em **Exibir certificado de criptografia**.

1. Escolha **Baixar como .crt** e envie o arquivo baixado ao seu IdP SAML. Configure o IdP SAML para criptografar as respostas do SAML com a chave no certificado.

------
#### [ API/CLI ]

**Para configurar a criptografia de resposta SAML**

Configure a criptografia de resposta com o `EncryptedResponses` parâmetro de uma solicitação [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou de [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Veja a seguir um exemplo de `ProviderDetails` de um IdP compatível com a assinatura da solicitação.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

Para obter o certificado de criptografia do seu grupo de usuários, faça uma solicitação de [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)API e recupere o valor de `ActiveEncryptionCertificate` no parâmetro `ProviderDetails` de resposta. Salve esse certificado e envie-o ao seu IdP como certificado de criptografia para solicitações de login do seu grupo de usuários.

------

## Assinatura de solicitações SAML
<a name="cognito-user-pools-SAML-signing"></a>

A possibilidade de provar a integridade das solicitações do SAML 2.0 ao seu IdP é uma vantagem de segurança do login do SAML iniciado pelo SP do Amazon Cognito. Cada grupo de usuários com um domínio recebe um certificado de assinatura X.509. Com a chave pública nesse certificado, os grupos de usuários aplicam uma assinatura criptográfica às *solicitações de saída* que seu grupo de usuários gera quando os usuários selecionam um IdP SAML. Como opção, você pode configurar seu cliente de aplicação para assinar *solicitações de login* SAML. Quando você assina a solicitações SAML, seu IdP pode verificar se a assinatura nos metadados XML de suas solicitações corresponde à chave pública no certificado do grupo de usuários que você fornece.

------
#### [ Console de gerenciamento da AWS ]

**Para configurar a assinatura da solicitação SAML**

1. Crie um [grupo de usuários](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), um [cliente de aplicação](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html) e um IdP SAML.

1. Ao criar ou editar seu provedor de identidades SAML, em **Assinar solicitações e criptografar respostas**, marque a caixa com o título **Assinar solicitações SAML neste provedor**.

1. No menu **Provedores sociais e externos** do grupo de usuários, selecione **Ver certificado de assinatura**.

1. Escolha **Baixar como .crt** e envie o arquivo baixado ao seu IdP SAML. Configure seu IdP SAML para verificar a assinatura das solicitações SAML recebidas.

------
#### [ API/CLI ]

**Para configurar a assinatura da solicitação SAML**

Configure a assinatura da solicitação com o `RequestSigningAlgorithm` parâmetro de uma solicitação [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou de [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Veja a seguir um exemplo de `ProviderDetails` de um IdP compatível com a assinatura da solicitação.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------