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
- Vaya a la interfaz de usuario de Apigee e inicie sesión.
- Seleccione su organización utilizando el menú desplegable en la esquina superior izquierda de la interfaz de usuario.
Haga clic en Desarrollar > Proxies de API para mostrar la lista de proxies de API.
- Haga clic en Crear nuevo .
- En el asistente Crear un proxy, seleccione Proxy inverso (más común) .
- 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!
. - Haga clic en Siguiente .
- 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.
- Haga clic en Siguiente .
- En la página Resumen, asegúrese de que esté seleccionado un entorno de implementación y haga clic en Crear e implementar .
- Haga clic en Editar proxy para mostrar la página Descripción general del proxy API.
Ver las políticas
- 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.
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 llamadoapikey
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.
É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!
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:
- Seleccione Publicar > Productos API .
- Haga clic en +Crear .
- 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
oprod
.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. - En la sección Operaciones , haga clic en AGREGAR UNA OPERACIÓN .
- En el campo Proxy API, seleccione el proxy API que acaba de crear.
- En el campo Ruta, introduzca "/". Ignore los demás campos.
- Haga clic en Guardar para guardar la operación.
- 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:
- 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 - Haga clic en + Desarrollador .
- 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]
- Haga clic en Crear .
Registrar una aplicación
Para registrar una aplicación de desarrollador:
- Seleccione Publicar > Aplicaciones .
- Haga clic en + Aplicación .
- 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 - En la sección Credenciales, selecciona Nunca . Las credenciales de esta aplicación no caducarán nunca.
- Haga clic en Agregar producto .
- Seleccione el producto que acaba de crear.
- Haga clic en Crear .
Obtener la clave API
Para obtener la clave API:
- En la página Aplicaciones (Publicar > Aplicaciones), haga clic en keyser_app .
- 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ó.
- 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
.
- Edite el proxy de API. Seleccione Desarrollo > Proxies de API > helloworld_apikey y vaya a la vista Desarrollo .
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 elqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Guarde el proxy de API y utilice Implementar para implementarlo.
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:
- Gestión de productos API
- Claves API
- Registro de desarrolladores de aplicaciones
- Registrar aplicaciones y administrar claves API
- Verificar la política de 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
- Vaya a la interfaz de usuario de Apigee e inicie sesión.
- Seleccione su organización utilizando el menú desplegable en la esquina superior izquierda de la interfaz de usuario.
Haga clic en Desarrollar > Proxies de API para mostrar la lista de proxies de API.
- Haga clic en Crear nuevo .
- En el asistente Crear un proxy, seleccione Proxy inverso (más común) .
- 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!
. - Haga clic en Siguiente .
- 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.
- Haga clic en Siguiente .
- En la página Resumen, asegúrese de que esté seleccionado un entorno de implementación y haga clic en Crear e implementar .
- Haga clic en Editar proxy para mostrar la página Descripción general del proxy API.
Ver las políticas
- 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.
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 llamadoapikey
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.
É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!
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:
- Seleccione Publicar > Productos API .
- Haga clic en +Crear .
- 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
oprod
.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. - En la sección Operaciones , haga clic en AGREGAR UNA OPERACIÓN .
- En el campo Proxy API, seleccione el proxy API que acaba de crear.
- En el campo Ruta, introduzca "/". Ignore los demás campos.
- Haga clic en Guardar para guardar la operación.
- 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:
- 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 - Haga clic en + Desarrollador .
- 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]
- Haga clic en Crear .
Registrar una aplicación
Para registrar una aplicación de desarrollador:
- Seleccione Publicar > Aplicaciones .
- Haga clic en + Aplicación .
- 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 - En la sección Credenciales, selecciona Nunca . Las credenciales de esta aplicación no caducarán nunca.
- Haga clic en Agregar producto .
- Seleccione el producto que acaba de crear.
- Haga clic en Crear .
Obtener la clave API
Para obtener la clave API:
- En la página Aplicaciones (Publicar > Aplicaciones), haga clic en keyser_app .
- 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ó.
- 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
.
- Edite el proxy de API. Seleccione Desarrollo > Proxies de API > helloworld_apikey y vaya a la vista Desarrollo .
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 elqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Guarde el proxy de API y utilice Implementar para implementarlo.
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:
- Gestión de productos API
- Claves API
- Registro de desarrolladores de aplicaciones
- Registrar aplicaciones y administrar claves API
- Verificar la política de 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 .