Saltar al contenido

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.
email 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 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:

  1. Habilitar el servidor de autorización.
  2. Registrar una aplicación cliente.
  3. 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:

  1. Haz clic en el enlace IDE.
  2. Haz clic en el botón Security Providers.
  3. En el panel Security Providers, ubica el proveedor de seguridad Authorization Server y haz clic en el icono Details (Chevron).
  4. Haz clic en el botón Edit.
  5. Marca la opción Enabled.
  6. 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:

  1. Haz clic en el enlace IDE.
  2. Haz clic en el botón User Management.
  3. Haz clic en el botón Clients.
  4. Haz clic en el botón +Client para registrar una nueva aplicación cliente.
  5. 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.
  6. Haz clic en el botón Save.

  7. (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:

  1. En el panel Secrets, haz clic en el botón +Secret.
  2. 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.
  3. Haz clic en el botón Save.

  4. 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:

  1. En el panel Redirects, haz clic en el botón +URL.
  2. Proporciona la URL.
  3. 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:

  1. Haz clic en el enlace IDE.
  2. Haz clic en el botón Security Providers.
  3. Haz clic en el botón + Security Provider.
  4. 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.
  5. Haz clic en el botón Save.

  6. En el panel Endpoints, haz clic en el botón +Endpoint.
  7. Proporciona lo siguiente:

    • Endpoint Type: OpenID Connect Issuer
    • URL: La URL raíz del servidor de autorización de App Builder.
  8. Haz clic en el botón Save.

  9. En el panel Credentials, haz clic en el botón +Credential.
  10. Proporciona lo siguiente:

    • Type: Client
    • User Name: El Client ID (ver arriba).
    • Password: El Client Secret (ver arriba).
  11. Haz clic en el botón Save.

  12. En el panel Provider, haz clic en el botón Edit.
  13. Marca la opción Enabled.
  14. 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