¿Qué es un JWT?

Un JSON Web Token (JWT)  es un formato de token cifrado que se utiliza para transferir datos como credenciales (autenticación y autorización) de forma segura entre dos aplicaciones. JWT se utiliza solo para el inicio de sesión de los Readers' .
Leer sobre JWT


Enterprise SSO con JWT

Document360 utiliza un enfoque similar a PKCE (Proof Key for Code Exchange) en OAuth para generar el JWT Token.

El diagrama de alto nivel a continuación muestra cómo puede lograr el JWT login flow en Document360.


A continuación se detallan los pasos del flujo de autenticación JWT

  1. Cuando el usuario final intenta acceder a la knowledge base configurada con JWT, la base de conocimientos de Document360 redirigirá al usuario final a la dirección URL de inicio de sesión que el cliente ha configurado en la configuración de Document360 JWT. La suposición aquí es que la URL de inicio de sesión configurada reside dentro de la aplicación del cliente, lo que requerirá autenticación
  2. Al llamar al login endpoint  en la aplicación del cliente, invocará la lógica de inicio de sesión, que enviará una solicitud con los detalles del usuario, el Client Id  y el Client secret a la Identity server code generation URL  para obtener el Auth code. Esta comunicación se realiza a través del canal posterior.
  3. La URL de generación de código aceptará POST requests con la JSON payload que se menciona a continuación. El Client Id y Client secret deben enviarse como un basic authorization header..
  4. Siga este enlace para descubrir cómo se debe formar el encabezado para la autenticación básica.

Carga útil JSON

{
"username" = "nombre + apellido",
"firstName" = "nombre",
"lastName" = "apellido",
"emailId" = "emailId del usuario",
"readerGroupIds": ["Obtener de la página de información general de los grupos de lectores en el portal de Document360 (opcional)"],
"tokenValidity": 15 //minutos ()
}

  1. El Identity server  generará el código en función de los detalles del usuario, el client id, y client secret y devolverá el código generado a la aplicación del cliente a través de un canal posterior.
  2. Una vez que la aplicación cliente recibe el Auth code del Identity server, la aplicación cliente anexará el código a la call-back URL  que se encuentra en la JWT settings 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}

  1. Una vez que la base de conocimientos recibe el código de autenticación en el query parameter , enviará el código al dentity server  a través de un canal posterior a cambio del ID token y el access token. Una vez que la base de conocimientos haya recibido el ID token, creará una sesión en nombre del usuario mencionado en los detalles de usuario anteriores. 
  2. De forma predeterminada, esta sesión será válida durante 15 minutos, y una vez que caduque la session cookie , el usuario final redirigirá a la Login URL (alojada dentro de la aplicación del cliente) para obtener un nuevo código, y el flujo se repetirá. La renovación de la sesión será perfecta ya que el usuario ya está autenticado en la aplicación del cliente.

cURL

Se debe especificar la versión HTTP (HTTP2 sobre TLS y versión de SSL a TLS 1.2.
Sin esto, el cURL fallaría.

A diferencia de las otras opciones de IdP disponibles (Okta, Azure AD, etc.), no es necesario que el usuario tenga una Reader accountindependiente en Document360; la cuenta en la aplicación cliente serviría. Una vez habilitado el JWT login , el reader puede utilizar la aplicación cliente para iniciar sesión como reader account en el Document360 knowledge base site .


Actualmente, Document360 proporciona una funcionalidad de cualquiera de los dos para los estándares de SSO. Una vez que el IdP se configura utilizando un estándar SSO (SAML u OpenID o JWT) para un proyecto, el usuario no podrá crear otra sesión simultánea.

Por ejemplo. Si un proyecto está configurado en el estándar OpenID con Okta como IdP, las opciones SAML y JWT se deshabilitarían.


Configuración de SSO

1. Creación de un JWT

1_New_Screenshot-Accessing_JWT_SSO

  1. Inicie sesión en el Document360 portal
  2. Vaya a Settings → Advanced → Enterprise SSO → JWT 
  3. Cree un JWT (Client secret) desde aquí haciendo clic en el botón Create JWT
  4. Copie el secreto de Client secret generado haciendo clic en el icono Copy y haciendo clic en Close

2_New_Screenshot-Create_a_JWT_in_portal_generated_token


El mismo Client secret generado no estará disponible cuando vuelva a visitar esta sección. Si es necesario, el Client secret debe regenerarse

  1. La JWT configuration page  con todos los datos estará disponible ahora

2. Configuración de JWT

Después de crear un JWT, la JWT configuration page estará visible.

3_New_Screenshot-JWT_configuration_page

a. JWT status - Enable o disable el JWT SSO login  para los Reders que utilizan este modificador. Si el cambio está Off, los Readers no podrán iniciar sesión en el Knowledge Base site con sus credenciales de aplicación cliente

b. Delete - Haga clic en el botón Delete para eliminar el JWT configurado

c. Set up your application : copie el Client ID, Callback URL, Code generation URL, Client secret y péguelos en los campos apropiados de la aplicación cliente


La página de configuración y la disposición de los campos de la aplicación cliente difieren en cada aplicación cliente.

d. JWT basic configuration  : pegue la URL de inicio de sesión. Puede obtenerlo desde la aplicación cliente.

e. Logout URL (Optional)la opción Logout landing page  se puede configurar en la JWT configuration page . Agregue el vínculo de página personalizado en la Logout URL(Optional).

Si no se proporciona el enlace de cierre de sesión personalizado, el r aeader terrizará en la nueva página de cierre de sesión dedicada a los lectores de SSO de JWT.