Asegure una API solicitando claves API. Asegure una API solicitando claves API.

Esta página se aplica a Apigee y Apigee híbrido .

Ver la documentación de Apigee Edge .

Vídeo: mira este breve vídeo para obtener una introducción sobre cómo proteger tu API.

Lo que aprenderás

Este tutorial explica cómo:

  • Cree un proxy API que requiera una clave API.
  • Cree un producto API, un desarrollador y una aplicación para desarrolladores.
  • Llame a su API con una clave API.

Es importante proteger tu API del acceso no autorizado. Una forma de hacerlo es mediante claves de API.

Cuando una aplicación realiza una solicitud a un proxy de API configurado para verificar una clave de API, debe proporcionar una clave válida. En tiempo de ejecución, la política Verificar clave de API comprueba que la clave de API proporcionada:

  • Es válido
  • No ha sido revocado
  • Coincide con la clave API del producto API que expone los recursos solicitados

Si la clave es válida, se permite la solicitud. Si no es válida, se produce un error de autorización.

Crear el proxy API

  1. Vaya a la interfaz de usuario de Apigee e inicie sesión.
  2. Seleccione su organización utilizando el menú desplegable en la esquina superior izquierda de la interfaz de usuario.
  3. Haga clic en Desarrollar > Proxies de API para mostrar la lista de proxies de API.

  4. Haga clic en Crear nuevo .
    Botón para crear proxy
  5. En el asistente Crear un proxy, seleccione Proxy inverso (más común) .
  6. Configure el proxy de la siguiente manera:
    En este campo Haz esto
    Nombre del proxy Ingresar: helloworld_apikey
    Ruta base del proyecto

    Cambiar a: /helloapikey

    La ruta base del proyecto es parte de la URL utilizada para realizar solicitudes al proxy API.

    Descripción Ingresar: hello world protected by API key
    Objetivo (API existente)

    Ingresar: http://mocktarget.apigee.net

    Esto define la URL de destino que Apigee invoca en una solicitud al proxy de la API. Este destino simplemente devuelve una respuesta simple: Hello, Guest! .

  7. Haga clic en Siguiente .
  8. En la página Políticas comunes , seleccione Clave API . Esta opción añade automáticamente dos políticas a su proxy API y crea un producto API necesario para generar la clave API.
  9. Haga clic en Siguiente .
  10. En la página Resumen, asegúrese de que esté seleccionado un entorno de implementación y haga clic en Crear e implementar .
  11. Haga clic en Editar proxy para mostrar la página Descripción general del proxy API.

Ver las políticas

  1. En el editor de proxy de API, haz clic en la pestaña "Desarrollar ". Verás que se han añadido dos políticas al flujo de solicitud del proxy de API:
    • Verificar clave API : verifica la llamada API para asegurarse de que haya una clave API válida (enviada como parámetro de consulta).
    • Eliminar parámetro de consulta apikey : una política de asignación de mensajes que elimina la clave API después de verificarla, de modo que no se transmita ni se exponga innecesariamente.
  2. Haga clic en el icono de la política "Verificar clave de API" en la vista de flujo y revise la configuración XML de la política en la vista de código inferior. El elemento <APIKey> indica a la política dónde debe buscar la clave de API al realizar la llamada. De forma predeterminada, busca la clave como un parámetro de consulta llamado apikey en la solicitud HTTP:

    <APIKey ref="request.queryparam.apikey" />

    El nombre apikey es arbitrario y puede ser cualquier propiedad que contenga la clave API.

Intente llamar a la API

En este paso, realizará una llamada API exitosa directamente al servicio de destino y luego realizará una llamada fallida al proxy API para ver cómo está protegido por las políticas.

  1. Éxito

    En un navegador web, acceda a la siguiente dirección. Este es el servicio de destino al que el proxy de API está configurado para reenviar la solicitud, pero por ahora lo accederá directamente:

    http://mocktarget.apigee.net

    Deberías obtener esta respuesta exitosa: Hello, Guest!

  2. Falla

    Ahora intenta llamar a tu proxy API:

    curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey

    Donde YOUR ENV_GROUP_HOSTNAME es el nombre de host del grupo de entornos. Consulte Encontrar el nombre de host del grupo de entornos .

    Sin la política Verificar clave de API, esta llamada generaría la misma respuesta que la anterior. Sin embargo, en este caso, debería obtener el siguiente error:

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

    lo que significa, correctamente, que no pasaste una clave API válida (como parámetro de consulta).

