Autenticación de cliente en Jitterbit App Builder
App Builder puede operar como un servidor de autorización OpenID Connect (OIDC). El servidor de autorización permite que las aplicaciones cliente, incluidas otras instancias de App Builder, autentiquen a los usuarios. El proceso de inicio de sesión OIDC produce un token de acceso que permite a la aplicación cliente acceder a recursos protegidos en nombre del usuario. Los recursos protegidos incluyen las API REST y Webhook alojadas en App Builder, así como las fuentes de datos de App Builder Connector.
Soporte de protocolo
El protocolo OIDC está definido por el estándar OpenID Connect Core 1.0. OIDC es una capa de identidad construida sobre el marco de autorización OAuth 2.0, que está definido por RFC-6749. Juntos, estos estándares describen:
- Flujos - Un flujo es un proceso mediante el cual el cliente recupera tokens de identidad y de acceso. Por esta razón, los flujos también se conocen como concesiones.
- Puntos finales - Cada flujo implica una o más solicitudes HTTP a URL bien conocidas.
- Ámbitos - Las aplicaciones cliente pueden solicitar uno o más ámbitos. Los ámbitos determinan qué tokens se emiten (identidad, actualización), qué se incluye en esos tokens (reclamaciones) y qué APIs se pueden acceder con esos tokens.
- Reclamaciones - Como se describe en el estándar, el token de identidad es fundamentalmente un JSON Web Token (JWT). Los JWT son basados en reclamaciones. El ámbito solicitado determina qué reclamaciones se incluyen en el token de identidad.
Flujos soportados
El servidor de autorización de App Builder soporta los siguientes flujos base de OAuth 2.0:
- Código de autorización. El flujo de Código de autorización permite al cliente adquirir un token de acceso, que permite al cliente acceder a recursos protegidos en nombre del usuario. El flujo de Código de autorización es un flujo interactivo: un usuario debe estar presente para iniciar el flujo de Código de autorización.
- Credenciales de cliente. El flujo de Credenciales de cliente permite a la aplicación cliente adquirir un token de acceso en nombre de sí misma. Este es un flujo de servidor a servidor, que típicamente opera como una cuenta de servicio.
- Token de actualización. El flujo de Token de actualización permite al cliente solicitar un nuevo token de acceso una vez que el token actual ha expirado. Esto a veces se conoce como "acceso sin conexión". El flujo de token de actualización se puede utilizar en combinación con los flujos de Código de autorización o Credenciales de cliente. El ámbito offline_access habilita el flujo de Token de actualización (ver más abajo).
Como se mencionó anteriormente, OIDC se basa en el marco de autorización OAuth 2.0. OIDC aprovecha los flujos de OAuth 2.0, utilizando el parámetro scope para optar por funcionalidades específicas de OIDC. El servidor de autorización de App Builder admite los siguientes flujos de OIDC:
- Código de Autorización. Cuando se especifica el scope openid, el flujo de Código de Autorización permite al cliente autenticar a un usuario devolviendo un token de identidad adicional. Los scopes adicionales determinan qué claims se incluyen en el token.
- Token de Actualización. El flujo de Token de Actualización opera de la misma manera en OIDC que en OAuth 2.0.
El servidor de autorización no admite los flujos OIDC Implícito ni Híbrido. El flujo de Credenciales de Cliente de OAuth 2.0 no es un flujo OIDC.
El flujo de Código de Autorización se puede utilizar con o sin la extensión Proof Key for Code Exchange (PKCE), como se define en RFC-7636.
Endpoints soportados
El servidor de autorización de App Builder publica los siguientes endpoints:
| Endpoint | Estándar | Descripción |
|---|---|---|
| /connect/authorize | RFC-6749 | Emite un código de autorización. |
| /connect/token | RFC-6749 | Emite un token de acceso. |
| /connect/introspect | RFC-7662 | Introspección de token de acceso. |
| /connect/userinfo | OIDC Core | Introspección de token de identidad. |
| /.well-known/openid-configuration | OIDC Discovery | Configuración del proveedor OpenID Connect. |
Scopes soportados
El servidor de autorización de App Builder admite los siguientes scopes:
| Scope | Descripción |
|---|---|
| openid | Emite un token de identidad OIDC. |
| profile | Incluye claims del perfil del usuario en el token de identidad. |
| Incluye claims de dirección de correo electrónico en el token de identidad. | |
| phone | Incluye claims de número de teléfono en el token de identidad. |
| offline_access | Emite un token de actualización para su uso en el flujo de Token de Actualización. * No disponible para clientes públicos |
| api | Autoriza el acceso a las APIs REST, Webhook y App Builder Connector alojadas en App Builder. |
Reclamaciones soportadas
Como se mencionó anteriormente, el token de identidad es un token JWT basado en reclamaciones. El cliente puede determinar qué reclamaciones se incluyen en el token de identidad especificando los alcances.
| Alcance | Reclamaciones |
|---|---|
| openid | sub |
| profile | name, nickname, locale y zoneinfo |
| email y email_verified | |
| phone | phone_number y phone_number_verified |
Para una descripción de cada una de estas reclamaciones, consulte la sección 5.1 Reclamaciones estándar del estándar OIDC. Cualquier reclamación estándar que no esté explícitamente listada arriba no es soportada.
Configuración
Para hacer uso del servidor de autorización, el administrador de App Builder debe primero:
- Habilitar el servidor de autorización.
- Registrar una aplicación cliente.
- Configurar la aplicación cliente.
Habilitar el servidor de autorización
Para habilitar el servidor de autorización, comience iniciando sesión en App Builder como administrador:
- Haga clic en el enlace IDE.
- Haga clic en el botón Proveedores de Seguridad.
- En el panel Autenticación de Usuarios, localice el proveedor de seguridad Servidor de Autorización y haga clic en el ícono de Detalles (Chevron).
- Haga clic en el botón Editar.
- Marque la opción Habilitado.
- Haga clic en el botón Guardar.
Registrar una aplicación cliente
Cada aplicación cliente que pretenda autenticar usuarios o acceder a recursos protegidos debe ser registrada. Para registrar una aplicación cliente, comience iniciando sesión en App Builder como administrador, luego siga estos pasos:
- Haga clic en el enlace IDE.
- Haga clic en el botón Gestión de Usuarios.
- Haga clic en el botón Clientes.
- Haga clic en el botón +Cliente para registrar una nueva aplicación cliente.
-
Proporcione lo siguiente:
- Nombre: Un nombre descriptivo y amigable para la aplicación cliente.
- Descripción: Una descripción opcional.
- Usuario: Seleccione la cuenta de usuario del servicio. Requerido para el flujo de Credenciales de Cliente. De lo contrario, deje en blanco.
- Proveedor de Autenticación: Seleccione un proveedor o deje en blanco.
- Habilitado: Habilitar o deshabilitar la aplicación cliente.
-
Haz clic en el botón Guardar.
-
(Opcional) Haz clic en Más, luego en Avanzado. Se abre el cuadro de diálogo Configuraciones Avanzadas. Contiene dos pestañas:
-
Propiedades: Establece las siguientes configuraciones, según sea necesario:
-
Requiere PKCE: Cuando está seleccionado, el cliente debe usar la extensión PKCE. Esto solo se aplica al flujo de Código de Autorización y es obligatorio para clientes públicos.
-
Público: Cuando está seleccionado, el cliente es público y los secretos no pueden almacenarse de forma segura. Cuando no está seleccionado, el cliente es confidencial y puede almacenar secretos de forma segura.
-
-
Duraciones de Token: Ingresa valores para los siguientes campos, según sea necesario:
-
Token de Acceso: Tiempo de expiración del token de acceso, en minutos. Predeterminado: 60.
-
Token de Actualización: Tiempo de expiración del token de actualización, en minutos. Predeterminado: 20160 (14 días).
-
Token de Identidad: Tiempo de expiración del token de identidad, en minutos. Predeterminado: 20.
-
Código de Autorización: Tiempo de expiración del código de autorización, en minutos. Predeterminado: 5.
-
-
Generar un secreto de cliente
La aplicación cliente debe proporcionar sus propias credenciales al solicitar un token de acceso. Las credenciales del cliente consisten en el ID del cliente y un secreto del cliente. Los secretos del cliente solo se pueden generar para clientes confidenciales. El panel de Secretos estará oculto para clientes públicos.
Para generar un secreto de cliente:
- En el panel de Secretos, haz clic en el botón +Secreto.
-
Proporciona lo siguiente:
- Descripción: Descripción opcional del secreto del cliente.
- Expira En: Si el secreto debe expirar, establece la fecha y hora de expiración. De lo contrario, deja este campo en blanco.
-
Haz clic en el botón Guardar.
- Copia el ID del Cliente y el Secreto del Cliente.
ADVERTENCIA: Esta es la única vez que el secreto será visible.
Registrar URI de redirección del cliente
Como se mencionó anteriormente, el flujo de Código de Autorización es un flujo interactivo. Durante este flujo, el usuario es redirigido al punto final de autorización. Una vez que el usuario se ha autenticado, es redirigido de vuelta a la aplicación cliente.
La URL de callback de la aplicación cliente se conoce como "URI de redirección". Cada URI de redirección debe estar registrada. Las URIs de redirección del cliente deben cumplir con las siguientes restricciones:
- La URL de redirección del cliente debe ser una URL absoluta.
- La URL de redirección del cliente debe utilizar el protocolo HTTPS. Sin embargo, la URL de redirección del cliente puede utilizar el protocolo HTTP al redirigir a localhost.
- La URL de redirección del cliente puede contener una cadena de consulta.
- La URL de redirección del cliente no debe contener un fragmento.
Para registrar una URI de redirección del cliente:
- En el panel de Redirecciones, haz clic en el botón +URL.
- Proporciona la URL.
- Haz clic en el botón Guardar.
Configurar la aplicación cliente
Cualquier aplicación cliente que cumpla con los estándares OIDC o OAuth 2.0 que soporte los flujos de Código de Autorización o Credenciales de Cliente puede utilizar el servidor de autorización de App Builder. Esto incluye a App Builder mismo: es posible configurar una segunda instancia de App Builder como cliente.
Para configurar el cliente de App Builder, necesitarás:
- URL raíz del servidor de autorización de App Builder, por ejemplo,
https://example.com/Vinyl. - ID de cliente y secreto (ver arriba)
Comienza iniciando sesión en la instancia cliente de App Builder como administrador:
- Haz clic en el enlace IDE.
- Haz clic en el botón Proveedores de Seguridad.
- En el panel de Autenticación de Usuario, haz clic en el botón +Autenticación de Usuario.
-
Proporciona lo siguiente:
- Nombre: Nombre del proveedor de seguridad, por ejemplo,
App Builder. - Tipo: App Builder / OpenID Connect
- Mostrar en el Formulario de Inicio de Sesión: Marca esta opción para mostrar la opción de inicio de sesión en el formulario de inicio de sesión.
- Provisionamiento de Usuarios: Marca esta opción para habilitar el provisionamiento de usuarios.
- Nombre: Nombre del proveedor de seguridad, por ejemplo,
-
Haz clic en el botón Guardar.
- En el panel de Puntos Finales, haz clic en el botón +Punto Final.
-
Proporciona lo siguiente:
- Tipo de Punto Final: Emisor OpenID Connect
- URL. La URL raíz del servidor de autorización de App Builder.
-
Haz clic en el botón Guardar.
- En el panel de Credenciales, haz clic en el botón +Credencial.
-
Proporciona lo siguiente:
- Tipo: Cliente
- Nombre de usuario: El ID del cliente (ver arriba).
- Contraseña: El secreto del cliente (ver arriba).
-
Haga clic en el botón Guardar.
- En el panel Proveedor, haga clic en el botón Editar.
- Marque la opción Habilitado.
- Haga clic en el botón Guardar.
Una vez completado, los usuarios podrán iniciar sesión en la instancia del cliente App Builder utilizando el servidor de autorización de App Builder.
Limitaciones conocidas
El servidor de autorización de App Builder no soporta lo siguiente
- Consentimiento del usuario.
- Flujos OIDC Implícitos o Híbridos