Estás viendo la documentación de Apigee Edge.
Ir a la documentación de
Apigee X. info
Qué aprenderás
En este instructivo, aprenderás a realizar lo siguiente:
- Cómo crear un proxy de API que requiera una clave de API.
- Agrega un producto de API.
- Agrega un desarrollador y registra una app.
- Cómo llamar a tu API con una clave de API.
Es importante proteger tu API del acceso no autorizado. Una forma de hacerlo es con las claves de API (también llamadas claves públicas, claves de consumidor o claves de app).
Cuando una app realiza una solicitud a tu API, debe proporcionar una clave válida. En el entorno de ejecución, la política Verify API Key verifica que la clave de API proporcionada tenga las siguientes características:
- Es válida.
- No se revocó.
- Coincide con la clave de API del producto de API que expone los recursos solicitados.
Si la clave es válida, se permite la solicitud. Si la clave no es válida, la solicitud generará una falla en la autorización.
En este instructivo, crearás un proxy de API que requiere una clave de API válida para acceder a él.
Requisitos
- Una cuenta de Apigee Edge Si aún no tienes una, puedes registrarte con las instrucciones en Cómo crear una cuenta de Apigee Edge.
- Un navegador web para realizar una llamada a la API
- (Para la sección de créditos adicionales, no es obligatorio) cURL instalado en tu máquina para realizar llamadas a la API desde la línea de comandos.
Crea el proxy de API
- Ve a https://apigee.com/edge y accede.
Cambia a la organización que deseas. Para ello, haz clic en tu nombre de usuario en la parte superior de la barra de navegación lateral a fin de mostrar el menú de perfil del usuario y, luego, selecciona la organización en la lista.
-
Haz clic en Proxies de API en la página de destino para mostrar la lista de proxies de API.
- Haz clic en + Proxy.

