

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 o Login com a Apple como um IdP do banco de identidades
<a name="apple"></a>

Os bancos de identidades do Amazon Cognito trabalham com o recurso Fazer login com a Apple para fornecer autenticação federada aos usuários da aplicação Web e móvel. Esta seção explica como inscrever e configurar a aplicação usando Sign in with Apple como provedor de identidade (IdP).

Para adicionar Sign in with Apple como provedor de autenticação para um grupo de identidades, você deve realizar dois procedimentos. Primeiro, integre o Sign in with Apple a uma aplicação e, em seguida, configure-o nos grupos de identidades. Para up-to-date obter mais informações sobre como configurar o Login com a Apple, consulte [Configurando seu ambiente para fazer login com a Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) na documentação do desenvolvedor da Apple.

## Configurar o Sign in with Apple
<a name="login-with-apple-setup"></a>

Para configurar Sign in with Apple como IdP, é necessário inscreva sua aplicação na Apple para receber o ID de cliente.

1. Crie uma [conta de desenvolvedor com a Apple](https://developer.apple.com/programs/enroll/).

1. [Faça login](https://developer.apple.com/account/#/welcome) com as credenciais da Apple.

1. No painel de navegação esquerdo, escolha **Certificados IDs e perfis**.

1. No painel de navegação à esquerda, escolha **Identificadores**.

1. Na página **Identifiers** (Identificadores), escolha o ícone **\$1**.

1. Na página **Registrar um novo identificador**, escolha **Aplicativo** e IDs, em seguida, escolha **Continuar**.

1. Na página **Register an App ID** (Registrar ID de uma aplicação), faça o seguinte:

   1. Em **Description (Descrição)**, digite uma descrição.

   1. Em **ID do pacote,** digite um identificador. Anote esse **ID de pacote**, pois você precisará desse valor para configurar a Apple como provedor no grupo de identidades. 

   1. Em **Capabilities** (Recursos), escolha **Sign In with Apple** (Fazer login com a Apple) e, depois, selecione **Edit** (Editar).

   1. Na página **Sign in with Apple: configuração do ID da aplicação**, selecione a configuração adequada para sua aplicação. Em seguida, escolha **Salvar**.

   1. Escolha **Continue** (Continuar).

1. Na página **Confirm your App ID (Confirmar ID do seu app)**, escolha **Register (Registrar)**.

1. Siga para a etapa 10 se quiser integrar o recurso Fazer login com a Apple a uma aplicação iOS nativa. A etapa 11 é para aplicativos que você deseja integrar ao recurso Fazer login com o Apple JS.

1. Na página **Identificadores**, escolha o IDs menu **Aplicativo** e, em seguida, **Serviços IDs**. Escolha o ícone **\$1**.

1. Na página **Registrar um novo identificador**, escolha **Serviços** e IDs, em seguida, escolha **Continuar**.

1. Na página **Register a Services ID (Registrar um ID de serviços)**, faça o seguinte:

   1. Em **Description (Descrição)**, digite uma descrição.

   1. Em **Identifier (Identificador)**, digite um identificador. Anote o ID de serviços, pois você precisará desse valor para configurar a Apple como provedor no grupo de identidades. 

   1. Selecione **Fazer login com a Apple** e escolha **Configurar**.

   1. Na página **Web Authentication Configuration (Configuração de autenticação na web)**, escolha um **Primary App ID (ID de app primário)**. Em **Site URLs**, escolha o ícone **\$1**. Em **Domínios e subdomínios**, insira o nome de domínio do seu aplicativo. Em **Return URLs,** insira o URL de retorno de chamada para o qual a autorização redireciona o usuário após a autenticação por meio do Sign in with Apple. 

   1. Escolha **Próximo**.

   1. Escolha **Continue** (Continuar) e, depois, **Register** (Registrar).

1. No painel de navegação à esquerda, selecione **Chaves**.

1. Na página **Keys (Chaves)**, escolha o ícone **\$1**.

1. Na página **Register a New Key (Registrar uma chave nova)**, faça o seguinte:

   1. Em **Key Name (Nome da chave)**, digite um nome de chave. 

   1. Escolha **Sign In with Apple** (Fazer login com a Apple) e escolha **Configure** (Configurar).

   1. Na página **Configurar chave**, escolha um **ID de aplicativo primário** e selecione **Salvar**.

   1. Escolha **Continue** (Continuar) e, depois, **Register** (Registrar).

**nota**  
Para integrar o recurso Fazer login com a Apple a um aplicativo iOS nativo, consulte [ Implementar a autenticação de usuário com o recurso Fazer login com a Apple. ](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple)  
Para integrar o recurso Fazer login com a Apple em uma plataforma diferente do iOS nativo, consulte [ Fazer login com o Apple JS.](https://developer.apple.com/documentation/signinwithapplejs/) 

## Configurar o provedor externo no console de identidades federadas do Amazon Cognito
<a name="login-with-apple-configure-provider"></a>

Use o procedimento a seguir para configurar seu provedor externo.

**Como adicionar um provedor de identidades (IdP) Sign in with Apple**

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 **Sign in with Apple**.

1. Insira o **ID de serviços** do OAuth projeto que você criou com o [Apple Developer](https://developer.apple.com). Para ter mais informações, consulte [Authenticating users with Sign in with Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) na *Documentação do Sign in with Apple*.

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

## Sign in with Apple como provedor nos exemplos de CLI de identidades federadas do Amazon Cognito
<a name="sign-in-with-apple-cli-examples"></a>

Esse exemplo cria um grupo de identidades denominado `MyIdentityPool` com o Sign in with Apple como IdP.

`aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool --supported-login-providers appleid.apple.com="sameple.apple.clientid"`

 Para obter mais informações, consulte [Criar grupo de identidades](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/create-identity-pool.html) 

**Gerar um ID de identidade do Amazon Cognito**  
 Esse exemplo gera (ou recupera) um ID do Amazon Cognito. Esta é uma API pública, portanto você não precisa de credenciais para chamar essa API.

`aws cognito-identity get-id --identity-pool-id SampleIdentityPoolId --logins appleid.apple.com="SignInWithAppleIdToken"`

Para obter mais informações, consulte [get-id.](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/get-id.html) 

**Obter credenciais para um ID de identidade do Amazon Cognito**  
Este exemplo retorna credenciais para o ID de identidade fornecido e o recurso Fazer login com a Apple. Esta é uma API pública, portanto você não precisa de credenciais para chamar essa API.

`aws cognito-identity get-credentials-for-identity --identity-id SampleIdentityId --logins appleid.apple.com="SignInWithAppleIdToken" `

Para obter mais informações, consulte [get-credentials-for-identity](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/get-credentials-for-identity.html). 

## Usar o recurso Fazer login com a Apple: Android
<a name="set-up-apple-1.android"></a>

A Apple não fornece um SDK compatível com o recurso Fazer login com a Apple para Android. Em vez disso, é possível usar o fluxo da Web em uma visualização da Web.
+ Para configurar o recurso Fazer login com a Apple no aplicativo, siga [Configuring Your Web page for Sign In with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-webpage-for-sign-in-with-apple) na documentação da Apple.
+ Para adicionar um botão **Sign in with Apple** à interface de usuário do Android, siga [Displaying Sign in with Apple buttons on the web](https://developer.apple.com/documentation/signinwithapple/displaying-sign-in-with-apple-buttons-on-the-web) na documentação da Apple.
+ Para autenticar usuários com segurança usando Sign in with Apple, siga [Authenticating Users with Sign In with Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) (Autenticar usuários com o Sign in with Apple) na documentação da Apple.

Fazer login com a Apple usa um objeto de sessão para rastrear o estado. O Amazon Cognito usa o token de ID desse objeto de sessão para autenticar o usuário, gerar o identificador exclusivo e, se necessário, conceder ao usuário acesso a outros recursos. AWS 

```
@Override
public void onSuccess(Bundle response) {
    String token = response.getString("id_token");
    Map<String, String> logins = new HashMap<String, String>();
    logins.put("appleid.apple.com", token);
    credentialsProvider.setLogins(logins);
}
```

## Usar o recurso Fazer login com a Apple: iOS – Objective-C
<a name="set-up-apple-1.ios-objc"></a>

A Apple forneceu suporte ao SDK para o recurso Fazer login com a Apple em aplicativos nativos do iOS. Para implementar a autenticação de usuário com o recurso Fazer login com a Apple em dispositivos nativos do iOS, siga [Implementing User Authentication with Sign in with Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) na documentação da Apple.

O Amazon Cognito usa o token de ID para autenticar o usuário, gerar o identificador exclusivo e, se necessário, conceder ao usuário acesso a outros recursos. AWS 

```
(void)finishedWithAuth: (ASAuthorizationAppleIDCredential *)auth error: (NSError *) error {
        NSString *idToken = [ASAuthorizationAppleIDCredential objectForKey:@"identityToken"];
        credentialsProvider.logins = @{ "appleid.apple.com": idToken };
    }
```

## Usar o recurso Fazer login com a Apple: iOS – Swift
<a name="set-up-apple-1.ios-swift"></a>

A Apple forneceu suporte ao SDK para o recurso Fazer login com a Apple em aplicativos nativos do iOS. Para implementar a autenticação de usuário com o recurso Fazer login com a Apple em dispositivos nativos do iOS, siga [Implementing User Authentication with Sign in with Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) na documentação da Apple.

O Amazon Cognito usa o token de ID para autenticar o usuário, gerar o identificador exclusivo e, se necessário, conceder ao usuário acesso a outros recursos. AWS 

Para obter mais informações sobre como configurar o Sign in with Apple no iOS, consulte [Sign in with Apple](https://docs.amplify.aws/sdk/auth/federated-identities/q/platform/ios#set-up-sign-in-with-apple).

```
func finishedWithAuth(auth: ASAuthorizationAppleIDCredential!, error: NSError!) {
    if error != nil {
      print(error.localizedDescription)
    }
    else {
      let idToken = auth.identityToken,
      credentialsProvider.logins = ["appleid.apple.com": idToken!]
    }
}
```

## Use o Login com a Apple: JavaScript
<a name="set-up-apple-1.javascript"></a>

A Apple não fornece um SDK compatível com o Sign in with Apple for JavaScript. Em vez disso, é possível usar o fluxo da Web em uma visualização da Web.
+ Para configurar o recurso Fazer login com a Apple no aplicativo, siga [Configuring Your Web page for Sign In with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-webpage-for-sign-in-with-apple) na documentação da Apple.
+ Para adicionar um botão **Fazer login com a Apple** à sua interface de JavaScript usuário, siga [Exibindo os botões de login com a Apple na web](https://developer.apple.com/documentation/signinwithapple/displaying-sign-in-with-apple-buttons-on-the-web) na documentação da Apple.
+ Para autenticar usuários com segurança usando Sign in with Apple, siga [Authenticating Users with Sign In with Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) (Autenticar usuários com o Sign in with Apple) na documentação da Apple.

Fazer login com a Apple usa um objeto de sessão para rastrear o estado. O Amazon Cognito usa o token de ID desse objeto de sessão para autenticar o usuário, gerar o identificador exclusivo e, se necessário, conceder ao usuário acesso a outros recursos. AWS 

```
function signinCallback(authResult) {
     // Add the apple's id token to the Amazon Cognito credentials login map.
     AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'IDENTITY_POOL_ID',
        Logins: {
           'appleid.apple.com': authResult['id_token']
        }
     });

     // Obtain AWS credentials
     AWS.config.credentials.get(function(){
        // Access AWS resources here.
     });
}
```