En los siguientes pasos, obtendrá la clave API requerida.

Agregar un producto API

Para agregar un producto API mediante la interfaz de usuario de Apigee:

  1. Seleccione Publicar > Productos API .
  2. Haga clic en +Crear .
  3. Ingrese los detalles del producto para su producto API.
    Campo Descripción
    Nombre Nombre interno del producto API. No utilice caracteres especiales en el nombre.
    Nota: No se puede editar el nombre una vez creado el producto API.
    Nombre para mostrar Nombre para mostrar del producto API. Este nombre se usa en la interfaz de usuario y puede editarse en cualquier momento. Si no se especifica, se usará el valor "Nombre". Este campo se completa automáticamente con el valor "Nombre"; puede editarlo o eliminarlo. El nombre para mostrar puede incluir caracteres especiales.
    Descripción Descripción del producto API.
    Ambiente Entornos a los que el producto API permitirá el acceso. Por ejemplo, test o prod .
    Acceso Seleccione Público .
    Aprobar automáticamente las solicitudes de acceso Habilite la aprobación automática de solicitudes de claves para este producto API desde cualquier aplicación.
    Cuota Ignorar este tutorial.
    Ámbitos OAuth permitidos Ignorar este tutorial.
  4. En la sección Operaciones , haga clic en AGREGAR UNA OPERACIÓN .
  5. En el campo Proxy API, seleccione el proxy API que acaba de crear.
  6. En el campo Ruta, introduzca "/". Ignore los demás campos.
  7. Haga clic en Guardar para guardar la operación.
  8. Haga clic en Guardar para guardar el producto API.

Agregue un desarrollador y una aplicación a su organización

A continuación, simularemos el flujo de trabajo de un desarrollador que se registra para usar sus API. Un desarrollador tendrá una o más aplicaciones que llaman a sus API, y cada aplicación recibe una clave API única. Esto le brinda a usted, el proveedor de API, un control más detallado sobre el acceso a sus API y la generación de informes más detallados sobre el tráfico de API por aplicación.

Crear un desarrollador

Para crear un desarrollador:

  1. Seleccione Publicar > Desarrolladores en el menú.
    Nota : Si todavía está en la pantalla Desarrollar, haga clic en "<" junto a DESARROLLAR para mostrar el menú y seleccione Publicar > Desarrolladores
  2. Haga clic en + Desarrollador .
  3. Ingrese lo siguiente en la ventana Nuevo desarrollador:
    En este campo ingresar
    Nombre de pila Keyser
    Apellido Soze
    Nombre de usuario keyser
    Correo electrónico [email protected]
  4. Haga clic en Crear .

Registrar una aplicación

Para registrar una aplicación de desarrollador:

  1. Seleccione Publicar > Aplicaciones .
  2. Haga clic en + Aplicación .
  3. Ingrese lo siguiente en la ventana Nueva aplicación para desarrolladores:
    En este campo Haz esto
    Nombre y nombre para mostrar Ingresar: keyser_app
    Revelador Seleccionar: Keyser Soze ([email protected])
    URL de devolución de llamada y notas Dejar en blanco
  4. En la sección Credenciales, selecciona Nunca . Las credenciales de esta aplicación no caducarán nunca.
  5. Haga clic en Agregar producto .
  6. Seleccione el producto que acaba de crear.
  7. Haga clic en Crear .

Obtener la clave API

Para obtener la clave API:

  1. En la página Aplicaciones (Publicar > Aplicaciones), haga clic en keyser_app .
  2. En la página keyser_app , haga clic en " Mostrar" junto a "Clave" en la sección "Credenciales" . Observe que la clave está asociada al producto que creó.
  3. Selecciona y copia la clave. La usarás en el siguiente paso.

Llamar a la API con una clave

