- Registro: Crea una cuenta de usuario nueva con una clave de acceso como método principal de autenticación.
- Inscripción: Agrega una clave de acceso como método de autenticación a la cuenta de un usuario existente.
- Inicio de sesión: Solicita a un usuario existente que se autentique con una clave de acceso asociada a su cuenta.
Flujo de registro
Solicitar desafío para el registro
POST /passkey/register
Inicia el flujo de registro de clave de acceso para un nuevo usuario.
Como respuesta, Auth0 devuelve PublicKeyCredentialCreationOptions y un id de sesión. Consulta timeout en authn_params_public_key de la respuesta para ver el tiempo de espera de la sesión.
El flujo de registro de clave de acceso admite Organizaciones mediante el parámetro organization, según el comportamiento descrito en Flujos de inicio de sesión para Organizaciones. Si tu aplicación está configurada para Usuarios empresariales, debes proporcionar el parámetro organization y un valor válido de nombre o identificador de Organización. Después de que el usuario registre una clave de acceso, Auth0 lo inscribe en la Organización proporcionada.
Parámetros de la solicitud
| Parámetro | Descripción |
|---|---|
client_id | Obligatorio. El client_id de su aplicación. |
realm | Opcional. El nombre de la conexión que se asociará con este usuario. Si no se especifica una conexión, se usa el directorio predeterminado de su inquilino. |
user_profile | Obligatorio. Un objeto que contiene información de identificación del usuario. De forma predeterminada, esto incluye un email válido y un name de visualización opcional.Si ha habilitado Identificadores flexibles para su conexión de base de datos, puede usar una combinación de email, phone_number o username como identificadores. Estas opciones pueden ser obligatorias u opcionales y deben coincidir con la configuración de sus Identificadores flexibles.Si el identificador proporcionado (como email) ya existe en el directorio, debe pedirse al usuario que, en su lugar, complete el flujo de inicio de sesión. |
Ejemplos de código
Solicitud
Respuesta
Observaciones
- Una vez completada la solicitud de desafío, la aplicación puede continuar el proceso de registro del usuario mediante las API nativas de Android o iOS.
- A continuación, debe autenticar al nuevo usuario con la información obtenida a través de las API nativas para completar el flujo.
Autenticar a un usuario nuevo
Actualmente no se admite el registro nativo con claves de acceso si en la misma conexión se requiere la verificación mediante OTP por SMS/correo electrónico durante el registro.
POST /oauth/token
Usa el para autenticar al usuario con las credenciales proporcionadas, crear su cuenta y devolver los tokens solicitados.
El parámetro authn_response se basa en la especificación de la API de autenticación web (WebAuthn). En el flujo nativo de claves de acceso, la información que se envía a este endpoint puede recuperarse mediante las API nativas de su aplicación móvil:
Parámetros de la solicitud
| Parámetro | Descripción |
|---|---|
grant_type | Obligatorio. Incluya el valor: urn:okta:params:oauth:grant-type:webauthn |
client_id | Obligatorio. El client_id de su aplicación |
realm | Opcional. El nombre de la conexión que se asociará al usuario. Si no se especifica una conexión, se usa el directorio predeterminado de su inquilino. |
scope | Opcional. Use openid para obtener un token de ID o openid profile email para incluir información del perfil del usuario en el token de ID. |
audience | Opcional. Identificador de la API para la que desea obtener un token de acceso. |
auth_session | Obligatorio. ID de sesión devuelto durante la solicitud inicial del desafío de passkey. |
authn_response | Obligatorio. Un objeto que contiene los siguientes elementos:
|
authn_response.id | Obligatorio. ID de credencial Base64URL. |
authn_response.rawId | Obligatorio. ID de credencial Base64URL. |
authn_response.type | Obligatorio. Incluya el valor: public-key |
authn_response.authenticatorAttachment | Obligatorio. Incluya los valores:
|
authn_response.response | Obligatorio. Un objeto que contiene los siguientes elementos:
|
Ejemplos de código
Solicitud
Respuesta
Flujo de inscripción
create:me:authentication_methods para el endpoint /me.
Iniciar la inscripción de clave de acceso
POST /me/v1/authentication-methods
El primer paso es iniciar el proceso de inscripción. Para ello, haga una solicitud POST al endpoint /me/v1/authentication-methods.
Parámetros de la solicitud
| Parámetro | Descripción |
|---|---|
type | Obligatorio. Incluya el valor public-key. |
connection | Opcional. El nombre de la conexión en la que se creará la clave de acceso. |
identity | Opcional. La identidad del usuario. Se usa con cuentas vinculadas. |
Ejemplos de código
Solicitud
Respuesta
Observaciones
- La propiedad
auth_sessiondel cuerpo de la respuesta es el identificador de la sesión de autenticación actual. Debe pasarse al endpoint/verify. - Una vez completada la solicitud de desafío, su aplicación puede continuar con el proceso de inscripción del usuario mediante las API nativas de Android o iOS. Se le pedirá al usuario que cree una clave de acceso con su autenticador (como un escáner de huellas digitales, una llave de seguridad o un teléfono).
Verificar la inscripción de la clave de acceso
POST /me/v1/authentication-methods/passkey|new/verify
El ID de la ruta siempre es
passkey|new para las nuevas inscripciones.AuthenticatorAttestationResponse de la API de WebAuthn. Esta respuesta debe enviarse al servicio de Auth0 para completar y verificar la inscripción.
Parámetros de la solicitud
| Parámetros | Descripción |
|---|---|
auth_session | Obligatorio. El identificador de sesión recibido en la respuesta de la primera solicitud POST a /me/v1/authentication-methods. |
authn_response | Obligatorio. El parámetro authn_response se basa en la especificación de la API de autenticación web (WebAuthn). En el flujo nativo de clave de acceso, la información que se envía a este endpoint puede recuperarse mediante las API nativas de tu aplicación móvil. |
authn_response.id | Obligatorio. id de la credencial en Base64URL. |
authn_response.rawId | Obligatorio. id de la credencial en Base64URL. |
authn_response.type | Obligatorio. Incluye el valor: public-key. |
authn_response.authenticatorAttachment | Obligatorio. Incluye los valores: platform, cross-platform. |
authn_response.response | Obligatorio. Un objeto que contiene los siguientes elementos:
|
Ejemplos de código
Solicitud
Observaciones
Flujo de autenticación
Solicitar desafío de inicio de sesión
POST /passkey/challenge
Inicia el flujo de inicio de sesión con clave de acceso para un usuario existente que guardó una clave de acceso en su cuenta durante el registro inicial.
Como respuesta, Auth0 devuelve PublicKeyCredentialRequestOptions, un ID de sesión y un identificador de parte de confianza rpId. Consulta timeout en authn_params_public_key de la respuesta para conocer el tiempo de espera de la sesión. El rpId devuelto en la respuesta es el identificador que el dispositivo nativo (iOS/Android) usa para buscar credenciales guardadas vinculadas a un dominio. Para que una clave de acceso creada en una aplicación web (por ejemplo, example.com) esté disponible en el flujo nativo, el rpId devuelto debe coincidir con el rpId de la web. Para obtener más información sobre cómo personalizar el RP ID de tu inquilino, consulta Configurar la política de claves de acceso.
El flujo de inicio de sesión con clave de acceso admite Organizaciones mediante el parámetro organization, según el comportamiento descrito en Flujos de inicio de sesión para Organizaciones. Si tu aplicación está configurada para Usuarios empresariales, debes proporcionar el parámetro organization y un nombre o identificador de Organización válidos.
Todos los tokens emitidos se generan en el contexto de la Organización proporcionada. Si habilitaste Membresía automática para tu Organización, el usuario se inscribe automáticamente en la Organización después de autenticarse correctamente.
Parámetros de la solicitud
| Parámetro | Descripción |
|---|---|
client_id | Obligatorio. El client_id de tu aplicación. |
realm | Opcional. El nombre de la conexión que se asociará con el usuario. Si no se especifica una conexión, se usará el directorio predeterminado de tu inquilino. |
Ejemplos de código
Solicitud
Respuesta
Observaciones
- Una vez completada la solicitud de desafío, tu aplicación puede continuar con el proceso de inicio de sesión mediante las API nativas de Android o iOS.
- Luego, debes autenticar al usuario existente con la información obtenida a través de las API nativas para completar el flujo.
Autenticar a un usuario existente
POST /oauth/token
Usa el endpoint de token para autenticar al usuario con las credenciales proporcionadas y devolver los tokens solicitados.
El parámetro authn_response se basa en la especificación de la API de autenticación web (WebAuthn). En el flujo nativo de claves de acceso, la información enviada a este endpoint puede recuperarse a través de las API nativas de tu aplicación móvil:
Parámetros de la solicitud
| Parámetro | Descripción |
|---|---|
grant_type | Obligatorio. Incluya el valor: urn:okta:params:oauth:grant-type:webauthn |
client_id | Obligatorio. El client_id de su aplicación |
realm | Opcional. El nombre de la conexión que se asociará al usuario. Si no se especifica una conexión, se usa el directorio predeterminado de su inquilino. |
scope | Opcional. Use openid para obtener un token de ID o openid profile email para incluir información del perfil del usuario en el token de ID. |
audience | Opcional. Identificador de la API para la que desea obtener un token de acceso. |
auth_session | Obligatorio. ID de sesión devuelto durante la solicitud inicial del desafío de clave de acceso. |
authn_response | Obligatorio. Un objeto que contiene los siguientes elementos:
|
authn_response.id | Obligatorio. ID de credencial en Base64URL. |
authn_response.rawId | Obligatorio. ID de credencial en Base64URL. |
authn_response.type | Obligatorio. Incluya el valor: public-key |
authn_response.authenticatorAttachment | Opcional. Incluya los valores:
|
authn_response.response | Obligatorio. Un objeto que contiene los siguientes elementos:
|
authn_response.clientExtensionResults | Opcional. Contiene los resultados del procesamiento de las extensiones del cliente solicitadas por la parte de confianza. |