

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

# Configurar um provedor OIDC como um IdP do banco de identidades
<a name="open-id"></a>

O [OpenID Connect](http://openid.net/connect/) é um padrão aberto para autenticação que é compatível com vários provedores de login. O Amazon Cognito permite vincular identidades com provedores OpenID Connect que você configura por meio do [AWS Identity and Access Management](https://aws.amazon.com/iam/).

**Como adicionar um provedor OpenID Connect**

*Para ter informações sobre como criar um provedor OpenID Connect, consulte [Criar provedores de identidades OpenID Connect (OIDC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc.html) no Guia do usuário do AWS Identity and Access Management *.

**Como associar um provedor ao Amazon Cognito**

**Como adicionar um provedor de identidades (IdP) OIDC**

1. Selecione **Bancos de identidades** no [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Selecione um banco de identidades.

1. Selecione a guia **Acesso do usuário**.

1. Selecione **Adicionar provedor de identidade**.

1. Selecione **OpenID Connect (OIDC)**.

1. Escolha um **provedor de identidade OIDC** do IAM IdPs em seu. Conta da AWS Se você quiser adicionar um novo provedor SAML, selecione **Criar provedor** para navegar até o console do IAM.

1. Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina **Configurações de perfil**.

   1. Você pode atribuir aos usuários desse IdP o **Perfil padrão** que você configurou ao definir seu **Perfil autenticado** ou **Escolher perfil com regras**.

     1. Se você escolheu **Escolher perfil com regras**, insira a **Declaração** de origem da autenticação do usuário, o **Operador** pelo qual deseja comparar a declaração, o **Valor** que gerará uma correspondência com essa opção de perfil e o **Perfil** que deseja atribuir quando houver correspondência com a **Atribuição de função**. Selecione **Adicionar outra** para criar uma regra adicional com base em uma condição diferente.

     1. Selecione uma **Resolução de perfil**. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu **Perfil autenticado**.

1. Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure **Atributos para controle de acesso**.

   1. Para não aplicar nenhuma tag de entidade principal, selecione **Inativo**.

   1. Para aplicar tags de entidade principal com base em declarações `sub` e `aud`, selecione **Usar mapeamentos padrão**.

   1. Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione **Usar mapeamentos personalizados**. Depois, insira a **Chave de tag** que você deseja obter de cada **declaração** e representar em uma tag.

1. Selecione **Salvar alterações**.

É possível associar vários provedores OpenID Connect a um único grupo de identidades.

**Uso do OpenID Connect**

Consulte a documentação do provedor sobre como fazer login e receber um token de ID.

Assim que tiver um token, adicione-o ao mapa de logins. Use o URI do provedor como chave.

**Como validar um token de OpenID Connect**

Ao fazer a primeira integração com o Amazon Cognito, você poderá receber uma exceção `InvalidToken`. É importante entender como o Amazon Cognito valida tokens de OpenID Connect.

**nota**  
Conforme especificado aqui ([https://tools.ietf.org/html/rfc7523](https://tools.ietf.org/html/rfc7523)), o Amazon Cognito oferece um período de carência de 5 minutos para lidar com qualquer distorção do relógio entre os sistemas.

1. O parâmetro `iss` deve corresponder à chave que o mapa de logins usa (por exemplo, login.provider.com).

1. A assinatura deve ser válida. A assinatura deve ser verificável por meio de uma chave de ativação pública RSA.
**nota**  
Os bancos de identidades mantêm um cache da chave de assinatura do IdP OIDC por um breve período. Se o provedor alterar a chave de assinatura, o Amazon Cognito poderá retornar um erro `NoKeyFound` até que esse cache seja atualizado. Se você encontrar esse erro, aguarde cerca de 10 minutos para que o banco de identidades atualize a chave de assinatura.

1. A impressão digital da chave pública do certificado corresponde à impressão digital que você definiu no IAM quando criou seu provedor OIDC.

1. Se o `azp` parâmetro estiver presente, verifique esse valor em relação ao cliente listado IDs em seu provedor OIDC.

1. Se o `azp` parâmetro não estiver presente, verifique o `aud` parâmetro em relação ao cliente listado IDs em seu provedor OIDC.

O site [jwt.io](http://jwt.io/) é um recurso valioso que você pode usar para decodificar tokens e verificar esses valores.

## Android
<a name="set-up-open-id-1.android"></a>

```
Map<String, String> logins = new HashMap<String, String>();
logins.put("login.provider.com", token);
credentialsProvider.setLogins(logins);
```

## iOS – Objective-C
<a name="set-up-open-id-1.ios-objc"></a>

```
credentialsProvider.logins = @{ "login.provider.com": token }
```

## JavaScript
<a name="set-up-open-id-1.javascript"></a>

```
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
 IdentityPoolId: 'IDENTITY_POOL_ID',
 Logins: {
    'login.provider.com': token
 }
});
```