Ahora que tiene una clave API, puede usarla para llamar al proxy de API. Pegue la clave API como parámetro de consulta, como se muestra. Asegúrese de que no haya espacios adicionales en el parámetro de consulta.

curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=your_api_key

Ahora, cuando llames al proxy API, deberías obtener esta respuesta: Hello, Guest!

¡Felicitaciones! Has creado un proxy de API y lo has protegido al requerir que se incluya una clave de API válida en la llamada.

Tenga en cuenta que, en general, no es recomendable pasar una clave API como parámetro de consulta. Debería considerar pasarla en el encabezado HTTP .

Práctica recomendada: pasar la clave en el encabezado HTTP

En este paso, modificará el proxy para buscar la clave API en un encabezado llamado x-apikey .

  1. Edite el proxy de API. Seleccione Desarrollo > Proxies de API > helloworld_apikey y vaya a la vista Desarrollo .
  2. Seleccione la política Verificar clave API y modifique el XML de la política para indicarle que busque en el header en lugar de en el queryparam :

    <APIKey ref="request.header.x-apikey"/>
  3. Guarde el proxy de API y utilice Implementar para implementarlo.
  4. Realice la siguiente llamada a la API usando cURL para pasar la clave de API como un encabezado llamado x-apikey . No olvide sustituir el nombre de su organización.

    curl -v -H "x-apikey: {api_key_goes_here}" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey

Tenga en cuenta que para completar el cambio, también deberá configurar la política "Asignar mensaje" para eliminar el encabezado en lugar del parámetro de consulta. Por ejemplo:

<Remove>
  <Headers>
      <Header name="x-apikey"/>
  </Headers>
</Remove>

Temas relacionados

A continuación se presentan algunos temas relacionados con productos y claves API:

La protección de API suele implicar seguridad adicional, como OAuth , un protocolo abierto que intercambia credenciales (como nombre de usuario y contraseña) por tokens de acceso. Los tokens de acceso son cadenas largas y aleatorias que pueden transmitirse a través de un flujo de mensajes, incluso entre aplicaciones, sin comprometer las credenciales originales.

Para obtener una descripción general de los temas relacionados con la seguridad, consulte Cómo proteger un proxy .

,

Esta página se aplica a Apigee y Apigee híbrido .

Ver la documentación de Apigee Edge .

Vídeo: mira este breve vídeo para obtener una introducción sobre cómo proteger tu API.

Lo que aprenderás

Este tutorial explica cómo:

  • Cree un proxy API que requiera una clave API.
  • Cree un producto API, un desarrollador y una aplicación para desarrolladores.
  • Llame a su API con una clave API.

Es importante proteger tu API del acceso no autorizado. Una forma de hacerlo es mediante claves de API.

Cuando una aplicación realiza una solicitud a un proxy de API configurado para verificar una clave de API, debe proporcionar una clave válida. En tiempo de ejecución, la política Verificar clave de API comprueba que la clave de API proporcionada:

  • Es válido
  • No ha sido revocado
  • Coincide con la clave API del producto API que expone los recursos solicitados

Si la clave es válida, se permite la solicitud. Si no es válida, se produce un error de autorización.

Crear el proxy API

  1. Vaya a la interfaz de usuario de Apigee e inicie sesión.
  2. Seleccione su organización utilizando el menú desplegable en la esquina superior izquierda de la interfaz de usuario.
  3. Haga clic en Desarrollar > Proxies de API para mostrar la lista de proxies de API.

  4. Haga clic en Crear nuevo .
    Botón para crear proxy
  5. En el asistente Crear un proxy, seleccione Proxy inverso (más común) .
  6. Configure el proxy de la siguiente manera:
    En este campo Haz esto
    Nombre del proxy Ingresar: helloworld_apikey
    Ruta base del proyecto

    Cambiar a: /helloapikey

    La ruta base del proyecto es parte de la URL utilizada para realizar solicitudes al proxy API.

    Descripción Ingresar: hello world protected by API key
    Objetivo (API existente)

    Ingresar: http://mocktarget.apigee.net

    Esto define la URL de destino que Apigee invoca en una solicitud al proxy de la API. Este destino simplemente devuelve una respuesta simple: Hello, Guest! .

  7. Haga clic en Siguiente .
  8. En la página Políticas comunes , seleccione Clave API . Esta opción añade automáticamente dos políticas a su proxy API y crea un producto API necesario para generar la clave API.
  9. Haga clic en Siguiente .
  10. En la página Resumen, asegúrese de que esté seleccionado un entorno de implementación y haga clic en Crear e implementar .
  11. Haga clic en Editar proxy para mostrar la página Descripción general del proxy API.

