Saltar al contenido

Proveedor de seguridad de clave API en Jitterbit App Builder

El proveedor de seguridad de clave API permite a los administradores asegurar las API REST de App Builder utilizando un código de clave API generado por App Builder. El consumidor pasa la clave API a App Builder al realizar solicitudes de API REST. Dado que cada clave API está asociada con un usuario individual, esto proporciona tanto autenticación como autorización.

Definición y casos de uso

Las claves API de App Builder consisten en un número aleatorio criptográficamente de 128 bits. Las claves están codificadas en base64url. A continuación se muestra un ejemplo de una clave API:

DLOo9sPS5slJEMHpXBFt3g

Las claves API tienen las siguientes ventajas sobre la autenticación estándar de nombre de usuario/contraseña:

  • Tienen mayor entropía que las combinaciones de nombre de usuario y contraseña.
  • Pueden sobrevivir a un restablecimiento de contraseña.
  • Pueden ser revocadas fácilmente.
  • Pueden ser rotadas.
  • Son más rápidas. Las contraseñas deben ser hasheadas, lo cual es deliberadamente lento.

Las desventajas, o debilidades, de las claves API incluyen la gestión de su distribución y el riesgo de filtraciones. Algunos de los casos de uso donde las claves API pueden ser el método de autenticación más adecuado incluyen:

  • Cuentas a nivel de servicio
  • Comunicación de aplicación a aplicación
  • Comunicación de servidor a servidor
  • Acceso solo de lectura
  • Información no sensible

Agregar una clave API

Para agregar una nueva clave API, ve a IDE > Proveedores de Seguridad.

Se mostrará la página de Seguridad, donde la tabla de Autenticación de Usuario mostrará todos los métodos de autenticación de usuario actuales. Si no hay claves API o si deseas crear una nueva, haz clic en el botón + Autenticación de Usuario. Aparecerá el cuadro de diálogo Proveedor, que contiene los siguientes campos:

provider dialog

  1. En la sección de Configuración:

    1. Nombre: Ingresa un nombre para identificar tu clave API.

    2. Tipo: En el menú desplegable, selecciona Clave API como el tipo de proveedor de seguridad que estás creando. Al hacer esto, se alterarán los demás campos que se muestran en el cuadro de diálogo.

    3. Prioridad: Ingresa un número para establecer el orden en el que los proveedores de seguridad aparecen en el formulario de inicio de sesión.

    4. Habilitado: Haz clic en esta casilla para activar tu clave API.

    5. Identificador: Este campo es generado automáticamente por App Builder.

  2. En la sección Claves:

    1. Expiración Predeterminada: Ingresa cuántos minutos será la duración predeterminada de nuevas claves. (Alterar este campo no afecta a las claves existentes.)

    2. Expiración Máxima: Ingresa cuántos minutos será la duración máxima de nuevas claves. (Alterar este campo no afecta a las claves existentes.)

    3. Longitud: Ingresa la longitud (en bytes) de nuevas claves. (Alterar este campo no afecta a las claves existentes.)

Cuando termines, haz clic en Guardar. Si deseas salir sin guardar, haz clic en Cancelar. Después de guardar una nueva clave API, serás llevado de regreso a la página Seguridad, donde la tabla de Autenticación de Usuarios mostrará la nueva clave API que acabas de crear. Al hacer clic en el ícono al final de su fila, puedes continuar configurándola.

Configurar una clave API

Para configurar una clave API, ve a IDE > Proveedores de Seguridad. Localiza la clave API que deseas editar en la tabla de Autenticación de Usuarios y haz clic en el ícono al final de su fila. Se mostrará la página Proveedor, donde puedes agregar configuraciones adicionales. El panel Proveedor a la izquierda muestra los mismos ajustes y claves que se muestran cuando creas una nueva clave. El panel Propiedades a la derecha te permite configurar algunos parámetros adicionales, descritos a continuación.

Para agregar una nueva propiedad, haz clic en el botón + Propiedad. Esto abrirá el cuadro de diálogo Propiedades, que contiene los campos Parámetro y Valor. Los siguientes parámetros están disponibles:

cuadro de diálogo de propiedades

Nota

Ninguno de estos parámetros es obligatorio. Solo debes agregarlos si hay necesidad de cambiar la forma en que se pasará tu clave API desde la configuración predeterminada. Consulta Pasar una clave API para aprender más.

  • AllowApiKeyInQueryString: Utiliza este parámetro para permitir que la clave de API se pase en la cadena de consulta en lugar de en el encabezado HTTP (consulta la sección Pass an API key). El valor predeterminado es False.

  • AllowInsecureHttp: Utiliza este parámetro para permitir que la clave de API se pase a través de una solicitud HTTP insegura en lugar de una solicitud HTTPS segura (consulta la sección Pass an API key). El valor predeterminado es False.

  • HttpHeaderName: Utiliza este parámetro para cambiar el nombre del encabezado HTTP que pasará la clave de API del predeterminado X-API-Key.

  • QueryStringParameterName: Cuando también hayas utilizado la opción AllowApiKeyInQueryString para pasar la clave de API a través de uno de los parámetros de la cadena de consulta, puedes usar esta opción para cambiar el nombre del parámetro del nombre predeterminado apiKey (consulta la sección Pass an API key).

Haz clic en Guardar y cierra el diálogo de Propiedades. El nuevo parámetro que has agregado se listará en la tabla de Propiedades.

Pass an API key

En la mayoría de los escenarios, Jitterbit recomienda que el cliente pase la clave de API a través de un encabezado personalizado en una conexión HTTPS segura para limitar el riesgo de exposición. El siguiente ejemplo ilustra esto:

GET /Vinyl/rest/v1/sales/customers HTTP/1.1
Host: example.com:443
Accept: application/json
X-API-Key: ABCd0eFG1hiJKLMnOPQr2s

Este es el comportamiento predeterminado, que App Builder adopta automáticamente. Si deseas o necesitas, puedes usar el parámetro HttpHeaderName al configurar tu clave de API para cambiar el nombre del encabezado HTTP que pasará la clave de API del predeterminado X-API-Key.

Los siguientes ejemplos son algunas excepciones a esta recomendación:

  1. En algunos escenarios, las conexiones HTTPS pueden ser terminadas prematuramente. Para solucionar este problema, puedes forzar a App Builder a aceptar claves de API enviadas a través de conexiones HTTP configurando el parámetro AllowInsecureHttp a True durante la configuración de la clave de API.

  2. En casos donde no tienes acceso a los encabezados de la solicitud HTTP, también es posible enviar la clave de API a través de los parámetros de la cadena de consulta. Para habilitar esta opción, configura AllowApiKeyInQueryString a True en las configuraciones de la clave de API. El siguiente ejemplo ilustra cómo se pasa la clave de API en este escenario:

GET /Vinyl/rest/v1/sales/customers?apiKey=ABCd0eFG1hiJKLMnOPQr2s HTTP/1.1
HOST: example.com:443
Accept: application/json

Tenga en cuenta que en el ejemplo anterior la clave se envió bajo el nombre apiKey. Puede cambiar esto yendo a la configuración de la clave API y agregando el parámetro QueryStringParameterName para elegir un nombre diferente.