

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

# Trabalhando com fontes de Amazon Cognito identidade
<a name="identity-sources-cognito"></a>

As permissões verificadas trabalham em estreita colaboração com os grupos de usuários do Amazon Cognito. Amazon Cognito JWTs têm uma estrutura previsível. As permissões verificadas reconhecem essa estrutura e tiram o máximo proveito das informações que ela contém. Por exemplo, você pode implementar um modelo de autorização de controle de acesso baseado em função (RBAC) com tokens de ID ou tokens de acesso.

Uma nova fonte de identidade de grupos de usuários do Amazon Cognito exige as seguintes informações:
+  Região da AWS A.
+ O ID do grupo de usuários.
+ O tipo de entidade principal que você deseja associar à sua fonte de identidade, por exemplo`MyCorp::User`.
+ O tipo de entidade do grupo principal que você deseja associar à sua fonte de identidade, por exemplo`MyCorp::UserGroup`.
+ O cliente IDs do seu grupo de usuários que você deseja autorizar a fazer solicitações ao seu repositório de políticas.

Como as Permissões Verificadas só funcionam com grupos de usuários do Amazon Cognito nos mesmos Conta da AWS, você não pode especificar uma fonte de identidade em outra conta. As permissões verificadas definem o *prefixo da entidade* — o identificador da fonte de identidade que você deve referenciar nas políticas que atuam de acordo com os diretores do grupo de usuários — como o ID do seu grupo de usuários, por exemplo. `us-west-2_EXAMPLE` Nesse caso, você referenciaria um usuário nesse grupo de usuários com ID `a1b2c3d4-5678-90ab-cdef-EXAMPLE22222` como `us-west-2_EXAMPLE|a1b2c3d4-5678-90ab-cdef-EXAMPLE22222`

As *declarações* de token do grupo de usuários podem conter atributos, escopos, grupos IDs, clientes e dados personalizados. [Amazon Cognito JWTs](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html)têm a capacidade de incluir uma variedade de informações que podem contribuir para as decisões de autorização nas Permissões verificadas. Isso inclui:

1. Declarações de nome de usuário e grupo com um `cognito:` prefixo

1. [Atributos de usuário personalizados](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes) com um `custom: prefix`

1. Declarações personalizadas adicionadas em tempo de execução

1. Reivindicações padrão do OIDC, como e `sub` `email`

Abordamos essas reivindicações em detalhes e como gerenciá-las nas políticas de permissões verificadas, em[Mapeamento de Amazon Cognito tokens para o esquema](cognito-map-token-to-schema.md).

**Importante**  
Embora você possa revogar Amazon Cognito os tokens antes que eles expirem, eles JWTs são considerados recursos apátridas que são independentes, com assinatura e validade. Espera-se que os serviços em conformidade com [o JSON Web Token RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) validem os tokens remotamente e não precisem validá-los com o emissor. Isso significa que é possível que as Permissões Verificadas concedam acesso com base em um token que foi revogado ou emitido para um usuário que foi posteriormente excluído. Para mitigar esse risco, recomendamos que você crie seus tokens com o menor período de validade possível e revogue os tokens de atualização quando quiser remover a autorização para continuar a sessão de um usuário. Para obter mais informações, consulte [Encerramento de sessões de usuário com revogação de token](https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html)

O exemplo a seguir mostra como você pode criar uma política que faça referência a algumas das reivindicações de grupos de usuários do Amazon Cognito associadas a um principal.

```
permit(
     principal, 
     action, 
     resource == ExampleCo::Photo::"VacationPhoto94.jpg" 
)
when { 
     principal["cognito:username"]) == "alice" &&
     principal["custom:department"]) == "Finance"
};
```

O exemplo a seguir mostra como você pode criar uma política que faça referência a um principal que é um usuário em um grupo de usuários do Cognito. Observe que o ID principal assume a forma de`"<userpool-id>|<sub>"`.

```
permit(
     principal == ExampleCo::User::"us-east-1_example|a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", 
     action, 
     resource == ExampleCo::Photo::"VacationPhoto94.jpg" 
);
```

As políticas do Cedar para fontes de identidade de grupos de usuários em Permissões verificadas usam uma sintaxe especial para nomes de declarações que contêm caracteres diferentes de alfanuméricos e sublinhado (). `_` Isso inclui declarações de prefixo do grupo de usuários que contêm um `:` `cognito:username` caractere, como e. `custom:department` Para escrever uma condição de política que faça referência à `custom:department` reivindicação `cognito:username` or, escreva-a como `principal["cognito:username"]` e`principal["custom:department"]`, respectivamente.

**nota**  
Se um token contiver uma declaração com um `custom:` prefixo `cognito:` or e um nome de solicitação com o valor literal `cognito` ou`custom`, uma solicitação de autorização com [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)falhará com a. `ValidationException`

Para obter mais informações sobre o mapeamento de declarações, consulte[Mapeamento de Amazon Cognito tokens para o esquema](cognito-map-token-to-schema.md). Para obter mais informações sobre autorização para Amazon Cognito usuários, consulte [Autorização com permissões verificadas da Amazon no Guia](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-authorization-with-avp.html) do *desenvolvedor do Amazon Cognito*.

**Topics**
+ [Criação de fontes de Amazon Cognito identidade do Amazon Verified Permissions](cognito-create.md)
+ [Editando fontes de Amazon Cognito identidade do Amazon Verified Permissions](cognito-edit.md)
+ [Mapeamento de Amazon Cognito tokens para o esquema](cognito-map-token-to-schema.md)
+ [Validação de clientes e públicos para Amazon Cognito](cognito-validation.md)