Overview
El proveedor de autenticación de ID de Apple permite a los usuarios iniciar sesión con sus credenciales de ID de Apple a través de Iniciar sesión con AppleEste método de autenticación utiliza el protocolo de autorización OAuth.estándar 2 de la industria.0
Cuando un usuario inicia sesión correctamente a través de Iniciar sesión con Apple, Apple devuelve un objeto de credencial que incluye un token web JSON que el proveedor del ID de Apple utiliza para autenticar al usuario. Si el usuario ha otorgado permisos a la app, el objeto de credencial también puede incluir su nombre y dirección de correo electrónico.
Para obtener información adicional sobre cómo implementar Iniciar sesión con Apple, consulta:
La documentación oficial de Iniciar sesión con Apple en el Portal para desarrolladores de Apple
Sesión de introducción a Iniciar sesión con Apple de la WWDC 2019
La aplicación de referencia asociada.
Nota
Una aplicación de iOS que utiliza autenticación de ID de Apple debe apuntar a iOS 13 o más reciente.
El siguiente diagrama muestra el flujo lógico de OAuth:

Qué necesitarás
Antes de poder implementar la autenticación de ID de Apple, necesitará lo siguiente:
Una cuenta activa del Programa para desarrolladores de Apple.
Xcode 11 o más reciente.
Configurar la autenticación de ID de Apple
Al usar Iniciar sesión con Apple con Atlas App Services, puede configurar el proveedor de autenticación de Apple para una aplicación móvil o una aplicación web.
Si desea usar Iniciar sesión con Apple para ambos, puede configurar su propio flujo manual de Iniciar sesión con Apple para la web o la app móvil. Luego, use el JWT que devuelve el proveedor de autenticación JWT personalizado. En los SDK de Realm, puede vincular las identidades de usuario de cada proveedor de autenticación a un solo usuario.
Para utilizar Iniciar sesión con Apple exclusivamente con una aplicación web o móvil, elija el tipo de aplicación y siga esta guía.
Añade Iniciar sesión con Apple a tu aplicación
Su aplicación debe tener el derecho de Iniciar sesión con Apple para poder utilizar esta capacidad.
Selecciona el destino de tu aplicación en Xcode.
Ir a la Signing & Capabilities pestaña y seleccione + Capability.
Busque la función Iniciar sesión con Apple y selecciónela.
Luego, confirme que esté habilitado en el Portal para desarrolladores de Apple.
Vaya a la Certificates, Identifiers and Profiles página del Portal para desarrolladores de Apple.
Selecciona el identificador de tu aplicación en el menú desplegable. Esto te llevará al panel App ID Configuration.
Desplácese hacia abajo hasta que vea la casilla Sign In with Apple. Si no está seleccionada, selecciónela. Si ha realizado cambios, pulse el botón Save.
Ten en cuenta el Bundle ID de tu aplicación. Necesitas el ID del paquete al crear un secreto de cliente y al configurar Iniciar sesión con Apple en App Services.
Crear una clave privada
El secreto de cliente para iniciar sesión con Apple es un token web JSON que se crea y firma con una clave privada. Debe generar la clave privada a través del Portal para desarrolladores de Apple.
Haga clic en Keys en el menú de navegación de la izquierda.
Haga clic en el ícono más azul junto a Keys.
En la página Register a New Key, introduce un Key Name descriptivo y desplázate hacia abajo hasta encontrar la fila Sign in with Apple. Marca la casilla para activar "Iniciar sesión con Apple" y haz clic en Configure.
En la página Configure Key, seleccione el ID de la aplicación para su aplicación como Primary App ID y luego haga clic en Save.
Haga clic en Continue para revisar la configuración de su clave. Cuando esté seguro de haberla configurado correctamente, haga clic en Register.
Copie el valor Key ID en algún lugar al que pueda acceder más tarde y luego haga clic en Download para descargar la clave como
.p8Archivo de texto. Lo usarás para generar el secreto del cliente.Importante
Guardar la clave
Solo puedes descargar la clave una vez. Asegúrate de guardarla en un lugar seguro por si la necesitas de nuevo. Si la pierdes, tendrás que generar una nueva.
Crear el JWT secreto del cliente
Ahora puedes crear el JWT secreto de cliente para el proveedor de autenticación de Apple ID. Asegúrate de tener la siguiente información:
El Bundle ID de tu aplicación. Lo usarás como
client_iden el script a continuación.El Key ID de la clave que creó y el archivo
.p8que contiene la clave.Tu ID de equipo de Apple. Lo encontrarás en la esquina superior derecha del Portal para desarrolladores de Apple.
Una vez que haya confirmado que tiene toda la información necesaria, puede usar un script para generar el JWT. Puede definir su propio script o usar el script en este paso.
Para generar el JWT, usaremos la gema jwt. Para instalarla, ejecute lo siguiente:
gem install jwt
Cree un nuevo archivo llamado generate_client_secret.rb y copie el siguiente bloque de código en el archivo.
# Source: https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple require 'jwt' # Update these values with your app's information team_id = '<Apple Team ID>' client_id = '<Bundle ID or Services ID>' key_id = '<Apple Key ID>' key_file = '<Key File Path>' # Define the JWT's headers and claims headers = { # The token must be signed with your key 'kid' => key_id } claims = { # The token is issued by your Apple team 'iss' => team_id, # The token applies to Apple ID authentication 'aud' => 'https://appleid.apple.com', # The token is scoped to your application 'sub' => client_id, # The token is valid immediately 'iat' => Time.now.to_i, # The token expires in 6 months (maximum allowed) 'exp' => Time.now.to_i + 86400*180, } # Read in the key and generate the JWT ecdsa_key = OpenSSL::PKey::EC.new IO.read key_file token = JWT.encode claims, ecdsa_key, 'ES256', headers # Print the JWT to stdout puts token
Actualice los valores de team_id, client_id, key_id y key_file para que coincidan con la información de su aplicación y guarde el archivo. Cuando esté listo para generar el JWT, ejecute el script en su shell:
ruby generate_client_secret.rb >> client_secret.txt
Importante
Salvar el JWT
El script generate_client_secret.rb genera la salida estándar. Al llamarlo, la agregamos a un archivo llamado client_secret.txt. Necesitará el JWT para configurar el proveedor de Apple ID en App Services.
Configurar el proveedor en App Services
En este punto, ha configurado una aplicación de Apple y generado las credenciales OAuth 2.0 necesarias. Ahora puede configurar el proveedor de autenticación de ID de Apple con las credenciales para permitir que los usuarios de la aplicación cliente de App Services inicien sesión.
Haga clic en Authentication en el menú de navegación de la izquierda y luego haga clic en Apple ID.
Activa el interruptor Provider Enabled.
Para los servicios de aplicaciones Client ID, ingrese el Bundle ID de su aplicación.
Para,Client Secret cree un nuevo secreto con un nombre descriptivo y asigne Client Secret Value a la cadena JWT generada. También puede seleccionar un secreto preexistente que contenga el JWT.
Haga clic en Save para terminar de configurar el proveedor. Para que el proveedor esté disponible para las aplicaciones cliente, debe implementar los cambios. Haga clic en Review & Deploy Changes y luego en Deploy.
Para habilitar y configurar el proveedor de autenticación de Apple con servicios de aplicaciones, defina un objeto de configuración para él /auth/providers.json en.
Las configuraciones del proveedor de Apple tienen el siguiente formato:
{ "oauth2-apple": { "name": "oauth2-apple", "type": "oauth2-apple", "disabled": <boolean>, "config": { "clientId": "<Bundle ID>" }, "secret_config": { "clientSecret": "<Secret Name>" }, "redirect_uris": ["<string>", ...] } }
Campo | Descripción |
|---|---|
Client ID config.clientId | Obligatorio. De tu aplicación Bundle ID. |
Client Secret secret_config.clientSecret | Obligatorio. El nombre de un secreto que almacena el Client Secret JWT que generó. |
Redirect URIs redirect_uris | Requerido para aplicaciones web. No se requiere para aplicaciones móviles. |
Una vez que hayas creado el archivo de configuración, puedes hacer que el proveedor de autenticación de Apple ID esté disponible para las aplicaciones cliente implementando tu aplicación.
Para implementar un borrador de aplicación con la CLI de App Services:
appservices push
Para implementar un borrador de aplicación con implementación automática de GitHub:
git add ./auth/providers.json git commit -m "Configure and Enable Apple ID Authentication" git push origin <branch name>
Crea una ID de la aplicación
Un ID de la aplicación de Apple representa tu aplicación y te permite acceder a servicios como Iniciar sesión con Apple. Para configurar el proveedor de ID de Apple, debes crear un nuevo ID de la aplicación.
Vaya a la Certificates, Identifiers and Profiles página del Portal para desarrolladores de Apple.
Haga clic en Identifiers en el menú de navegación de la izquierda.
Haga clic en el ícono más azul junto a Identifiers.
En la página Register a New Identifier, seleccione App IDs y luego haga clic en Continue.
En la Register an App ID página, seleccione el Platform en el que se ejecuta su aplicación y luego ingrese un breve Description y una notación DNS Bundle ID inversa.
Desplácese por la página Register an App ID hasta ver la función Sign in with Apple. Marque la casilla para activarla.
Pulsa el botón Continue en la parte superior de la página. Completa los demás pasos de configuración que correspondan a tu aplicación y, a continuación, pulsa el botón Register.
Crear un ID de servicios
Un ID de servicios de Apple representa una sola aplicación y le permite configurar una URL de devolución de llamada de autorización y definir una clave privada para la aplicación.
Haga clic en Identifiers en el menú de navegación de la izquierda.
Haga clic en el ícono más azul junto a Identifiers.
En la página Register a New Identifier, seleccione Services IDs y luego haga clic en Continue.
En la Register a Services ID página, ingrese un breve Description y una notación DNS Identifier inversa.
Importante
Guardar el identificador
El valor Identifier del ID de servicios es el Client ID de su aplicación. Necesitará este valor más adelante para configurar el proveedor de ID de Apple en Atlas App Services.
Pulse el botón Continue. Confirme los datos y pulse Register.
Haz clic en el servicio que acabas de crear. Marca la casilla para habilitar Sign in with Apple y luego haz clic en Configure. Selecciona el ID de la aplicación que creaste como Primary App ID.
Ingrese sus dominios, subdominios y URL de retorno para el ID de servicios. Presione el botón Next.
Haga clic en Continue y luego en Save. Confirme que haya configurado correctamente el ID de servicios y luego haga clic en Register.
Crear una clave privada
El secreto de cliente para iniciar sesión con Apple es un token web JSON que se crea y firma con una clave privada. Debe generar la clave privada a través del Portal para desarrolladores de Apple.
Haga clic en Keys en el menú de navegación de la izquierda.
Haga clic en el ícono más azul junto a Keys.
En la página Register a New Key, introduce un Key Name descriptivo y desplázate hacia abajo hasta encontrar la fila Sign in with Apple. Marca la casilla para activar "Iniciar sesión con Apple" y haz clic en Configure.
En la página Configure Key, seleccione el ID de la aplicación que creó como Primary App ID y luego haga clic en Save.
![La página Configurar clave en el Portal para desarrolladores de Apple]()
Haga clic en Continue para revisar la configuración de su clave. Cuando esté seguro de haberla configurado correctamente, haga clic en Register.
Copia el valor Key ID en un lugar accesible posteriormente y haz clic en Download para descargar la clave como archivo de texto
.p8. Lo usarás para generar el secreto del cliente.Importante
Guardar la clave
Solo puedes descargar la clave una vez. Asegúrate de guardarla en un lugar seguro por si la necesitas de nuevo. Si la pierdes, tendrás que generar una nueva.
Crear el JWT secreto del cliente
Ahora puedes crear el JWT secreto de cliente para el proveedor de autenticación de Apple ID. Asegúrate de tener la siguiente información:
El Services ID que creaste. Vas a utilizar esto como el
client_iden el siguiente script.- El Key ID de la clave que creaste y el
.p8 - archivo que contiene la clave.
- El Key ID de la clave que creaste y el
- Tu ID de equipo de Apple. Lo encontrarás en la esquina superior derecha de la página de Apple.
- Portal para desarrolladores.

