Planes que admiten el inicio de sesión único (SSO)
Profesional | Negocio | Empresa |
---|---|---|
¿Qué es un JWT?
Un JSON Web Token (JWT) es un formato de token cifrado que transfiere de forma segura datos como credenciales (autenticación y autorización) entre dos aplicaciones. JWT utiliza específicamente para autenticar los inicios de sesión de los lectores en Document360. Haga clic aquí para leer sobre JWT.
SSO empresarial mediante JWT
Document360 utiliza un enfoque similar al PKCE (Proof Key for Code Exchange, un método seguro de OAuth) para generar el token JWT.
El diagrama de alto nivel siguiente muestra cómo lograr JWT flujo de autenticación en Document360.
Pasos en el flujo de autenticación deJWT
Cuando el usuario final intente acceder a la base de conocimiento configurada con JWT, la base de conocimiento de Document360 redirigirá al usuario final a la URL de inicio de sesión que la cuenta de equipo haya configurado en la configuración de JWT de Document360.
Suponiendo que la URL de inicio de sesión configurada reside dentro de la aplicación del cliente, que requerirá autenticación.
Al llamar al punto de conexión de inicio de sesión en la aplicación del cliente, invocará la lógica de inicio de sesión, que enviará una solicitud con:
Datos del usuario
ID de cliente y secreto de cliente a la URL de generación de código del servidor de identidad para obtener el código de autenticación
Este proceso se realiza a través del canal secundario.
La URL de generación de código aceptará las solicitudes POST con la carga JSON que se muestra a continuación:
El ID de cliente y el secreto deben enviarse como un encabezado de autorización básico.
Siga este enlace para averiguar cómo se debe formar el encabezado para la autenticación básica.
Carga útil JSON
{
"username": "firstname + lastname",
"firstName": "firstname",
"lastName": "lastname",
"emailId": "user emailId",
"readerGroupIds": ["Obtain from Reader groups overview page in the Document360 portal (Optional)"],
"tokenValidity": 15 //minutes *()*
}
NOTA
Asegúrese de que la sintaxis JSON sea correcta para evitar errores de configuración.
El servidor de identidad generará el código en función de los detalles del usuario, el ID de cliente y el secreto del cliente y devolverá el código generado a la aplicación del cliente.
Esto se hace a través del canal secundario.
Una vez que la aplicación del cliente recibe el código de autenticación del servidor de identidad,
La aplicación del cliente anexará el código a la URL de devolución de llamada que se encuentra en la configuración deJWT y redirigirá al usuario a la URL de devolución de llamada con el código.
Por ejemplo:
HTTPS://{project_name}.document360.io/jwt/authorize?code={code}
NOTA
El código de autenticación es un código de un solo uso y no se puede reutilizar.
Una vez que la base de conocimiento recibe el código de autenticación en el parámetro de consulta, enviará el código al servidor de identidad a través del canal secundario para el token de ID y el token de acceso.
Una vez que la base de conocimiento haya recibido el token de identificador, creará una sesión en nombre del usuario mencionado en los detalles del usuario anterior.
De forma predeterminada, esta sesión será válida durante 15 minutos. Una vez que caduque la cookie de sesión, el usuario final será redirigido a la URL de inicio de sesión (alojada en la aplicación del cliente) para obtener un nuevo código y el flujo se repetirá.
La renovación de la sesión será fluida, ya que el usuario ya está autenticado en la aplicación del cliente
Validez del token
El valor mínimo que se puede establecer es de 5 minutos y el valor máximo que se puede establecer es de 1440 minutos (1 día).
rizo
Para probar la configuración de JWT, puede utilizar el comando cURL con las siguientes especificaciones. Se debe especificar la versión HTTP (HTTP2 sobre TLS y versión de SSL a TLS 1.2. Sin esto, la cURL fallaría.
NOTA
A diferencia de otras opciones de IdP disponibles (Okta, Azure AD, etc.), el usuario no necesita una cuenta de lector independiente en Document360. Una cuenta en la aplicación cliente es suficiente.
Después de habilitar el inicio de sesión de JWT, el lector puede utilizar la aplicación cliente para iniciar sesión como una cuenta de lector en el sitio de la base de conocimientos de Document360.
NOTA
Actualmente, Document360 proporciona una funcionalidad de uno u otro para los estándares de SSO. Una vez que el IdP se configura mediante un estándar SSO (SAML, OpenID o JWT) para un proyecto, el usuario no puede crear otra sesión simultánea.
Por ej. Si un proyecto está configurado en el estándar OpenID con Okta como IdP, las opciones SAML y JWT se deshabilitarán.
Configuración de SSO
Creación de un JWT
Para crear un token web JSON (JWT),
Inicie sesión en el portal de Document360.
Vaya a Configuración ()> Usuarios y seguridad > JWT.
Cree un JWT (secreto de cliente) desde aquí haciendo clic en el botón Crear JWT .
Copie el secreto de cliente generado haciendo clic en el icono de copia y haciendo clic en Cerrar.
NOTA
El mismo secreto de cliente generado no estará disponible cuando vuelva a visitar esta sección. Si es necesario, se debe regenerar el secreto del cliente.
La página de configuración de JWT con todos los datos ya estará disponible.
Configuración de JWT
Después de crear un JWT, la página de configuración de JWT será visible.
Configura tu aplicación: Copie el ID de cliente, la URL de devolución de llamada, la URL de generación de código, el secreto de cliente y péguelo en los campos correspondientes de la aplicación cliente
Estado de JWT: active o desactive el inicio de sesión único de JWT para los lectores mediante este interruptor. Si el botón de alternancia está desactivado, los lectores no podrán iniciar sesión en el sitio de la base de conocimientos con sus credenciales de aplicación cliente.
Eliminar JWT: Haga clic en el botón Eliminar para eliminar el JWT configurado. No se puede deshacer esta acción.
Configuración básica de JWT: Pegue la URL de inicio de sesión obtenida de la aplicación del cliente.
Los lectores llegarán a la página de cierre de sesión dedicada para los lectores de JWT SSO si no se proporciona un enlace de cierre de sesión personalizado.
Redirección a otras páginas en lugar de a la página de inicio
De forma predeterminada, después de iniciar sesión, los usuarios son redirigidos a la página principal de la base de conocimientos.
Si la página de inicio no está publicada, los usuarios serán redirigidos a la página /docs .
Para redirigir a los usuarios a una página diferente de la base de conocimiento (que no sean las páginas Inicio o /docs ), configure la redirección durante la instalación de JWT mediante el siguiente código.
Patrón de URL
https://<Knowledge base URL>/jwt/authorize?code=<code>&redirectUrl=<redirect path>
Parámetros
URL de la base de conocimientos: la URL principal del sitio de la base de conocimientos.
Código: El ID del cliente.
URL de redireccionamiento: la nueva URL a la que desea que lleguen los usuarios después de iniciar sesión.
Ejemplo
https://example.document360.io/jwt/authorize?code=FOTaS_SW6dLGytQXvrG_rRFGhyPvrDDrgxJAZzYvJcY&redirectUrl=/docs/5-basic-things-to-get-started
NOTA
Document360 enviará la URL de redireccionamiento como
RedirectPath
al extremo de inicio de sesión. Cuando el punto de conexión de inicio de sesión redirige de nuevo a la base de conocimiento con el código de autenticación, debe devolver la URL de redireccionamiento como parámetroRedirectUrl
.
Solución de problemas
Si encuentra problemas durante la configuración de JWT SSO, consulte el siguiente error común y su solución:
Error 401 no autorizado al probar JWT en Postman
Error: 401 Error no autorizado
Si encuentra un error 401 no autorizado al probar JWT (JSON Web Token) con Postman, esto suele ocurrir porque la configuración de autorización no está configurada correctamente.
Pasos para resolverlo:
Para resolver este error,
En Postman, abra la solicitud que está probando.
Vaya a la pestaña Autorización .
Establezca el tipo de autorización en Autenticación básica.
En el campo Nombre de usuario , introduzca el ID de cliente.
En el campo Contraseña , introduzca el secreto de cliente.
Ve a la pestaña Cuerpo .
Seleccione la opción sin procesar en el menú desplegable y asegúrese de que el formato esté establecido en JSON.
Agregue la carga JSON necesaria para la solicitud de API.
Haga clic en Enviar para ejecutar la solicitud.
Compruebe la respuesta para obtener los resultados esperados. Si la solicitud se realiza correctamente, debería recibir un código de autenticación o token en la respuesta.
Preguntas frecuentes
¿Puedo utilizar un único inicio de sesión de JWT para admitir varias instancias de mi aplicación en el mismo sitio de la base de conocimiento de Document360?
No, actualmente, Document360 admite una única configuración de inicio de sesión JWT por proyecto.
Un inicio de sesión JWT común no se puede compartir entre varias instancias de la aplicación para la misma base de conocimiento de Document360.
Cada proyecto solo puede autenticar una instancia de aplicación JWT a la vez.
Si un usuario de JWT configurado cierra la sesión de la aplicación cliente, ¿significa eso que también se cerraría la sesión de Document360?
No, la sesión en Document360 es independiente después del inicio de sesión único inicial. Los usuarios pueden seguir utilizando Document360 hasta que caduque la validez del token, incluso después de cerrar la sesión de la aplicación cliente.
Ejemplo: Si la validez del token se establece en 1 día, la sesión de Document360 permanecerá activa hasta que caduque el token. Una vez que lo haga, se cerrará la sesión del usuario.
¿Cuáles son las bandas de validez mínima y máxima de los tokens?
El valor mínimo que se puede establecer es de 5 minutos y el valor máximo que se puede establecer es de 1440 minutos (1 día).
¿Puedo proporcionar un valor que supere la banda de validez de token permitida?
No, si se proporciona un valor fuera del rango, el sistema asignará automáticamente el valor permitido más cercano:
5 minutos para valores inferiores al mínimo.
1440 minutos para valores por encima del máximo.
¿Cuál es la diferencia entre JWT y SSO?
Puede ver una comparación entre JWT (JSON Web Token) y SSO (Single Sign-On) en la siguiente tabla:
Aspecto | JWT | SSO |
---|---|---|
Autenticación | Tokens generados por sesión/solicitud de usuario. | Autenticación centralizada en todas las aplicaciones. |
Caducidad del token | Por lo general, los tokens caducan después de un período determinado. | Sin token, sesión gestionada por el proveedor de identidad. |
Seguridad | Requiere almacenamiento seguro de tokens. | Almacenamiento de credenciales más seguro y centralizado. |
Uso | Se utiliza para la autenticación sin estado de un solo uso. | Se utiliza para múltiples aplicaciones con un solo inicio de sesión. |
Integración | Más fácil de implementar en aplicaciones personalizadas. | Requiere integración con un proveedor de identidad. |
¿Pueden los lectores iniciar sesión con OpenID o SAML si JWT está configurado para el proyecto?
No, los lectores no pueden iniciar sesión con OpenID o SAML si JWT está configurado para el proyecto. Document360 solo permite que un estándar de SSO (JWT, OpenID o SAML) esté activo por proyecto a la vez.
¿Qué características no se admiten cuando JWT está configurado para el proyecto?
Las siguientes funciones no se admiten cuando JWT está configurado para el proyecto:
Configuración avanzada: Registre automáticamente el inicio de sesión único y omita la página de inicio de sesión común de Document360.
Lectores: Autoregistro.