Saltar al contenido principal
Puede configurar Auth0 como proveedor de servicios (SP) y como (IdP) para probar su conexión de (SSO).
Diagrama de protocolos de Auth0 como SAML SP e IdP
Auth0 solo admite el uso de Auth0 como SP en configuraciones SAML con SAML 1.1 o SAML 2.0, mientras que puede usarse como IdP en configuraciones SAML con SAML 2.0. Puede configurar una aplicación de ejemplo sencilla para realizar pruebas que use Auth0 para autenticar usuarios mediante SAML SSO, usando un inquilino como SAML SP y otro inquilino como SAML IdP. Configurará dos federaciones para un inquilino.

Crear un inquilino de IdP

Si aún no tiene un inquilino secundario de Auth0 que actúe como IdP de SAML, deberá crear uno:
  1. Vaya al Auth0 Dashboard, seleccione el nombre de su inquilino y, a continuación, seleccione Crear inquilino.
    Menú desplegable de inquilino del Dashboard para crear un inquilino
  2. Introduzca un Dominio, seleccione una Región y haga clic en Crear.

Configurar el inquilino de IdP

Configure su inquilino secundario como un IdP y registre una aplicación para representar su inquilino de SP.
  1. Cambie a su inquilino de IdP. Abra el menú del inquilino, seleccione Switch Tenant y luego seleccione su inquilino de IdP.
  2. Vaya a Dashboard > Applications > Applications y seleccione Create Application.
  3. Introduzca un nombre para la aplicación, como my-auth0-idp, seleccione Regular Web Application como tipo de aplicación y luego seleccione Create.
  4. Vaya al final de la página Settings y seleccione Show Advanced Settings.
  5. Cambie a la vista Certificates, seleccione Download Certificate y elija PEM. El certificado se descargará. Usará este certificado cuando configure el inquilino de SP.
  6. Cambie a la vista Endpoints, busque SAML Protocol URL y copie su contenido. Usará esta URL cuando configure el inquilino de SP.

Crear un usuario para probar la secuencia SAML

  1. Vaya a Dashboard > User Management > Users y seleccione Create User.
  2. Introduzca una dirección de correo electrónico para el usuario de prueba. El dominio debe coincidir con el dominio de correo electrónico del inquilino del proveedor de servicios que configurará a continuación. Por ejemplo, si el usuario es john.doe@exampleco.com, debe introducir exampleco.com como dominio del correo electrónico.
  3. Introduzca una contraseña para el usuario de prueba.
  4. Use el valor predeterminado de Connection.
  5. Seleccione Create.

Configurar el inquilino del proveedor de servicios

Configure el inquilino de SP para comunicarse con el inquilino de IdP y habilitar el SSO mediante el protocolo SAML.
  1. Cambie a su inquilino de SP. Abra el menú del inquilino, seleccione Switch Tenant y, a continuación, seleccione su inquilino de SP.
  2. Vaya a Dashboard > Authentication > Enterprise y seleccione SAML.
  3. Seleccione Create Connection.
  4. Introduzca la siguiente información y seleccione Create:
ConfiguraciónDescripción
Nombre de la conexiónIntroduzca cualquier nombre, como SAML-Auth0-IDP.
URL de inicio de sesiónIntroduzca el valor de la URL del protocolo SAML que copió antes.
URL de cierre de sesiónIntroduzca la misma URL que para la URL de inicio de sesión anterior.
Certificado de firma X509Haga clic en el botón rojo UPLOAD CERTIFICATE… y seleccione el archivo .pem que descargó antes.
  1. Cambie a la vista Setup para ver los metadatos asociados al inquilino. Copie y guarde la URL.
  2. Abra una nueva pestaña del navegador y vaya a la URL que copió anteriormente. (Si ha iniciado sesión en el sitio de documentación de Auth0, la configuración se completará automáticamente con los valores correctos.)
    1. Busque Entity ID y copie y guarde su contenido. Tendrá un aspecto similar a este: urn:auth0:{yourTenant}:{yourConnectionName}. Sustituya {yourConnectionName} por el nombre de la conexión que creó para su inquilino de IdP.
    2. Busque Metadata y copie y guarde la URL proporcionada. Tendrá un aspecto similar a este: https://{yourDomain}/samlp/metadata?connection={yourConnectionName}. Sustituya {yourConnectionName} por el nombre de la conexión que creó para su inquilino de IdP.
    3. Vaya a la URL que copió anteriormente para ver los metadatos de esta conexión en el inquilino de SP. También es posible que su navegador le pida guardar el archivo de metadatos.
    4. Busque la fila que comienza con AssertionConsumerService y copie y guarde el valor del campo Location. Será una URL con el siguiente formato: https://{yourDomain}/login/callback?connection={yourConnectionName}. Esta es la URL de su inquilino de SP que recibe la aserción SAML del inquilino de IdP. En la siguiente sección, proporcionará esta URL al inquilino de IdP para que sepa dónde enviar la aserción SAML.

Agregar metadatos del proveedor de servicios al IdP

Agrega información sobre el inquilino del SP al inquilino del IdP para que sepa cómo recibir y responder a las solicitudes de autenticación SAML.
  1. Cambia a tu inquilino del IdP. Abre el menú del inquilino, selecciona Switch Tenant y luego selecciona tu inquilino del IdP.
  2. Ve a Dashboard > Applications > Applications y selecciona el nombre de la aplicación del IdP que creaste anteriormente.
  3. Cambia a la vista Addons.
  4. Selecciona SAML2 Web App para ver sus opciones y ubica la Application Callback URL. Pega la AssertionConsumerService URL que copiaste anteriormente.
  5. En el bloque de código Settings, ubica la clave audience y quítale el comentario. Luego, elimina la coma al final de la línea y reemplaza el valor original (urn:foo) por el valor de Entity ID que copiaste anteriormente (incluido el nombre de la conexión que creaste en el paso 4 cuando configuraste el inquilino de tu proveedor de servicios). La nueva línea debería verse así: “audience":"urn:auth0:{yourTenant}:{yourConnectionName}".
  6. Selecciona Enable.

Probar el IdP

  1. En la misma ventana, desplázate hacia arriba y selecciona Debug. Aparecerá una pantalla de inicio de sesión.
  2. Inicia sesión con las credenciales del usuario de prueba que creaste anteriormente. Si la configuración es correcta, se mostrará “It works!”, junto con la respuesta SAML codificada y decodificada que se enviaría al IdP.
  3. Revisa la respuesta SAML decodificada, localiza <saml:Audience> y asegúrate de que coincida con el Entity ID que ingresaste en la pantalla anterior.
  4. Selecciona Close this window.

Crear una aplicación para probar la conexión SAML

Cree una aplicación sencilla para probar la conexión SAML que creó.
  1. Cambie a su inquilino del SP. Abra el menú del inquilino, seleccione Switch Tenant y, a continuación, seleccione su inquilino del SP.
  2. Vaya a Dashboard > Applications > Applications y seleccione Create Application.
  3. Introduzca un nombre para la aplicación, seleccione Regular Web Application como tipo de aplicación y, a continuación, seleccione Create.
  4. Copie y guarde los valores de Dominio e ID de cliente.
  5. Busque el campo Allowed Callback URLs e introduzca http://jwt.io. Esta es la lista de URL de callback permitidas a las que se redirigirá a los usuarios después de la autenticación. Las URL que introduzca aquí deben coincidir con la URL de callback del código HTML creado en el siguiente paso. Normalmente, introduciría una URL de su aplicación, pero para simplificar este ejemplo, el usuario de prueba será redirigido a la herramienta en línea JWT de Auth0, que proporciona información sobre el JSON Web Token (JWT) que se devuelve al final de la secuencia de autenticación.
  6. Seleccione Save Changes.
  7. Cambie a la vista Connections, busque la conexión SAML que creó en la sección Enterprise y habilítela.

Pruebe la conexión entre el servicio y el proveedor de identidad

Haga una prueba para confirmar que la configuración de SAML entre el inquilino del SP y el inquilino del IdP funciona.
  1. Vaya a Dashboard > Authentication > Enterprise y seleccione SAML.
  2. Busque la conexión SAML que creó y seleccione el icono de flecha Try. Como ya inició sesión anteriormente mientras probaba esta conexión, debería ser redirigido directamente a la pantalla “It works!”. Si ve la pantalla de inicio de sesión, inicie sesión con las credenciales de su usuario de prueba.