Ver las políticas

  1. En el editor de proxy de API, haz clic en la pestaña "Desarrollar ". Verás que se han añadido dos políticas al flujo de solicitud del proxy de API:
    • Verificar clave API : verifica la llamada API para asegurarse de que haya una clave API válida (enviada como parámetro de consulta).
    • Eliminar parámetro de consulta apikey : una política de asignación de mensajes que elimina la clave API después de verificarla, de modo que no se transmita ni se exponga innecesariamente.
  2. Haga clic en el icono de la política "Verificar clave de API" en la vista de flujo y revise la configuración XML de la política en la vista de código inferior. El elemento <APIKey> indica a la política dónde debe buscar la clave de API al realizar la llamada. De forma predeterminada, busca la clave como un parámetro de consulta llamado apikey en la solicitud HTTP:

    <APIKey ref="request.queryparam.apikey" />

    El nombre apikey es arbitrario y puede ser cualquier propiedad que contenga la clave API.

Intente llamar a la API

En este paso, realizará una llamada API exitosa directamente al servicio de destino y luego realizará una llamada fallida al proxy API para ver cómo está protegido por las políticas.

  1. Éxito

    En un navegador web, acceda a la siguiente dirección. Este es el servicio de destino al que el proxy de API está configurado para reenviar la solicitud, pero por ahora lo accederá directamente:

    http://mocktarget.apigee.net

    Deberías obtener esta respuesta exitosa: Hello, Guest!

  2. Falla

    Ahora intenta llamar a tu proxy API:

    curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey

    Donde YOUR ENV_GROUP_HOSTNAME es el nombre de host del grupo de entornos. Consulte Encontrar el nombre de host del grupo de entornos .

    Sin la política Verificar clave de API, esta llamada generaría la misma respuesta que la anterior. Sin embargo, en este caso, debería obtener el siguiente error:

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

    lo que significa, correctamente, que no pasaste una clave API válida (como parámetro de consulta).

En los siguientes pasos, obtendrá la clave API requerida.

Agregar un producto API

Para agregar un producto API mediante la interfaz de usuario de Apigee:

  1. Seleccione Publicar > Productos API .
  2. Haga clic en +Crear .
  3. Ingrese los detalles del producto para su producto API.
    Campo Descripción
    Nombre Nombre interno del producto API. No utilice caracteres especiales en el nombre.
    Nota: No se puede editar el nombre una vez creado el producto API.
    Nombre para mostrar Nombre para mostrar del producto API. Este nombre se usa en la interfaz de usuario y puede editarse en cualquier momento. Si no se especifica, se usará el valor "Nombre". Este campo se completa automáticamente con el valor "Nombre"; puede editarlo o eliminarlo. El nombre para mostrar puede incluir caracteres especiales.
    Descripción Descripción del producto API.
    Ambiente Entornos a los que el producto API permitirá el acceso. Por ejemplo, test o prod .
    Acceso Seleccione Público .
    Aprobar automáticamente las solicitudes de acceso Habilite la aprobación automática de solicitudes de claves para este producto API desde cualquier aplicación.
    Cuota Ignorar este tutorial.
    Ámbitos OAuth permitidos Ignorar este tutorial.
  4. En la sección Operaciones , haga clic en AGREGAR UNA OPERACIÓN .
  5. En el campo Proxy API, seleccione el proxy API que acaba de crear.
  6. En el campo Ruta, introduzca "/". Ignore los demás campos.
  7. Haga clic en Guardar para guardar la operación.
  8. Haga clic en Guardar para guardar el producto API.

Agregue un desarrollador y una aplicación a su organización