Una vez que haya confirmado que tiene toda la información necesaria, puede usar un script para generar el JWT. Puede definir su propio script o usar el script en este paso.
Para generar el JWT, usaremos la gema jwt. Para instalarla, ejecute lo siguiente:
gem install jwt
Cree un nuevo archivo llamado generate_client_secret.rb y copie el siguiente bloque de código en el archivo.
# Source: https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple require 'jwt' # Update these values with your app's information team_id = '<Apple Team ID>' client_id = '<Bundle ID or Services ID>' key_id = '<Apple Key ID>' key_file = '<Key File Path>' # Define the JWT's headers and claims headers = { # The token must be signed with your key 'kid' => key_id } claims = { # The token is issued by your Apple team 'iss' => team_id, # The token applies to Apple ID authentication 'aud' => 'https://appleid.apple.com', # The token is scoped to your application 'sub' => client_id, # The token is valid immediately 'iat' => Time.now.to_i, # The token expires in 6 months (maximum allowed) 'exp' => Time.now.to_i + 86400*180, } # Read in the key and generate the JWT ecdsa_key = OpenSSL::PKey::EC.new IO.read key_file token = JWT.encode claims, ecdsa_key, 'ES256', headers # Print the JWT to stdout puts token
Actualice los valores de team_id, client_id, key_id y key_file para que coincidan con la información de su aplicación y guarde el archivo. Cuando esté listo para generar el JWT, ejecute el script en su shell:
ruby generate_client_secret.rb >> client_secret.txt
Importante
Salvar el JWT
El script generate_client_secret.rb genera la salida estándar. Al llamarlo, la agregamos a un archivo llamado client_secret.txt. Necesitará el JWT para configurar el proveedor de Apple ID en App Services.
Configurar el proveedor en App Services
En este punto, ha configurado una aplicación de Apple y generado las credenciales OAuth 2.0 necesarias. Ahora puede configurar el proveedor de autenticación de ID de Apple con las credenciales para permitir que los usuarios de la aplicación cliente de App Services inicien sesión.
Haga clic en Authentication en el menú de navegación de la izquierda y luego haga clic en Apple ID.
Activa el interruptor Provider Enabled.
Para los Servicios de aplicaciones Client ID, ingresa el Apple Services ID que obtuviste cuando creaste un Services ID en el paso 2 anterior.
Para,Client Secret cree un nuevo secreto con un nombre descriptivo y asigne Client Secret Value a la cadena JWT generada. También puede seleccionar un secreto preexistente que contenga el JWT.
Redirect URIsPara, haga clic Add Redirect URI en e introduzca la URL a la que App Services debe redirigir una vez finalizado el proceso de OAuth. Proporcione la URL de un dominio que controle y, a continuación, utilice un enlace universal para redirigir al usuario a su aplicación.
Haga clic en Save para terminar de configurar el proveedor. Para que el proveedor esté disponible para las aplicaciones cliente, debe implementar los cambios. Haga clic en Review & Deploy Changes y luego en Deploy.
Para habilitar y configurar el proveedor de autenticación de Apple appservices con, defina un objeto de configuración para él /auth/providers.json en.
Las configuraciones del proveedor de Apple tienen el siguiente formato:
{ "oauth2-apple": { "name": "oauth2-apple", "type": "oauth2-apple", "disabled": <boolean>, "config": { "clientId": "<Apple Services ID>" }, "secret_config": { "clientSecret": "<Secret Name>" }, "redirect_uris": ["<string>", ...] } }
Campo | Descripción |
|---|---|
Client ID config.clientId | Obligatorio. La Apple Services ID que creaste al completar el paso 2 anterior. |
Client Secret secret_config.clientSecret | Obligatorio. El nombre de un secreto que almacena el Client Secret JWT que generó. |
Redirect URIs redirect_uris | Requerido para aplicaciones web. Lista de redirecciones permitidas. URIs. Una vez que un usuario completa el proceso de autenticación, App Services lo redirige a una URI de redirección específica o, si no se especifica ninguna, a la URL desde la que inició la solicitud de autenticación. App Services solo redirigirá al usuario a una URI que coincida exactamente con una entrada de esta lista, incluyendo el protocolo y las barras diagonales finales. Proporcione una URL para un dominio que usted controle y luego use un enlace universal para redirigir al usuario nuevamente a su aplicación. |
Una vez que hayas creado el archivo de configuración, puedes hacer que el proveedor de autenticación de Apple ID esté disponible para las aplicaciones cliente implementando tu aplicación.
Para implementar un borrador de aplicación con la CLI de App Services:
appservices push
Para implementar un borrador de aplicación con implementación automática de GitHub:
git add ./auth/providers.json git commit -m "Configure and Enable Apple ID Authentication" git push origin <branch name>
Ejemplos
Para obtener ejemplos de código que demuestran cómo registrarse e iniciar sesión mediante la autenticación de Apple, consulte la documentación de los SDK de Realm:
