Saltar al contenido

Autenticación del Cliente

App Builder puede funcionar 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, para autenticar a los usuarios. El proceso de inicio de sesión de OIDC produce un token de acceso que permite que la aplicación cliente acceda a recursos protegidos en nombre del usuario. Los recursos protegidos incluyen App Builder aPIs REST y Webhook alojadas, así como App Builder fuentes de datos del conector.

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 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 este motivo, los flujos también se conocen como 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é se incluye en esos tokens (reclamos) y a qué APIs se puede acceder con esos tokens.
  • Reclamaciones - Como lo describe 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 Admitidos

El App Builder el servidor de autorización admite los siguientes flujos básicos 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 le permite 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 del cliente. El flujo de credenciales del cliente permite que la aplicación cliente adquiera un token de acceso en su nombre. Este es un flujo de servidor a servidor, que normalmente funciona 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 del cliente. El ámbito offline_access habilita el flujo de token de actualización (consulte a continuación).

Como se indicó anteriormente, OIDC se basa en el marco de autorización de OAuth 2.0. OIDC aprovecha los flujos de OAuth 2.0 y utiliza el parámetro scope para optar por la funcionalidad específica de OIDC. App Builder el servidor de autorización admite los siguientes flujos OIDC:

  • Código de autorización. Cuando se especifica el ámbito openid, el flujo del código de autorización permite al cliente autenticar a un usuario devolviendo un token de identidad adicional. Los ámbitos adicionales determinan qué reclamaciones se incluyen en el token.
  • Token de actualización. El flujo de token de actualización funciona de la misma manera en OIDC que en OAuth 2.0.

El servidor de autorización no admite los flujos implícitos o híbridos de OIDC. 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 App Builder el servidor de autorización publica los siguientes extremos:

Extremo Estándar Descripción
/conectar/autorizar RFC-6749 Emite un código de autorización.
/conectar/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 Admitidos

El App Builder el servidor de autorización admite los siguientes ámbitos:

Ámbito Descripción
openid Emite un token de identidad OIDC.
perfil Incluye declaraciones de perfil de usuario en el token de identidad.
correo Incluye reclamos de direcciones de correo en el token de identidad.
teléfono Incluye declaraciones de números 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 App Builder-REST alojado, Webhook y App Builder aPIs de conector.

Afirmaciones Respaldadas

Como se indicó anteriormente, el token de identidad es un token JWT basado en reclamos. El cliente puede determinar qué reclamos se incluyen en el token de identidad especificando los alcances.

Alcance Reclamos
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 obtener 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 esté explícitamente enumerada anteriormente no tiene respaldo.

Configuración

Para utilizar el servidor de autorización, el App Builder el administrador 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, comience iniciando sesión en App Builder como administrador:

  1. Haga clic en el enlace IDE.
  2. Haga clic en el botón Proveedores de seguridad.
  3. 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).
  4. Haga clic en el botón Editar.
  5. Marque la opción Habilitado.
  6. 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 registrar una aplicación cliente, comience iniciando sesión en App Builder como administrador, siga estos pasos:

  1. Haga clic en el enlace IDE.
  2. Haga clic en el botón Administración de usuarios.
  3. Haga clic en el botón Clientes.
  4. Haga clic en el botón +Cliente para registrar una nueva aplicación cliente.
  5. 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, déjelo en blanco.
    • Proveedor de autenticación: Seleccione un proveedor o déjelo en blanco.
    • Habilitado: Habilita o deshabilita la aplicación cliente.
  6. Haga clic en el botón Guardar.

  7. (Opcional) Haga clic en Más, entonces Avanzado. Se abre el cuadro de diálogo Configuración avanzada. Contiene dos pestañas:

    • Propiedades: Establezca las siguientes configuraciones, según sea necesario:

      • Requiere PKCE: Cuando se selecciona, el cliente debe usar la extensión PKCE. Esto solo se aplica al flujo de código de autorización y es obligatorio para los clientes públicos.

      • Público: Cuando se selecciona, el cliente es público y los secretos no se pueden almacenar de forma segura. Cuando no se selecciona, el cliente es confidencial y puede almacenar secretos de forma segura.

    • Duración de los tokens: 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 Secretos estará oculto para los clientes públicos.

Para generar un secreto del cliente:

  1. En el panel Secretos, haga clic en el botón +Secreto.
  2. Proporcione lo siguiente:

    • Descripción: Descripción opcional del secreto del cliente.
    • Caducidad el: Si el secreto debe caducar, establezca la fecha y hora de caducidad. De lo contrario, deje este campo en blanco.
  3. Haga clic en el botón Guardar.

  4. Copie el ID del cliente y el Secreto del cliente.

ADVERTENCIA: Esta es la única hora en la que el secreto será visible.

Registrar la URL de Redireccionamiento del Cliente

Como se indicó anteriormente, el flujo del código de autorización es un flujo interactivo. Durante este flujo, se redirige al usuario al extremo de autorización. Una vez que el usuario se ha autenticado, se lo redirige nuevamente 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 con las siguientes restricciones:

  • La URL de redireccionamiento del cliente debe ser una URL absoluta.
  • La URL de redireccionamiento del cliente debe utilizar el protocolo HTTPS. Sin embargo, la URL de redireccionamiento del cliente puede utilizar el protocolo HTTP cuando se redirecciona 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 redireccionamiento de cliente:

  1. En el panel Redirecciones, haga clic en el botón + URL.
  2. Proporcione la URL.
  3. 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 que admita los flujos de Código de autorización o Credenciales de cliente puede utilizar el App Builder servidor de autorización. Esto incluye App Builder en sí: es posible configurar una segunda instancia de App Builder como cliente.

Para configurar el App Builder cliente, necesitarás:

  • App Builder uRL raíz del servidor de autorización, por ejemplo https://example.com/App Builder.
  • ID de cliente y secreto (ver arriba)

Comience iniciando sesión en la instancia de cliente de App Builder como administrador:

  1. Haga clic en el enlace IDE.
  2. Haga clic en el botón Proveedores de seguridad.
  3. En el panel Autenticación de usuario, haga clic en el botón +Autenticación de usuario.
  4. Proporcione lo siguiente:

    • Nombre: Nombre del proveedor de seguridad, por ejemplo 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.
  5. Haga clic en el botón Guardar.

  6. En el panel Extremos, haga clic en el botón + Extremo.
  7. Proporcione lo siguiente:

    • Tipo de Extremo: Emisor de OpenID Connect
    • URL. La App Builder uRL raíz del servidor de autorización.
  8. Haga clic en el botón Guardar.

  9. En el panel Credenciales, haga clic en el botón +Credencial.
  10. Proporcione lo siguiente:

    • Tipo: Cliente
    • Nombre de usuario: El ID del cliente (ver arriba).
    • Contraseña: El secreto del cliente (ver arriba).
  11. Haga clic en el botón Guardar.

  12. En el panel Proveedor, haga clic en el botón Editar.
  13. Marque la opción Habilitado.
  14. Haga clic en el botón Guardar.

Una vez completado, los usuarios podrán iniciar sesión en el cliente. App Builder instancia utilizando el App Builder servidor de autorización.

Limitaciones Conocidas

El App Builder el servidor de autorización no admite lo siguiente:

  • Consentimiento del usuario.
  • Flujos implícitos o híbridos de OIDC