- En la página Crear proxy, selecciona Proxy inverso (más común).
- En la página Detalles del proxy, configura el proxy de la siguiente manera:
En este campo haz lo siguiente Sigue estas recomendaciones Proxy name Ingresa: helloworld_apikeyRuta de acceso base del proyecto Cambia a:
/helloapikeyLa ruta de acceso base del proyecto es parte de la URL que se usa para realizar solicitudes al proxy de API.
Nota: Para obtener las recomendaciones de Apigee sobre el control de versiones de API, consulta Control de versiones en el libro electrónico Web API Design: The Missing Link.
Existing API Ingresa:
http://mocktarget.apigee.netEsto define la URL de destino que Apigee Edge invoca en una solicitud al proxy de API.
Descripción Ingresa: hello world protected by API key - Haz clic en Siguiente.
- En la página Políticas comunes, en Seguridad: autorización, selecciona Clave de API y, luego, haz clic en Siguiente. Esto agregará dos políticas a tu proxy de API.
- En la página Hosts virtuales, selecciona predeterminado y seguro, y, luego, haz clic en Siguiente. Si seleccionas default, podrás llamar a tu API con
http://. Si seleccionas secure, puedes llamar a tu API conhttps://. - En la página Resumen, asegúrate de que el entorno de implementación de prueba esté seleccionado y, luego, haz clic en Crear e implementar.
- Verás una confirmación de que tu nuevo proxy de API y un producto de API se crearon correctamente y que el proxy de API se implementó en tu entorno de prueba.
- Haz clic en Editar proxy para mostrar la página Resumen general del proxy de API.
Visualiza las políticas
- En el editor de proxy de API haga clic en la pestaña Desarrollar. Verás que se agregaron dos políticas al flujo de solicitudes del proxy de API:
- Verificar clave de API: Verifica la llamada a la API para garantizar que esté presente una clave de API válida (enviada como parámetro de consulta).
- Quitar la clave de API del parámetro de consulta: Una política de AssignMessage que quita la clave de API después de que se verifica, de modo que no se pase y exponga de forma innecesaria.
-
Haz clic en el ícono de la política de verificación de la clave de API en la vista de flujo y observa la configuración de 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 cuando se realiza la llamada. De forma predeterminada, busca la clave como un parámetro de búsqueda llamadoapikeyen la solicitud HTTP:<APIKey ref="request.queryparam.apikey" />
El nombre
apikeyes arbitrario y puede ser cualquier propiedad que contenga la clave de API.
Intenta llamar a la API
En este paso, realizarás una llamada a la API exitosa directamente al servicio de destino y, luego, realizarás una llamada no exitosa al proxy de API para ver cómo lo protegen las políticas.
-
Listo
En un navegador web, ve a la siguiente dirección. Este es el servicio de destino al que el proxy de API está configurado para reenviar la solicitud, pero deberás acceder a él directamente por el momento:
http://mocktarget.apigee.net
Deberías obtener la respuesta correcta:
Hello, Guest! -
Falla
Ahora, intenta llamar a tu proxy de API:
http://ORG_NAME-test.apigee.net/helloapikey
Reemplaza
ORG_NAMEpor el nombre de tu organización de Edge.Sin la política Verify API Key, esta llamada te daría la misma respuesta que la llamada anterior. Pero, en este caso, deberías obtener la siguiente respuesta de error:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
Esto significa que, de manera correcta, no mostró una clave de API válida (como parámetro de consulta).
En los próximos pasos, agregarás un producto de API.
Agrega un producto de API
Para agregar un producto de API mediante la IU de Apigee, sigue estos pasos:
- Selecciona Publicar > Productos de API.
- Haz clic en +API Product.
Ingresa los detalles del producto para el producto de API.
Campo Descripción Nombre Nombre interno del producto de API. No especifiques caracteres especiales en el nombre.
Nota: No puedes editar el nombre una vez que se crea el producto de API. Por ejemplo,helloworld_apikey-Product.Nombre visible Nombre visible del producto de API. El nombre visible se usa en la IU y se puede editar en cualquier momento. Si no se especifica, se usará el valor Nombre. Este campo se completa automáticamente con el valor Nombre. Puedes editar o borrar su contenido. El nombre visible puede incluir caracteres especiales. Por ejemplo: helloworld_apikey-Product.Descripción Descripción del producto de API. Por ejemplo, Test product for tutorial.Entorno Entornos a los que el producto de API permitirá el acceso Por ejemplo, testoprod.Acceso Selecciona Público. Aprueba de manera automática las solicitudes de acceso Habilita la aprobación automática de solicitudes de clave para este producto de API desde cualquier app. Cuota Ignora este instructivo. Permisos de OAuth permitidos Ignora este instructivo. - En la sección de recursos de API, selecciona el proxy de API que acabas de
crear. Por ejemplo,
helloworld_apikey. - Haz clic en Agregar.
- En la sección Rutas de acceso, agrega la ruta de acceso “/”.
- Haz clic en Agregar.
- Haz clic en Guardar.
En los próximos pasos, obtendrás la clave de API necesaria.
Agrega un desarrollador y una app a tu organización
A continuación, simularemos el flujo de trabajo de un desarrollador que se registra para usar tus APIs. Un desarrollador tendrá una o más apps que llamarán a tus APIs, y cada app obtendrá una clave de API única. Esto te permite, como proveedor de API, tener un control más detallado sobre el acceso a tus API y, así, obtener informes más detallados sobre el tráfico de API por app.
Cree un desarrollador
Para crear un desarrollador, haz lo siguiente:
- Selecciona Publicar > Desarrolladores en el menú.
- Haz clic en + Desarrollador.
En la ventana New Developer, ingrese lo siguiente:
En este campo haz lo siguiente intro Nombre KeyserApellido SozeNombre de usuario keyserCorreo electrónico keyser@example.com- Haz clic en Crear.
Registra una aplicación
Para registrar una app de desarrollador, sigue estos pasos:
- Selecciona Publicar > Apps.
- Haga clic en + Aplicación.
En la ventana New App, ingresa lo siguiente:
pEn este campo haz lo siguiente Sigue estas recomendaciones Nombre y Nombre visible Ingresa: keyser_appEmpresa / Desarrollador Selecciona: DeveloperDesarrollador Selecciona: Keyser Soze (keyser@example.com)URL de devolución de llamada y Notas Deja esta opción en blanco - En la sección Credenciales, selecciona Nunca en el menú Vencimiento. Las credenciales para esta app no expirarán nunca.
- En Productos, haz clic en Agregar producto.
- Selecciona helloworld_apikey-Product.
- Haz clic en Agregar.
- Haz clic en Crear arriba y a la derecha de la sección Detalles de la app para guardar tu trabajo.
Obtenga la clave de API
Para obtener la clave de API, sigue estos pasos:
- En la página Apps (Publicar > Apps), haz clic en keyser_app.
En la página keyser_app, haz clic en Mostrar junto a Clave en la sección Credenciales. En la sección Producto, observa que la clave está asociada a helloworld_apikey.
.
- Selecciona y copia la clave. La necesitarás en el próximo paso.
Llama a la API con una clave
Ahora que tienes una clave de API, puede usarla para llamar al proxy de API. Ingresa lo siguiente en tu navegador web. Sustituye el nombre de tu organización de Edge por ORG_NAME y la clave de API por API_KEY a continuación. Asegúrate de que no haya espacios adicionales en el parámetro de búsqueda.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
Ahora, cuando llames al proxy de API, deberías obtener la siguiente respuesta:
Hello, Guest!
¡Felicitaciones! Creaste un proxy de API y lo protegiste solicitando que se incluya una clave de API válida en la llamada.
Ten en cuenta que, en general, no se recomienda pasar una clave de API como parámetro de búsqueda. Deberías considerar pasarlo en el encabezado HTTP en su lugar.
Práctica recomendada: Pasa la clave en el encabezado HTTP
En este paso, modificarás el proxy para buscar la clave de API en un encabezado llamado x-apikey.
- Edita el proxy de API. Selecciona Desarrollar > Proxies de API > helloworld_apikey y ve a la vista Desarrollar.
-
Selecciona la política Verify API Key y modifica el XML de la política para que le indique que busque en
headeren lugar dequeryparam:<APIKey ref="request.header.x-apikey"/>
- Guarda el proxy de API para implementar el cambio.
-
Realiza la siguiente llamada a la API con cURL para pasar la clave de API como un encabezado llamado
x-apikey. No olvides sustituir el nombre de tu organización.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
Ten en cuenta que, para completar por completo el cambio, también deberás configurar la política AssignMessage para quitar el encabezado, en lugar del parámetro de búsqueda. Por ejemplo:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
Temas relacionados
Aquí hay algunos temas que se relacionan directamente con este instructivo:
- Administra productos de API
- Claves de API
- Registra a los desarrolladores de apps
- Registra apps y administra claves de API
- Política VerifyAPIKey
- Política AssignMessage
Profundizar un poco más y proteger las API con claves de API es solo una parte de la historia. A menudo, la protección de API implica una seguridad adicional, como OAuth.
OAuth es un protocolo abierto que, en pocas palabras, intercambia credenciales (como nombre de usuario y contraseña) por tokens de acceso. Los tokens de acceso son cadenas aleatorias largas que se pueden pasar por una canalización de mensajes, incluso de una app a otra, sin comprometer las credenciales originales. Los tokens de acceso suelen tener vidas cortas, por lo que siempre se generan nuevos.