Configurar el SSO de aplicaciones nativas a web
El SSO de aplicaciones nativas a web es compatible con los siguientes SDKs: Auth0 Android SDK, Auth0 Swift SDK y Auth0 React Native SDK.La compatibilidad con el SSO de aplicaciones nativas a web está disponible en las siguientes herramientas: Auth0 Deploy CLI. Auth0 Terraform Provider y Auth0 CLI.El SSO de aplicaciones nativas a web es compatible con cualquier flujo de autenticación que devuelva un token de actualización, como Resource Owner Password Flow y Authorization Code Flow with Proof Key for Code Exchange.
Crear y gestionar tokens de transferencia de sesión
- Crear y gestionar
session_transfer_tokens - Crear sesiones en un navegador web mediante cookies o un parámetro de URL
- Vincular la sesión al dispositivo de un usuario mediante una dirección IP o un ASN
PATCH al endpoint Update a Client. Para crear una nueva aplicación, haga una llamada POST al endpoint Create a Client:
Configurar aplicaciones nativas
-
Actualice su aplicación nativa mediante el :
- Vaya a Dashboard > Applications:
- Seleccione o cree su aplicación.
- Seleccione la pestaña Settings.
- En Session Transfer, habilite Allow Native to Web SSO.
- Seleccione Require Cascade Revocation para revocar automáticamente la sesión de la aplicación web y los tokens asociados.
- Seleccione Save para actualizar su aplicación.

- Actualice su aplicación nativa con su de la Management API mediante el endpoint Update a Client:
- Actualiza tu aplicación nativa mediante Auth0 CLI:
Configurar aplicaciones web
-
Actualiza tu aplicación web con Auth0 Dashboard:
- Ve a Dashboard > Applications:
- Selecciona o crea tu aplicación web.
- Selecciona la pestaña Settings.
- En Session Transfer, habilita Native to Web SSO Methods.
- Selecciona Cookie Authentication y Query Authentication.
- Habilita Device Binding Method y elige None, ASN Binding o IP Address Binding.
- Habilita Allow Refresh Token Requests para emitir nuevos tokens de actualización después de una transferencia de sesión.
- Selecciona Use online refresh tokens.
- Selecciona Save para actualizar tu aplicación web.

