Configurando o Login com a Apple como um IdP de pool de identidade - 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á.

Configurando o Login com a Apple como um IdP de pool de identidade

O Amazon Cognito se integra ao 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 na documentação do desenvolvedor da Apple.

Configurar o Sign in with Apple

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.

  2. Faça login com as credenciais da Apple.

  3. No painel de navegação à esquerda, escolha Certificados, IDs e perfis.

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

  5. Na página Identifiers (Identificadores), escolha o ícone +.

  6. Na página Register a New Identifier (Registrar um novo identificador), escolha App IDs (IDs de aplicação) e selecione Continue (Continuar).

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

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

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

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

    5. Escolha Continue (Continuar).

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

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

  10. Na página Identifiers (Identificadores), escolha o menu App IDs (IDs de aplicação) e, em seguida, Services IDs (IDs de serviços). Escolha o ícone +.

  11. Na página Register a New Identifier (Registrar um novo identificador), escolha Services IDs (IDs de serviços) e selecione Continue (Continuar).

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

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

    3. Selecione Fazer login com a Apple e escolha Configurar.

    4. Na página Web Authentication Configuration (Configuração de autenticação na web), escolha um Primary App ID (ID de app primário). Em Website URLs (URLs de site), escolha o ícone +. Em Domínios e subdomínios, insira o nome de domínio do seu aplicativo. Em Return URLs, (URLs de retorno), insira o URL de retorno de chamada no qual a autorização redireciona o usuário depois que ele se autentica por meio do Sign in with Apple.

    5. Escolha Próximo.

    6. Escolha Continue (Continuar) e, depois, Register (Registrar).

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

  14. Na página Keys (Chaves), escolha o ícone +.

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

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

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

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

Para integrar o recurso Fazer login com a Apple em uma plataforma diferente do iOS nativo, consulte Fazer login com o Apple JS.

Configurar o provedor externo no console de identidades federadas do Amazon Cognito

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. Selecione um banco de identidades.

  2. Selecione a guia Acesso do usuário.

  3. Selecione Adicionar provedor de identidade.

  4. Selecione Sign in with Apple.

  5. Insira o ID de serviços do projeto OAuth que você criou em Meta for Developers. Para ter mais informações, consulte Authenticating users with Sign in with Apple na Documentação do Sign in with Apple.

  6. 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 você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.

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

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

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

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

  8. Selecione Save Changes (Salvar alterações).

Sign in with Apple como provedor nos exemplos de CLI de identidades federadas do Amazon Cognito

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

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.

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

Usar o recurso Fazer login com a Apple: Android

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.

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 da 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 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 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 da 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 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 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 da AWS.

Para obter mais informações sobre como configurar o Sign in with Apple no iOS, consulte 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 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.

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 da 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. }); }

Usar o recurso Fazer login com a Apple: Xamarin

Não temos um SDK compatível com o recurso Fazer login com a Apple para Xamarin. Em vez disso, é possível usar o fluxo da Web em uma visualização da Web.

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 da AWS.

Depois que tiver o token, você poderá configurá-lo em CognitoAWSCredentials:

credentials.AddLogin("appleid.apple.com", token);