Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
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 con las claves de API (también llamadas claves públicas, las claves del consumidor) claves o claves de aplicaciones).
Cuando una app realiza una solicitud a tu API, la app debe proporcionar una clave válida. En el tiempo de ejecución, la política Verificar clave de API comprueba que la clave de API proporcionada:
- Es válida.
- No se revocó.
- Hace coincidir la clave de API para el producto de API que expone la API solicitada recursos
Si la clave es válida, se permite la solicitud. Si la clave no es válida, solicitud genera un error de autorización.
En este instructivo, crearás un proxy de API que requiera una API válida para acceder a ella.
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
- (No se requiere para la sección de crédito adicional) cURL instalado en tu máquina para realizar llamadas a la API desde la línea de comandos.
Crea el proxy de API
- Ir a https://apigee.com/edge y acceder.
Para cambiar a la organización que deseas, haz clic en tu nombre de usuario en la parte superior de la barra de navegación lateral para mostrar el menú de perfil del usuario y, luego, seleccionando la organización de la lista.
-
Haga clic en Proxies de API en la página de destino para mostrar la API. en la lista de proxies.
- Haz clic en + Proxy.
- En la página Crear proxy, selecciona Proxy inverso (más común).
- En la página Proxy Details, configura el proxy de la siguiente manera:
En este campo haz lo siguiente Sigue estas recomendaciones Proxy name Ingresa: helloworld_apikey
Ruta de acceso base del proyecto Cambia a:
/helloapikey
La ruta base del proyecto es parte de la URL que se usa para al proxy de API.
Nota: Para las recomendaciones de Apigee sobre el control de versiones de la API, consulta Control de versiones en Web API Design: The Missing Vincular al libro electrónico.
Existing API Ingresa:
http://mocktarget.apigee.net
Esto define la URL de destino que invoca Apigee Edge en un al proxy de API.
Descripción Ingresa: hello world protected by API key
- Haz clic en Siguiente.
- En la página Políticas comunes, para Seguridad: Autorización, selecciona Clave de API y, luego, haz clic en Siguiente. Esta agregará dos políticas a tu proxy de API.
- En la página Virtual Hosts, selecciona default y
secure y haga clic en Next. Si seleccionas predeterminada, te permitirá
llamar a tu API con
http://
. Si seleccionas Seguridad, te permite llamar a tu API conhttps://
. - En la página Summary, asegúrate de que la implementación test y, luego, haz clic en Crear e implementar.
- Verás la confirmación de que tu nuevo proxy de API y una producto se crearon correctamente y que el proxy de API se implementó en tu entorno de pruebas.
- Haz clic en Edit proxy para ver la página Overview de 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: comprueba la llamada a la API para asegurarse de que se haya Hay una clave de API presente (enviada como un parámetro de consulta).
- Quita apikey del parámetro de consulta: Es una política deAssignMessage que quita la clave de API después de verificarla para que no se apruebe alrededor y expuestos de forma innecesaria.
-
Haz clic en el ícono Verify API Key policy en la vista de flujo y observa la configuración XML de la política en la vista de código inferior. El El elemento
<APIKey>
le indica a la política dónde debe buscar la clave de API cuando se realice la llamada. De forma predeterminada, busca como un parámetro de consulta llamadoapikey
en la solicitud:<APIKey ref="request.queryparam.apikey" />
El nombre
apikey
es arbitrario y puede ser cualquier propiedad que contiene la clave de API.
Intenta llamar a la API
En este paso, realizarás una llamada a la API exitosa directamente en el destino después, realizarás una llamada incorrecta al proxy de API para ver cómo están protegidos por las políticas.
-
Listo
En un navegador web, ve a la siguiente dirección. Este es el servicio de destino que el proxy de API está configurado para reenviar a la solicitud, pero por ahora lo accederás directamente:
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
y reemplaza
ORG_NAME
por el nombre de tu Organización perimetral.Sin la política Verificar clave de API, esta llamada daría lo mismo que en la llamada anterior. Pero, en este caso, deberías obtener siguiente respuesta de error:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
lo que significa que no pasaste una clave de API válida (como un 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.
En Product details, ingresa tu producto de API.
Campo Descripción Name Nombre interno del producto de API. Qué no debes hacer especificar caracteres especiales en el nombre.
Nota: Tú no puede editar el nombre una vez que se crea el producto de API. Para por ejemplo,helloworld_apikey-Product
.Nombre visible Nombre visible del producto de API. El nombre visible se usa en la IU y puedes editarla en cualquier momento. Si no se especifica, el Se usará el valor del nombre. Este campo se completa automáticamente con el Valor de nombre; puedes editar o borrar su contenido. La pantalla el nombre 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, test
oprod
.Acceder Selecciona Público. Aprueba de manera automática las solicitudes de acceso Habilitar la aprobación automática de las solicitudes de claves para esta API producto desde cualquier app. Cuota Ignora este instructivo. Permisos de OAuth permitidos Ignora este instructivo. - En la sección API resources, seleccione el proxy de API que acaba de
crear. Por ejemplo,
helloworld_apikey
. - Haz clic en Agregar.
- En la sección Rutas de acceso, agrega la ruta "/".
- 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 llamen a tus APIs, y cada app recibe una clave de API única. Esto te brinda, el proveedor de API, más control detallado sobre el acceso a sus APIs e informes más detallados sobre 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 ingresar Nombre Keyser
Apellido Soze
Nombre de usuario keyser
Correo electrónico keyser@example.com
- Haga clic en Crear.
Registra una aplicación
Para registrar una app de desarrollador, sigue estos pasos:
- Selecciona Publicar > Apps.
- Haga clic en + Aplicación.
Ingresa lo siguiente en la ventana New App:
pEn este campo haz lo siguiente Sigue estas recomendaciones Nombre y Nombre visible Ingresa: keyser_app
Empresa/Programador Selecciona: Developer
Desarrollador Selecciona: Keyser Soze (keyser@example.com)
URL de devolución de llamada y Notas Déjelo en blanco - En la sección Credenciales, selecciona Nunca en la 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 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 (Publish > 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, ten en cuenta que la clave está asociada con helloworld_apikey
de Google Cloud.- 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. Ingresar lo siguiente en tu navegador web. Sustituye el nombre de tu organización de Edge para ORG_NAME y la clave de API para API_KEY a continuación. Asegúrate de que no haya espacios adicionales en el parámetro de consulta.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
Ahora, cuando llames al proxy de API, deberías obtener esta respuesta:
Hello, Guest!
¡Felicitaciones! Creaste un proxy de API y lo protegiste mediante Solicitar 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 consulta. Debes tener en cuenta y pasarlo en el encabezado HTTP.
Práctica recomendada: Pasa la clave en el encabezado HTTP
En este paso, modificarás el proxy para buscar la clave de API en una
llamado x-apikey
.
- Edita el proxy de la API. Selecciona Desarrollo > Proxies de API > helloworld_apikey y ve a la vista Desarrollo.
-
Selecciona la política Verify API Key y modifica el XML de la política para indicarlo. la política se debe buscar en
header
, en lugar de en elqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Guarda el proxy de API para implementar el cambio.
-
Realiza la siguiente llamada a la API usando cURL para pasar la clave de API como una llamado
x-apikey
. No olvides sustituir tu nombre de la organización.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
Ten en cuenta que, para completar el cambio, también necesitarás configurar el La políticaAssignMessage para quitar el encabezado en lugar del parámetro de consulta 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
- Registrar app desarrolladores
- Registra apps y administra las claves de API
- VerifyAPIKey política
- AssignMessage política
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 las APIs implica seguridad adicional, como OAuth.
OAuth es una protocolo abierto que, en pocas palabras, intercambia credenciales (como el nombre de usuario y la contraseña) para los tokens de acceso. Los tokens de acceso son cadenas largas y aleatorias que se pueden pasar alrededor de un mensaje de Google Cloud, incluso de una app a otra, sin comprometer las credenciales originales. Acceso los tokens suelen tener vidas cortas, por lo que siempre se generan nuevos.