Proveedor de seguridad SSO JWT en Jitterbit App Builder
El proveedor de seguridad JWT SSO implementa un protocolo de inicio de sesión único (SSO) personalizado. Este protocolo permite que un servicio de confianza inicie sesión en App Builder. Esto se logra generando un token web JSON (JWT) y transfiriéndolo a un extremo de autenticación mediante una redirección del navegador del cliente.
Protocolo
El protocolo JWT SSO utiliza los siguientes estándares:
Extremos
El protocolo JWT SSO define dos extremos de servicio.
- Servicio de autenticación - Alojado por App Builder.
- Servicio de inicio de sesión único: alojado por un servicio de externo confiable.
Servicio de autenticación
El servicio de autenticación es responsable de:
- Autenticación de un JWT.
- Iniciar sesión del usuario en App Builder.
Ejemplo:
https://example.com/App Builder/signin-{Provider}
¿Dónde? {Provider}
Es el nombre del proveedor de seguridad de App Builder. Consulte Configuración.
Parámetros
El extremo del servicio de autenticación define los siguientes parámetros:
jwt
- Token web JSON. Obligatorio.return_to
- URI relativa. Opcional.
JWT
El jwt
El parámetro contiene el token web JSON. Los JWT son seguros URL, por lo que no se requiere codificación adicional.
Los JWT deben cumplir los siguientes requisitos:
- El JWT debe estar firmado utilizando el algoritmo RS256 (RSA, SHA-256).
- El JWT no debe estar cifrado.
- El JWT debe incluir las siguientes reclamaciones registradas.
Reclamación | Nombre | Tipo | Propósito |
---|---|---|---|
iss | Emisor | StringOrURI | App Builder hará coincidir el emisor con el emisor configurado del proveedor de seguridad, realizando una comparación que distingue entre mayúsculas y minúsculas. |
sub | Asunto | StringOrURI | App Builder hará coincidir el asunto con una cuenta de usuario de App Builder. |
aud Audiencia | URI | App Builder hará coincidir la audiencia con la configurada por el proveedor de seguridad. Ejemplo: https://example.com/App Builder | |
exp | Hora de expiración | Fecha numérica | App Builder validará que la fecha de expiración sea menor que la fecha actual, teniendo en cuenta el desfase del reloj. |
nbf | No antes de | NumericDate | App Builder validará que la fecha y hora actuales sean mayores que el valor No antes de, teniendo en cuenta la diferencia de reloj. |
iat | Emitido a las | Fecha numérica | App Builder usará el valor de Emitido a las para determinar la antigüedad del JWT. App Builder limitará el periodo de aceptación de un token a, por ejemplo, 5 minutos. |
jti | ID de JWT | Fecha numérica | App Builder utilizará el ID de JWT para evitar ataques de repetición. |
Las reclamaciones registradas en JWT se describen en la Sección 4.1 del estándar JSON Web Token.
El JWT puede contener notificaciones adicionales. Al igual que con todos los proveedores de seguridad de App Builder, las notificaciones pueden ser:
- Se utiliza para aprovisionar cuentas de usuario y proporcionar membresías de grupos de seguridad.
- Asignado a propiedades de la cuenta de usuario, como el nombre de usuario, la dirección de correo o el número de teléfono.
- Se accede mediante reglas de negocio utilizando mvSQL
claim()
función de tiempo de ejecución.
Ejemplo de una carga útil JWT:
{
"jti": "918b6e73-400d-479c-baa1-8e12f5fd78f4",
"iss": "example.com",
"aud": "https://example.com/App Builder",
"sub": "Arthurd.Dent",
"iat": 1652473593,
"exp": 1652473893,
"groups": [
"Users",
"Employees",
"Sales"
]
}
Volver a
El return_to
El parámetro consiste en un URI. Este URI es relativo al directorio raíz de la aplicación App Builder. Debe ir precedido de una barra diagonal.
Ejemplo:
/app/Sales/Leads?LeadId=1234
App Builder validará la URI para protegerse contra ataques de redireccionamiento abierto.
Métodos
Correo
De forma predeterminada, el extremo de autenticación aceptará una publicación de formulario:
POST /App Builder/signin-JWTSSO HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
jwt={jwt}&return_to={return_to}
Conseguir
Como alternativa, el extremo de autenticación también puede configurarse para aceptar GET
Solicitudes:
GET /App Builder/signin-JWTSSO?jwt={jwt}&return_to={return_to} HTTP/1.1
Host: example.com
Al utilizar el GET
método, el token de seguridad JWT se pasa en la cadena de consultar de URL.
Tenga en cuenta lo siguiente antes de usar GET
:
GET
Esto representa un riesgo adicional, ya que las cadenas de consultar suelen escribirse en los archivos de registro del servidor web. Esto se puede mitigar garantizando que los tokens de seguridad tengan una vida útil corta y no se puedan reproducir. Las URLs están sujetas a restricciones de longitud, generalmente de unos 2000 caracteres. Esto se puede mitigar limitando el número de solicitudes.- El
return_to
El parámetro puede contener valores con doble codificación URL. Estas solicitudes pueden ser bloqueadas por firewalls.
Servicio de inicio de sesión único
El servicio de inicio de sesión único es el extremo al que App Builder redirigirá a los usuarios cuando se emita un desafío. El servicio de inicio de sesión único es responsable de:
- Autenticación del usuario.
- Generación de un JWT.
- Redirigir al usuario al Servicio de Autenticación.
El extremo del servicio de inicio de sesión único es opcional.
Configuración
Ajustes
- Nombre: Nombre del proveedor de seguridad. Este nombre aparece en la URL del Servicio de Autenticación. También puede aparecer en el formulario de inicio de sesión.
- Tipo: JWT SSO
Fichas
- Audiencia: Audiencia. URI. Se utiliza para validar el JWT
aud
reclamación. Ejemplo:https://example.com/App Builder
- Emisor: Nombre del emisor. Cadena, se recomienda URI. Se utiliza para validar el JWT.
iss
reclamación. Distingue entre mayúsculas y minúsculas.
Extremos
Tipo | Descripción |
---|---|
Servicio de inicio de sesión único | Ubicación a la que se redirigirá a los usuarios cuando se envíe un desafío al proveedor de seguridad de inicio de sesión único JWT. URI absoluta opcional. |
Certificados
Uso | Tipo | Descripción |
---|---|---|
Validación de firma | Certificado X.509 | Clave pública RSA: se utiliza para validar la firma JWT. |
Propiedades
El proveedor de seguridad OAuth admite los siguientes parámetros adicionales:
Parámetro | Predeterminado | Descripción |
---|---|---|
AllowHttpGet | False | Indica que el extremo de autenticación debe permitir HTTP GET solicitudes. |
ClockSkew | 5 | Número de minutos. Entero positivo. Se utiliza al validar el JWT. iat , nbf y exp reclamaciones. |
MaxLifetime | 5 | Número de minutos. Entero positivo. Se utiliza para validar la iat reclamación |
Algoritmo de firma | RS256 | Algoritmo de firma JWT. RS256 es el único algoritmo compatible actualmente. |