Autenticación de clientes en Jitterbit App Builder
App Builder puede funcionar como un servidor de autorización de OpenID Connect (OIDC). Este servidor permite que las aplicaciones cliente, incluidas otras instancias de App Builder, autentiquen a los usuarios. El proceso de inicio de sesión de OIDC genera un token de acceso que permite a la aplicación cliente acceder a recursos protegidos en nombre del usuario. Los recursos protegidos incluyen las APIs REST y de webhook alojadas en App Builder, así como las fuentes de datos del conector de App Builder.
Compatibilidad con protocolos
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 se define en RFC-6749. En conjunto, estas normas describen:
- Flujos: Un flujo es un proceso mediante el cual el cliente recupera tokens de identidad y acceso. Por esta razón, los flujos también se denominan concesiones.
- Extremos - Cada flujo implica una o más solicitudes HTTP a URLs conocidas.
- Ámbitos: Las aplicaciones cliente pueden solicitar uno o más ámbitos. Los ámbitos determinan qué tokens se emiten (identidad, actualización), qué incluyen (reclamos) y a qué APIs se puede acceder con ellos.
- Afirmaciones - Como lo describe el estándar, el token de identidad es fundamentalmente un JSON Web Token (JWT). Los JWT se basan en notificaciones. El alcance solicitado determina qué notificaciones se incluyen en el token de identidad.
Flujos admitidos
El servidor de autorización de App Builder admite los siguientes flujos OAuth 2.0 básicos:
- Código de Autorización. El flujo del Código de Autorización permite al cliente obtener un token de acceso, lo que le permite acceder a recursos protegidos en nombre del usuario. El flujo del Código de Autorización es interactivo: el usuario debe estar presente para iniciarlo.
Credenciales del cliente. El flujo de credenciales del cliente permite que la aplicación cliente adquiera un token de acceso en su nombre. Este flujo es de servidor a servidor y normalmente funciona como una cuenta de servicio.
- Actualizar token. El flujo de actualización de token permite al cliente solicitar un nuevo token de acceso una vez que el token actual haya expirado. Esto se conoce como "acceso sin conexión". El flujo de actualización de token puede utilizarse en combinación con los flujos de código de autorización o de credenciales de cliente. El ámbito offline_access habilita el flujo de actualización de token (véase más adelante).
Como se mencionó anteriormente, OIDC se basa en el marco de autorización OAuth 2.0. OIDC aprovecha los flujos de OAuth 2.0 y utiliza el parámetro scope para habilitar la funcionalidad específica 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 ámbito openid, el flujo de Código de Autorización permite al cliente autenticar a un usuario devolviendo un token de identidad adicional. Los ámbitos adicionales determinan qué notificaciones se incluyen en el token.
- Token de actualización. El flujo de token de actualización funciona igual en OIDC que en OAuth 2.0.
El servidor de autorización no admite los flujos OIDC implícitos ni híbridos. El flujo de credenciales de cliente de OAuth 2.0 no es un flujo OIDC.
El flujo del código de autorización se puede utilizar con o sin la extensión de clave de prueba para intercambio de código (PKCE), como se define en RFC-7636.
Extremos compatibles
El servidor de autorización de App Builder publica los siguientes extremos:
Extremo | Estándar | Descripción |
---|---|---|
/conectar/autorizar | RFC-6749 | Emite un código de autorización. |
/connect/token | RFC-6749 | Emite un token de acceso. |
/conectar/introspeccionar | RFC-7662 | Introspección del token de acceso. |
/connect/userinfo | Núcleo OIDC | Introspección del token de identidad. |
/.well-known/openid-configuration | Descubrimiento de OIDC | Configuración del proveedor de OpenID Connect. |
Ámbitos compatibles
El servidor de autorización de App Builder admite los siguientes ámbitos:
Alcance | Descripción |
---|---|
openid | Emite un token de identidad OIDC. |
perfil | Incluye las declaraciones del perfil del usuario en el token de identidad. |
* correo* | Incluye reclamaciones de direcciones de correo en el token de identidad. |
teléfono | Incluye declaraciones 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 de conector de App Builder, Webhook y REST alojadas en App Builder. |
Afirmaciones respaldadas
Como se mencionó anteriormente, el token de identidad es un token JWT basado en notificaciones. El cliente puede determinar qué notificaciones se incluyen en el token de identidad especificando los alcances.
Alcance | Notificaciones |
---|---|
openid | sub |
perfil | nombre, apodo, configuración regional y información de zona |
correo | correo y correo electrónico verificado |
teléfono | número_de_teléfono y número_de_teléfono_verificado |
Para una descripción de cada una de estas reivindicaciones, consulte la sección 5.1 Reivindicaciones estándar del estándar OIDC. Cualquier afirmación estándar que no se encuentre explícitamente mencionada anteriormente carece de fundamento.
Configuración
Para utilizar el servidor de autorización, el administrador de App Builder primero debe:
- Habilite el servidor de autorización.
- Registrar una aplicación cliente.
- Configure 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 usuario, ubique el proveedor de seguridad del Servidor de autorización y haga clic en el ícono 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 desee autenticar usuarios o acceder a recursos protegidos debe estar registrada. Para ello, inicie sesión en App Builder como administrador y siga estos pasos:
- Haga clic en el enlace IDE.
- Haga clic en el botón Administració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. Obligatorio para el flujo de Credenciales del Cliente. De lo contrario, deje este campo en blanco.
- Proveedor de autenticación: Seleccione un proveedor o déjelo en blanco.
- Habilitado: Habilita o deshabilita la aplicación cliente.
-
Haga clic en el botón Guardar.
-
(Opcional) Haga clic en Más, entonces Avanzado. Se abre el cuadro de diálogo Configuración avanzada. Contiene dos pestañas:
-
Propiedades: Configure las siguientes opciones según sea necesario:
-
Requiere PKCE: Al seleccionar esta opción, el cliente debe usar la extensión PKCE. Esto solo aplica al flujo del código de autorización y es obligatorio para clientes públicos.
-
Público: Al seleccionar esta opción, el cliente es público y no se pueden almacenar secretos de forma segura. Al desmarcarla, el cliente es confidencial y puede almacenar secretos de forma segura.
-
-
Duración del token: Introduzca valores en los siguientes campos, según sea necesario:
-
Token de acceso: Tiempo de caducidad del token de acceso, en minutos. Predeterminado: 60.
-
Token de actualización: Tiempo de caducidad del token de actualización, en minutos. Predeterminado: 20160 (14 días).
-
Token de identidad: Tiempo de caducidad del token de identidad, en minutos. Predeterminado: 20.
-
Código de autorización: Tiempo de caducidad del código de autorización, en minutos. Valor predeterminado: 5.
-
-
Generar un secreto de cliente
La aplicación cliente debe proporcionar sus propias credenciales al solicitar un token de acceso. Estas credenciales consisten en el ID de cliente y un secreto de cliente. Los secretos de cliente solo se pueden generar para clientes confidenciales. El panel Secretos estará oculto para los clientes públicos.
Para generar un secreto de cliente:
-
En el panel Secretos, haga clic en el botón +Secreto.
-
Proporcione la siguiente información:
-
Descripción: Descripción opcional del secreto de cliente.
-
Caducidad: Si el secreto debe caducar, establezca la fecha y hora de caducidad. De lo contrario, deje este campo en blanco.
-
-
Haga clic en el botón Guardar.
-
Copie el ID de cliente y el Secreto de cliente.
ADVERTENCIA: Este es el único momento en que el secreto será visible.
Registrar la URI de redirección del cliente
Como se mencionó anteriormente, el flujo del código de autorización es interactivo. Durante este flujo, el usuario es redirigido al extremo de autorización. Una vez autenticado, se le redirige de nuevo a la aplicación cliente.
La URL de devolución de llamada de la aplicación cliente se denomina "URI de redireccionamiento". Cada URI de redireccionamiento debe estar registrada. Las URI de redireccionamiento del cliente deben cumplir las siguientes restricciones:
- La URL de redireccionamiento del cliente debe ser una URL absoluta. La URL de redireccionamiento del cliente debe usar el protocolo HTTPS. Sin embargo, puede usar el URL HTTP al redirigir a localhost.
- La URL de redireccionamiento del cliente puede contener una cadena de consultar.
- La URL de redireccionamiento del cliente no debe contener un fragmento.
Para registrar una URI de redirección de cliente:
- En el panel Redirecciones, haga clic en el botón + URL.
- Proporcione la URL.
- Haga clic en el botón Guardar.
Configurar la aplicación cliente
Cualquier aplicación cliente OIDC u OAuth 2.0 que cumpla con los estándares y admita los flujos de código de autorización o credenciales de cliente puede utilizar el servidor de autorización de App Builder. Esto incluye el propio App Builder : 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/App Builder
. - ID de cliente y secreto (ver arriba)
Comience iniciando sesión en la instancia cliente de 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 usuario, haga clic en el botón +Autenticación de usuario.
-
Proporcione lo siguiente:
- Nombre: Nombre del proveedor de seguridad, p. ej.
App Builder
. - Tipo: * App Builder / Conexión OpenID*
- Mostrar en el formulario de inicio de sesión: marque esta opción para mostrar la opción de inicio de sesión en el formulario de inicio de sesión.
- Aprovisionamiento de usuarios: marque esta opción para habilitar el aprovisionamiento de usuarios.
- Nombre: Nombre del proveedor de seguridad, p. ej.
-
Haga clic en el botón Guardar.
- En el panel Extremos, haga clic en el botón + Extremo.
-
Proporcione lo siguiente:
- Tipo de Extremo: * Emisor de OpenID Connect *
- URL. La URL raíz del servidor de autorización de App Builder.
-
Haga clic en el botón Guardar.
- En el panel Credenciales, haga clic en el botón +Credencial.
-
Proporcione 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 de App Builder del cliente utilizando el servidor de autorización de App Builder.
Limitaciones conocidas
El servidor de autorización de App Builder no admite lo siguiente
- Consentimiento del usuario.
- Flujos implícitos o híbridos de OIDC