A continuación, simularemos el flujo de trabajo de un desarrollador que se registra para usar sus API. Un desarrollador tendrá una o más aplicaciones que llaman a sus API, y cada aplicación recibe una clave API única. Esto le brinda a usted, el proveedor de API, un control más detallado sobre el acceso a sus API y la generación de informes más detallados sobre el tráfico de API por aplicación.

Crear un desarrollador

Para crear un desarrollador:

  1. Seleccione Publicar > Desarrolladores en el menú.
    Nota : Si todavía está en la pantalla Desarrollar, haga clic en "<" junto a DESARROLLAR para mostrar el menú y seleccione Publicar > Desarrolladores
  2. Haga clic en + Desarrollador .
  3. Ingrese lo siguiente en la ventana Nuevo desarrollador:
    En este campo ingresar
    Nombre de pila Keyser
    Apellido Soze
    Nombre de usuario keyser
    Correo electrónico [email protected]
  4. Haga clic en Crear .

Registrar una aplicación

Para registrar una aplicación de desarrollador:

  1. Seleccione Publicar > Aplicaciones .
  2. Haga clic en + Aplicación .
  3. Ingrese lo siguiente en la ventana Nueva aplicación para desarrolladores:
    En este campo Haz esto
    Nombre y nombre para mostrar Ingresar: keyser_app
    Revelador Seleccionar: Keyser Soze ([email protected])
    URL de devolución de llamada y notas Dejar en blanco
  4. En la sección Credenciales, selecciona Nunca . Las credenciales de esta aplicación no caducarán nunca.
  5. Haga clic en Agregar producto .
  6. Seleccione el producto que acaba de crear.
  7. Haga clic en Crear .

Obtener la clave API

Para obtener la clave API:

  1. En la página Aplicaciones (Publicar > Aplicaciones), haga clic en keyser_app .
  2. En la página keyser_app , haga clic en " Mostrar" junto a "Clave" en la sección "Credenciales" . Observe que la clave está asociada al producto que creó.
  3. Selecciona y copia la clave. La usarás en el siguiente paso.

Llamar a la API con una clave

Ahora que tiene una clave API, puede usarla para llamar al proxy de API. Pegue la clave API como parámetro de consulta, como se muestra. Asegúrese de que no haya espacios adicionales en el parámetro de consulta.

curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=your_api_key

Ahora, cuando llames al proxy API, deberías obtener esta respuesta: Hello, Guest!

¡Felicitaciones! Has creado un proxy de API y lo has protegido al requerir que se incluya una clave de API válida en la llamada.

Tenga en cuenta que, en general, no es recomendable pasar una clave API como parámetro de consulta. Debería considerar pasarla en el encabezado HTTP .

Práctica recomendada: pasar la clave en el encabezado HTTP

En este paso, modificará el proxy para buscar la clave API en un encabezado llamado x-apikey .

  1. Edite el proxy de API. Seleccione Desarrollo > Proxies de API > helloworld_apikey y vaya a la vista Desarrollo .
  2. Seleccione la política Verificar clave API y modifique el XML de la política para indicarle que busque en el header en lugar de en el queryparam :

    <APIKey ref="request.header.x-apikey"/>
  3. Guarde el proxy de API y utilice Implementar para implementarlo.
  4. Realice la siguiente llamada a la API usando cURL para pasar la clave de API como un encabezado llamado x-apikey . No olvide sustituir el nombre de su organización.

    curl -v -H "x-apikey: {api_key_goes_here}" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey

Tenga en cuenta que para completar el cambio, también deberá configurar la política "Asignar mensaje" para eliminar el encabezado en lugar del parámetro de consulta. Por ejemplo:

<Remove>
  <Headers>
      <Header name="x-apikey"/>
  </Headers>
</Remove>

Temas relacionados

A continuación se presentan algunos temas relacionados con productos y claves API:

La protección de API suele implicar seguridad adicional, como OAuth , un protocolo abierto que intercambia credenciales (como nombre de usuario y contraseña) por tokens de acceso. Los tokens de acceso son cadenas largas y aleatorias que pueden transmitirse a través de un flujo de mensajes, incluso entre aplicaciones, sin comprometer las credenciales originales.

Para obtener una descripción general de los temas relacionados con la seguridad, consulte Cómo proteger un proxy .