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 APIs REST y Webhook alojadas en App Builder, así como 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 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 URLs 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 (claims) y qué APIs se pueden acceder con esos tokens.
- Claims - Como se describe en el estándar, el token de identidad es fundamentalmente un JSON Web Token (JWT). Los JWT son basados en claims. El ámbito solicitado determina qué claims 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 usar 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 de OIDC.
El flujo de Código de autorización se puede utilizar con o sin la extensión Proof Key for Code Exchange (PKCE), según lo definido por RFC-7636.
Endpoints admitidos
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 del token de acceso. |
/connect/userinfo | OIDC Core | Introspección del token de identidad. |
/.well-known/openid-configuration | OIDC Discovery | Configuración del proveedor OpenID Connect. |
Scopes admitidos
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 la dirección de correo electrónico en el token de identidad. | |
phone | Incluye claims del 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.
-
Haga clic en el botón Guardar.
-
(Opcional) Haga clic en Más, luego en Avanzado. Se abre el cuadro de diálogo Configuraciones Avanzadas. Contiene dos pestañas:
-
Propiedades: Establezca la siguiente configuración, 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: Ingrese 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, haga clic en el botón +Secreto.
-
Proporcione lo siguiente:
- Descripción: Descripción opcional del secreto del cliente.
- Expira En: Si el secreto debe expirar, establezca la fecha y hora de expiración. De lo contrario, deje este campo en blanco.
-
Haga clic en el botón Guardar.
- Copie 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 "redirect URI". Cada redirect URI debe estar registrada. Las redirect URIs 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 redirect URI del cliente:
- En el panel de Redirects, haz clic en el botón +URL.
- Proporciona la URL.
- Haz clic en el botón Save.
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 Authorization Code o Client Credentials 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 Security Providers.
- En el panel de User Authentication, haz clic en el botón +User Authentication.
-
Proporciona lo siguiente:
- Name: Nombre del proveedor de seguridad, por ejemplo,
App Builder
. - Type: App Builder / OpenID Connect
- Show On Login Form: Marca esta opción para mostrar la opción de inicio de sesión en el formulario de inicio de sesión.
- User Provisioning: Marca esta opción para habilitar la provisión de usuarios.
- Name: Nombre del proveedor de seguridad, por ejemplo,
-
Haz clic en el botón Save.
- En el panel de Endpoints, haz clic en el botón +Endpoint.
-
Proporciona lo siguiente:
- Endpoint Type: OpenID Connect Issuer
- URL. La URL raíz del servidor de autorización de App Builder.
-
Haz clic en el botón Save.
- En el panel de Credentials, haz clic en el botón +Credential.
-
Proporciona lo siguiente:
- Tipo: Cliente
- Nombre de usuario: El ID del cliente (ver arriba).
- Contraseña: El secreto del cliente (ver arriba).
-
Haz clic en el botón Guardar.
- En el panel Proveedor, haz clic en el botón Editar.
- Marca la opción Habilitado.
- Haz 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