Si la configuración está correcta, verá “It works!”, y la página mostrará el contenido de la aserción de autenticación SAML enviada por el inquilino del IdP al inquilino de Auth0. Si no está configurada correctamente, vuelva a revisar los pasos. Si sigue teniendo problemas, consulte la sección de solución de problemas al final de este documento.

Crea una página web para la aplicación de prueba

Crea una página web sencilla que invoque el widget Lock y active la secuencia de inicio de sesión SAML.
  1. Crea una página HTML e inserta el siguiente código HTML y JavaScript. Reemplaza {yourClientId} y {yourDomain} por los valores reales de la aplicación que registraste antes. (Si no anotaste esos valores, puedes encontrarlos en Application Settings del inquilino de tu SP).
    <!DOCTYPE html>
    <html lang="en">
    <body>
      <button type="button" onclick="login()">Log in</button>
      <script src="https://cdn.auth0.com/js/auth0/9.19.0/auth0.min.js"></script>
      <script>
        var auth0 = new auth0.WebAuth({
          domain: '{yourDomain}',
          clientID: '{yourClientId}',
          redirectUri: 'URL_TO_THIS_PAGE',
          responseType: 'token id_token',
          scope: 'openid email profile'
        })
    
        auth0.parseHash(function(err, data) {
          if (err) {
            console.log(err)
          }
    
          if (data) {
            console.log('Login successful!')
            console.log(data)
          }
        })
    
        window.login = function() {
          auth0.authorize()
        }
      </script>
    
    </body>
    </html>
    
  2. También puedes reemplazar audience por el valor adecuado para tu aplicación, pero para esta prueba basta con un marcador de posición. Si especificas el parámetro audience, asegúrate de que coincida con el identificador de una API existente que hayas configurado en Auth0.
  3. Guarda el archivo HTML en una ubicación a la que puedas acceder desde un navegador.

Probar la aplicación de ejemplo

Pruebe la aplicación HTML de ejemplo que usa la conexión SAML de Auth0 que creó en su inquilino de SP para realizar la autenticación SSO en el inquilino de IdP.
  1. Abra en un navegador el archivo HTML que creó anteriormente. Debería ver un botón de inicio de sesión.
  2. Haga clic en Login. Debería ver el widget Lock con una sola opción. Si tiene otras conexiones habilitadas para su aplicación, la pantalla puede verse diferente. Si se le solicita una dirección de correo electrónico, asegúrese de que la dirección que introduzca tenga el mismo dominio que el que indicó en la vista Settings de la aplicación en el primer inquilino.
  3. Haga clic en el botón azul, que puede mostrar saml o ACCESS. El hecho de que se le soliciten credenciales o de que se le redirija inmediatamente a la URL de callback depende de si todavía tiene una sesión activa.

Solucionar problemas del escenario de prueba

  • Borra el historial y las cookies del navegador antes de cada prueba. Si no lo haces, es posible que el navegador no cargue la versión más reciente de tu página HTML o que tenga cookies obsoletas que afecten la ejecución.
  • Captura una traza HTTP de la interacción. Muchas herramientas permiten capturar el tráfico HTTP de tu navegador para analizarlo.
    • Busca en internet “HTTP Trace” para encontrar e instalar una herramienta.
    • Captura la secuencia de inicio de sesión de principio a fin y analiza la traza. Haz un seguimiento de la secuencia de solicitudes GET para ver hasta dónde llegas en la secuencia esperada. Deberías ver una redirección desde tu sitio original al inquilino del SP y luego al inquilino del IdP, un POST de credenciales si tuviste que iniciar sesión, después una redirección de vuelta a la URL de callback o al inquilino del SP, y luego una redirección a la Callback URL especificada en tu aplicación.
  • Asegúrate de que las cookies y JavaScript estén habilitados en tu navegador.
  • Asegúrate de que la Callback URL especificada en el archivo HTML también figure en el campo Allowed Callback URLs de tu aplicación. Para hacerlo, ve a Dashboard > Applications > Applications y selecciona el nombre de tu aplicación; luego, busca Allowed Callback URLs.
  • Usa la herramienta http://samltool.io para decodificar una aserción SAML.

Más información