- Actualiza tu aplicación web con el token de acceso de Management API mediante el endpoint Update a Client:
- Actualiza tu aplicación web con la Auth0 CLI:
Implementar SSO de nativa a web
-
Si
allow_refresh_tokenestá deshabilitado en el cliente, pero la aplicación solicitaoffline_access, Auth0 no emitirá unrefresh_token, aunque la autenticación seguirá funcionando. -
Si la rotación del Token de actualización está habilitada, Auth0 devuelve un nuevo
refresh_tokenen la llamada de intercambio de tokens. El intercambio del Token de actualización debe realizarse justo antes de que su código abra la aplicación web.
En la aplicación nativa
Paso 1: Intercambia un Token de actualización por un token de transferencia de sesión
- Intercambia un token de actualización por un token de transferencia de sesión con los SDK de Swift, Android o React Native:
- SDK de Swift
- SDK de Android
- SDK de React Native
- Intercambia un token de actualización por un token de transferencia de sesión mediante HTTP:
Estos ejemplos usan marcadores de posición para las variables dinámicas. Sustituya los marcadores de posición por su dominio de Auth0, client_id y un refresh_token existente.
Si la rotación de tokens de actualización está habilitada, el intercambio también devolverá un Token de actualización.Si solicitaste un ID Token durante la autenticación, esta llamada también devolverá un ID Token.
session_transfer_token a su aplicación web, según los allowed_authentication_methods configurados.
Si su aplicación web, que usa WebView o un navegador, admite la inyección de cookies, puede configurar su aplicación nativa para:
- Agregar el session_transfer_token a una cookie.
- Abrir la aplicación web mediante WebView o un navegador.
- Iniciar sesión en la aplicación web en su dominio de Auth0 o . Como el
session_transfer_tokenestá incluido en la cookie, no se solicita al usuario la autenticación del primer factor.
Opción 2: Enviar session_transfer_token como parámetro de URL
- Agregar session_transfer_token como parámetro de URL.
- Abrir la aplicación web mediante WebView o el navegador.
- Iniciar sesión en la aplicación web agregando
session_transfer_tokencomo parámetro de URL al endpoint /authorize. El inquilino de Auth0 autentica al usuario sin requerir autenticación del primer factor, ya que session_transfer_token es válido y confiable.
En tu aplicación web
Cuando el token de transferencia de sesión se envía como una cookie, no se requiere ninguna configuración adicional, ya que el navegador envía la cookie en la solicitud al endpoint
/authorize.Opción 1: Agregue el Session Transfer Token a la solicitud de su aplicación web
/authorize cuando session_transfer_token se envíe como parámetro de URL.
Opción 2: Añada el Session Transfer Token a aplicaciones web que usan los SDK de Auth0
session_transfer_token en la solicitud al endpoint /authorize.
A continuación, se muestran ejemplos de aplicaciones web que usan los SDK de Auth0 para redirigir session_transfer_token en la solicitud al endpoint /authorize:
Node (Express.js)
session_transfer_token.
javascript
Auth0 SPA SDK (@auth0/auth0-spa-js)
session_transfer_token a loginWithRedirect() mediante authorizationParams.
typescript
SDK de React de Auth0 (@auth0/auth0-react)
loginWithRedirect del hook useAuth0 para pasar el session_transfer_token.
typescript
SAML y WS-Federation
session_transfer_token como parámetro de URL al endpoint /authorize de Auth0, y redirect_uri será la URL de inicio de sesión de SAML o WS-Fed.
SSO de nativo a web con Organizaciones
Al usar Organizaciones con SSO de nativo a web, el parámetro
organization en la solicitud /authorize de la aplicación web debe coincidir con la organización asociada al token de transferencia de sesión. Si no coincide, la autenticación fallará y se le pedirá al usuario que vuelva a iniciar sesión.- Autentique al usuario en su aplicación nativa con una organización:
javascript
- Al redirigir a la aplicación web, incluye la misma organización en la solicitud de
/authorize:
bash
/authorize no coincide con la organización del token de transferencia de sesión, el token de transferencia de sesión se rechaza y el usuario es redirigido a la página de inicio de sesión para volver a autenticarse. Se genera una entrada de advertencia en los registros de su inquilino con la descripción del evento “Single Sign-On failed: Session Transfer Token organization mismatch detected.”
Token de transferencia de sesión con Actions
session_transfer_token con Actions le permite configurar capacidades de detección y respuesta ante riesgos posteriores a la autenticación para reforzar la protección del usuario.
Para ello, el objeto post-login de Action event.session_transfer_token proporciona información relevante, incluido el client_id único, scope e información de request, como ip, asn y user_agent, así como información de geoip, como cityName, countryCode, entre otros. Para obtener más información, consulte Actions Triggers: post-login - Event Object.
El siguiente código de Action le permite rechazar dinámicamente una transacción en función de la información de geolocalización:
javascript
Acceder a los metadatos del token de actualización padre
session_transfer_token.
Auth0 expone esta información en las Actions de Post Login mediante el objeto event.session.session_transfer.parent_refresh_token.metadata. Esto permite la propagación segura y estandarizada de metadatos entre plataformas.
Caso de uso de ejemplo: Una aplicación móvil recopila datos de riesgo (puntuación del dispositivo, ubicación, etc.) y los almacena en los metadatos del token de actualización. Cuando la aplicación nativa inicia un flujo de SSO de nativo a web, esos metadatos pasan a estar disponibles automáticamente en la sesión web correspondiente mediante Actions.
javascript
Monitoreo
Registros de intercambio de tokens
sertft: Intercambio correcto del Token de actualización. Este registro corresponderá a un intercambio de SSO de una aplicación nativa a una aplicación web cuando el campoaudiencesea"audience":"urn:$auth0Domain:session_transfer"fertft: Intercambio fallido del Token de actualización. Este registro corresponderá a un intercambio de SSO de una aplicación nativa a una aplicación web cuando el campoaudiencesea"audience": "urn:$auth0Domain:session_transfer"
Registros de advertencia de validación de la transferencia de sesión
w) cuando falla la validación del token de transferencia de sesión durante la solicitud /authorize. Estos registros te ayudan a solucionar problemas de SSO de nativo a web:
| Descripción del evento | Causa |
|---|---|
Single Sign-On failed: Session Transfer Token not found or expired. This may indicate token reuse or expiration. | No se encontró el token de transferencia de sesión, ya se usó o expiró (los tokens son de un solo uso y expiran al cabo de 1 minuto). |
Single Sign-On failed: Session Transfer Token device binding validation failed due to IP/ASN mismatch. | La dirección IP o el ASN de la solicitud web no coinciden con la vinculación del dispositivo configurada para el token de transferencia de sesión. |
Single Sign-On failed: Session Transfer Token organization mismatch detected. | El parámetro organization de la solicitud /authorize no coincide con la organización del token de transferencia de sesión. |
Single Sign-On failed: Session Transfer Token user mismatch detected. | Una sesión de Auth0 ya existente pertenece a un usuario distinto del token de transferencia de sesión. |
Single Sign-On failed: Parent refresh token not found. Session Transfer Token won't be used for session establishment. | El token de actualización principal usado para crear el token de transferencia de sesión fue revocado o eliminado. |