Configurar el inicio de sesión con Apple como un IdP de grupo de identidades - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar el inicio de sesión con Apple como un IdP de grupo de identidades

Amazon Cognito se integra en Sign in with Apple con el fin de ofrecer autenticación federada para sus usuarios de las aplicaciones móvil y web. En esta sección se explica cómo registrar y configurar su aplicación con Inicio de sesión con Apple como proveedor de identidad (IdP).

Para agregar Iniciar sesión con Apple como proveedor de autenticación a un grupo de identidades debe completar dos procedimientos. En primer lugar, integrar Inicio de sesión con Apple en una aplicación y, a continuación, configurar Inicio de sesión con Apple en grupos de identidades. Para up-to-date obtener más información sobre cómo configurar el inicio de sesión con Apple, consulta Cómo configurar tu entorno para iniciar sesión con Apple en la documentación para desarrolladores de Apple.

Configurar SignInWithApple

Para configurar Inicio de sesión con Apple como IdP, debe registrar su aplicación en Apple para recibir el ID de cliente.

  1. Cree una cuenta de desarrollador en Apple.

  2. Inicie sesión con las credenciales de Apple.

  3. En el panel de navegación izquierdo, selecciona Certificados IDs y perfiles.

  4. En el panel de navegación izquierdo, elija Identifiers (Identificadores).

  5. En la página Identifiers (Identificadores), elija el icono +.

  6. En la página Registrar un nuevo identificador, elija Aplicación yIDs, a continuación, elija Continuar.

  7. En la página Register an App ID (Registrar un ID de aplicación), haga lo siguiente:

    1. En Description (Descripción), escriba una descripción.

    2. En Bundle ID (Identificador de paquete), escriba un identificador. Anote este ID de paquete, ya que necesitará este valor para definir a Apple como proveedor en el grupo de identidades.

    3. En Capabilities (Funcionalidades), elija SignInWithApple y, a continuación, elija Edit (Editar).

    4. En la página Inicio de sesión con Apple: configuración de ID de Apple, seleccione la configuración adecuada para la aplicación. A continuación, elija Guardar.

    5. Elija Continue (Continuar).

  8. En la página Confirm your App ID (Confirmar ID de Apple), elija Register (Registrarse).

  9. Continúe con el paso 10 si desea integrar Sign in with Apple en una aplicación nativa de iOS. El paso 11 es para aplicaciones que desea integrar con Inicio de sesión con Apple JS.

  10. En la página de identificadores, selecciona el IDs menú de la aplicación y, a continuación, Servicios IDs. Elija el icono +.

  11. En la página Registrar un nuevo identificador, selecciona Servicios yIDs, a continuación, selecciona Continuar.

  12. En la página Register a Services ID (Registrar un ID de servicio), haga lo siguiente:

    1. En Description (Descripción), escriba una descripción.

    2. En Identifier (Identificador), escriba un identificador. Anote el ID de servicios ya que necesita este valor para configurar Apple como proveedor en su grupo de identidades.

    3. Seleccione Sign In with Apple (Inicio de sesión con Apple) y luego elija Configure (Configurar).

    4. En la página Web Authentication Configuration (Configuración de autenticación web), elija Primary App ID (ID de aplicación principal). En Sitio web URLs, selecciona el icono +. En Domains and Subdomains (Dominios y subdominios), introduzca el nombre de dominio de su aplicación. A cambioURLs, introduce la retrollamada a la URL que la autorización redirige al usuario después de que se autentique mediante Iniciar sesión con Apple.

    5. Elija Siguiente.

    6. Seleccione Continue (Continuar) y, a continuación, Register (Registrarse).

  13. En el panel de navegación izquierdo, elija Keys (Claves).

  14. En la página Keys (Claves), elija el icono +.

  15. En la página Register a New Key (Registrar una nueva clave), haga lo siguiente:

    1. En Key Name (Nombre de clave), escriba un nombre de clave.

    2. Elija Sign In with Apple y, a continuación, Configure (Configurar).

    3. En la página Configure Key (Configurar clave), elija un Primary App ID (ID de aplicación principal) y luego elija Save (Guardar).

    4. Seleccione Continue (Continuar) y, a continuación, Register (Registrarse).

nota

Para integrar Inicio de sesión con Apple con una aplicación iOS nativa, consulte Implementación de la autenticación de usuario con Inicio de sesión con Apple.

Para integrar Inicio de sesión con Apple en una plataforma que no sea nativa de iOS, consulte Inicio de sesión con Apple JS.

Configuración del proveedor externo en la consola de identidades federadas de Amazon Cognito

Utilice el siguiente procedimiento para configurar su proveedor externo.

