Autenticación de cliente en Jitterbit App Builder
App Builder puede funcionar como servidor de autorización OpenID Connect (OIDC). El servidor de autorización permite que aplicaciones cliente, incluidas otras instancias de App Builder, autentiquen 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 del conector App Builder.
Compatibilidad de protocolos
El protocolo OIDC se define mediante 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 mediante RFC-6749. Juntos, estos estándares describen:
- Flujos - Un flujo es un proceso mediante el cual el cliente obtiene tokens de identidad y acceso. Por este motivo, los flujos también se denominan permisos.
- Endpoints - Cada flujo implica una o más solicitudes HTTP a URL conocidas.
- Alcances - Las aplicaciones cliente pueden solicitar uno o varios alcances. Los alcances determinan qué tokens se emiten (identidad, actualización), qué se incluye en esos tokens (reclamaciones) y a qué API se puede acceder con esos tokens.
- Reclamaciones - Según se describe en el estándar, el token de identidad es fundamentalmente un JSON Web Token (JWT). Los JWT se basan en reclamaciones. El alcance solicitado determina qué reclamaciones se incluyen en el token de identidad.
Flujos compatibles
El servidor de autorización de App Builder admite los siguientes flujos OAuth 2.0 base:
- Código de autorización - El flujo de código de autorización permite que el cliente adquiera 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: debe haber un usuario presente para iniciar el flujo de código de autorización.
- Credenciales de cliente - El flujo de credenciales de cliente permite que la aplicación cliente adquiera un token de acceso en su propio nombre. Se trata de un flujo de servidor a servidor, que generalmente funciona como una cuenta de servicio.
- Token de actualización - El flujo de token de actualización permite que el cliente solicite un nuevo token de acceso una vez que el token actual haya expirado. A veces se denomina "acceso sin conexión". El flujo de token de actualización se puede utilizar en combinación con flujos de código de autorización o credenciales de cliente. El alcance offline_access habilita el flujo de token de actualización (consulta a continuación).
Como se mencionó anteriormente, OIDC se construye sobre el marco de autorización OAuth 2.0. OIDC aprovecha los flujos OAuth 2.0, utilizando el parámetro scope para participar en la funcionalidad específica de OIDC. El servidor de autorización de App Builder admite los siguientes flujos OIDC:
- Código de autorización - Cuando se especifica el alcance openid, el flujo de código de autorización permite que el cliente autentique un usuario devolviendo un token de identidad adicional. Los alcances adicionales determinan qué reclamaciones 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 flujos implícitos ni híbridos de OIDC. El flujo de credenciales de cliente 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 de intercambio de código de prueba para clave (PKCE), tal como se define en RFC-7636.
Endpoints compatibles
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 de OpenID Connect. |
Ámbitos admitidos
El servidor de autorización de App Builder admite los siguientes ámbitos:
| Ámbito | Descripción |
|---|---|
| openid | Emite un token de identidad OIDC. |
| profile | Incluye reclamaciones de perfil de usuario en el token de identidad. |
| Incluye reclamaciones de dirección de correo electrónico en el token de identidad. | |
| phone | Incluye reclamaciones de número de teléfono en el token de identidad. |
| offline_access | Emite un token de actualización para usar en el flujo de Token de Actualización. * No disponible para clientes públicos |
| api | Autoriza el acceso a las API REST, Webhook y App Builder Connector alojadas en App Builder. |
Reclamaciones admitidas
Como se indicó 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 ámbitos.
| Ámbito | 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, consulta la sección 5.1 Standard Claims del estándar OIDC. No se admite ninguna reclamación estándar que no esté explícitamente listada anteriormente.
Configuración
Para usar el 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, comienza por iniciar sesión en App Builder como administrador:
- Haz clic en el enlace IDE.
- Haz clic en el botón Security Providers.
- En el panel Security Providers, ubica el proveedor de seguridad Authorization Server y haz clic en el icono Details (Chevron).
- Haz clic en el botón Edit.
- Marca la opción Enabled.
- Haz clic en el botón Save.
Registrar una aplicación cliente
Toda aplicación cliente que tenga la intención de autenticar usuarios o acceder a recursos protegidos debe registrarse. Para registrar una aplicación cliente, comienza por iniciar sesión en App Builder como administrador, luego sigue estos pasos:
- Haz clic en el enlace IDE.
- Haz clic en el botón User Management.
- Haz clic en el botón Clients.
- Haz clic en el botón +Client para registrar una nueva aplicación cliente.
-
Proporciona lo siguiente:
- Name: Un nombre descriptivo y amigable para la aplicación cliente.
- Description: Una descripción opcional.
- User: Selecciona la cuenta de usuario de servicio. Requerido para el flujo de Credenciales de Cliente. De lo contrario, déjalo en blanco.
- Authentication Provider: Selecciona un proveedor o déjalo en blanco.
- Enabled: Habilita o deshabilita la aplicación cliente.
-
Haz clic en el botón Save.
-
(Opcional) Haz clic en More, luego en Advanced. Se abre el diálogo Advanced Settings. Contiene dos pestañas:
-
Properties: Establece la siguiente configuración según sea necesario:
-
Requires PKCE: Cuando se selecciona, el cliente debe usar la extensión PKCE. Esto solo aplica al flujo de Código de Autorización y es requerido para clientes públicos.
-
Public: Cuando se selecciona, el cliente es público y no se pueden almacenar secretos de forma segura. Cuando no se selecciona, el cliente es confidencial y puede almacenar secretos de forma segura.
-
-
Token Lifetimes: Ingresa valores para los siguientes campos según sea necesario:
-
Access Token: Tiempo de vencimiento del token de acceso, en minutos. Predeterminado: 60.
-
Refresh Token: Tiempo de vencimiento del token de actualización, en minutos. Predeterminado: 20160 (14 días).
-
Identity Token: Tiempo de vencimiento del token de identidad, en minutos. Predeterminado: 20.
-
Authorization Code: Tiempo de vencimiento del código de autorización, en minutos. Predeterminado: 5.
-
-
Generar un secreto de cliente
La aplicación cliente debe proporcionar sus propias credenciales cuando solicita un token de acceso. Las credenciales del cliente consisten en el ID del cliente y un secreto de cliente. Los secretos de cliente solo se pueden generar para clientes confidenciales. El panel Secrets estará oculto para clientes públicos.
Para generar un secreto de cliente:
- En el panel Secrets, haz clic en el botón +Secret.
-
Proporciona lo siguiente:
- Description: Descripción opcional del secreto de cliente.
- Expires On: Si el secreto debe expirar, establece la fecha y hora de vencimiento. De lo contrario, deja este campo en blanco.
-
Haz clic en el botón Save.
- Copia el Client ID y el Client Secret.
ADVERTENCIA: Esta es la única vez que el secreto será visible.
Registrar el 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 se redirige al endpoint de autorización. Una vez que el usuario se autentica, se redirige de vuelta a la aplicación cliente.
La URL de devolución de llamada de la aplicación cliente se conoce como el "URI de redirección". Cada URI de redirección debe registrarse. Los URI 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 usar el protocolo HTTPS. Sin embargo, la URL de redirección del cliente puede usar el protocolo HTTP cuando redirige 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 un URI de redirección del cliente:
- En el panel 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 OIDC u OAuth 2.0 compatible con estándares que admita los flujos de Código de Autorización o Credenciales del Cliente puede utilizar el servidor de autorización de App Builder. Esto incluye al 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/Vinyl. - Client ID y secreto (ver arriba)
Comienza por iniciar 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.
- Haz clic en el botón + Security Provider.
-
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 login.
- User Provisioning: Marca esta opción para habilitar el aprovisionamiento de usuarios.
- Name: Nombre del proveedor de seguridad, por ejemplo
-
Haz clic en el botón Save.
- En el panel 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 Credentials, haz clic en el botón +Credential.
-
Proporciona lo siguiente:
- Type: Client
- User Name: El Client ID (ver arriba).
- Password: El Client Secret (ver arriba).
-
Haz clic en el botón Save.
- En el panel Provider, haz clic en el botón Edit.
- Marca la opción Enabled.
- Haz clic en el botón Save.
Una vez completado, los usuarios podrán iniciar sesión en la instancia cliente de App Builder usando 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 OIDC Implicit o Hybrid