Para agregar un inicio de sesión con el proveedor de identidades (IdP) de Apple
  1. Elija Grupos de identidades en la consola de Amazon Cognito. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Seleccione Agregar proveedor de identidades.

  4. Elija Iniciar sesión con Apple.

  5. Introduce el ID de servicios del OAuth proyecto que creaste con Apple Developer. Para obtener más información, consulte Autenticación de usuarios con inicio de sesión con Apple en Iniciar sesión con documentación de Apple.

  6. Para establecer el rol que Amazon Cognito solicita cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Configuración del rol.

    1. Puede asignar a los usuarios de ese IdP el Rol predeterminado que configuró al configurar el Rol autenticado o puede Elegir el rol con reglas.

      1. Si eligió Elegir rol con reglas, ingrese la Reclamación de origen de la autenticación del usuario, el Operador con el que desea comparar la afirmación, el Valor que hará que coincida con esta elección de rol y el Rol que desea asignar cuando la Asignación del rol coincida. Seleccione Agregar otra para crear una regla adicional en función de una condición diferente.

      2. Elija una Resolución de rol. Cuando las reclamaciones del usuario no coinciden con las reglas, puede denegar las credenciales o emitir credenciales para el Rol autenticado.

  7. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  8. Seleccione Guardar cambios.

Inicie sesión con Apple como proveedor en los ejemplos de identidades federadas de Amazon Cognito CLI

En este ejemplo se crea un grupo de identidades llamado MyIdentityPool con Inicio de sesión con Apple como IdP.

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

Para obtener más información, vea Crear grupo de identidades

Generación de un ID de identidad Amazon Cognito

En este ejemplo se genera (o se recupera) un ID de Amazon Cognito. Es público, API por lo que no necesita ninguna credencial para llamarlo. API

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

Para obtener más información, consulte get-id.

Obtención de credenciales para un ID de identidad de Amazon Cognito

En este ejemplo se devuelven las credenciales del ID de identidad proporcionado e Inicio de sesión con inicio de sesión de Apple. Es público, API por lo que no necesita ninguna credencial para llamarloAPI.

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

Para obtener más información, consulte get-credentials-for-identity

Usar Sign in with Apple: Android

Apple no ofrece una SDK versión compatible con el inicio de sesión con Apple para Android. Puede utilizar el flujo web en una vista web en su lugar.

En Sign in with Apple se utiliza un objeto de sesión para realizar seguimiento de su estado. Amazon Cognito utiliza el token de ID de este objeto de sesión para autenticar al usuario, generar el identificador único y, si es necesario, conceder al usuario acceso a otros 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 Sign in with Apple: iOS - Objective-C

Apple proporcionó SDK soporte para iniciar sesión con Apple en las aplicaciones iOS nativas. Para implementar la autenticación de usuario con Inicio de sesión con Apple en dispositivos iOS nativos, consulte el tema Implementar la autenticación de usuarios con Inicio de sesión con Apple en la documentación de Apple.

Amazon Cognito utiliza el token de ID para autenticar al usuario, generar el identificador único y, si es necesario, conceder al usuario acceso a otros recursos. AWS

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

Usar Sign in with Apple: iOS - Swift

Apple proporcionó SDK soporte para iniciar sesión con Apple en las aplicaciones iOS nativas. Para implementar la autenticación de usuario con Inicio de sesión con Apple en dispositivos iOS nativos, consulte el tema Implementar la autenticación de usuarios con Inicio de sesión con Apple en la documentación de Apple.

Amazon Cognito utiliza el token de ID para autenticar al usuario, generar el identificador único y, si es necesario, conceder al usuario acceso a otros recursos. AWS

Para obtener más información sobre cómo configurar Inicio de sesión con Apple en iOS, consulte Configurar Inicio de sesión con Apple.

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

Utilice Iniciar sesión con Apple: JavaScript

Apple no proporciona una SDK que admita iniciar sesión con Apple para JavaScript. Puede utilizar el flujo web en una vista web en su lugar.

En Sign in with Apple se utiliza un objeto de sesión para realizar seguimiento de su estado. Amazon Cognito utiliza el token de ID de este objeto de sesión para autenticar al usuario, generar el identificador único y, si es necesario, conceder al usuario acceso a otros 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. }); }

Usar Sign in with Apple: Xamarin

No tenemos ninguno SDK que permita iniciar sesión con Apple para Xamarin. Puede utilizar el flujo web en una vista web en su lugar.

En Sign in with Apple se utiliza un objeto de sesión para realizar seguimiento de su estado. Amazon Cognito utiliza el token de ID de este objeto de sesión para autenticar al usuario, generar el identificador único y, si es necesario, conceder al usuario acceso a otros recursos. AWS

Una vez que tenga el token, puede establecerlo en sus CognitoAWSCredentials:

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