Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
Apigee Edge te permite realizar llamadas a la API de Edge que se autentican con tokens OAuth2. La compatibilidad con OAuth2 está habilitada de forma predeterminada en Edge para las cuentas de Cloud. Si usas Edge para la nube privada, no puedes usar OAuth2 sin primero configurar SAML o LDAP.
Cómo funciona OAuth2 (con la API de Apigee Edge)
Las llamadas a la API de Apigee Edge requieren autenticación para que podamos estar seguros de que usted es quien dices que eres. Para autenticarte, es necesario que envíes un token de acceso de OAuth2 con tu solicitud para acceder a la API.
Por ejemplo, si quisieras obtener detalles sobre una organización en Edge, deberías enviar una solicitud a una URL como la siguiente:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Pero no puedes simplemente enviar esa solicitud sin decirnos quién eres. De lo contrario, cualquiera los usuarios podrían ver los detalles de tu organización.
Aquí es donde entra en juego OAuth2: para autenticarte, necesitamos que nos envíes un token de acceso. en esa solicitud también. El token de acceso nos indica quién eres para asegurarnos de que tienes permiso ver los detalles de la organización.
Por suerte, puedes obtener un token si envías tus credenciales al servicio de Edge de OAuth2. El servicio responde con tokens de acceso y actualización.
Flujo de OAuth2: La solicitud inicial
En la siguiente imagen, se muestra el flujo de OAuth2 cuando accedes a la API de Edge para la primera hora:
Como se muestra en la figura 1, cuando realizas la solicitud inicial a la API de Edge:
- Solicitas un token de acceso. Puedes hacerlo con el
API de Edge, acurl o
get_token
. Por ejemplo:get_token Enter username:
.ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456
- El servicio de Edge OAuth2 responde con un token de acceso y lo imprime en
stdout
. por ejemplo:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
Las utilidades
acurl
yget_token
guardan de forma silenciosa el acceso y tokens de actualización a~/.sso-cli
(el token de actualización no se escribe enstdout
.) Si usas el servicio de OAuth2 de Edge para obtener tokens, debes guardarlos para más tarde te usarás a ti mismo. - Envías una solicitud a la API de Edge con el token de acceso.
acurl
archivos adjuntos el token automáticamente; por ejemplo:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Si usas otro cliente HTTP, asegúrate de agregar el token de acceso. Por ejemplo:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- La API de Edge ejecuta tu solicitud y, por lo general, muestra una respuesta con datos.
Flujo de OAuth2: solicitudes posteriores
En solicitudes posteriores, no es necesario que intercambies tus credenciales por un token. En cambio, puedes incluir el token de acceso que ya tienes, siempre que no haya vencido aún:
Como se muestra en la figura 2, cuando ya tienes un token de acceso:
- Envías una solicitud a la API de Edge con el token de acceso.
acurl
archivos adjuntos el token automáticamente. Si usas otras herramientas, debes agregar el token manualmente. - La API de Edge ejecuta tu solicitud y, por lo general, muestra una respuesta con datos.
Flujo de OAuth2: Cuándo vence el token de acceso
Cuando venza un token de acceso (después de 12 horas), podrás usar el token de actualización para obtener uno nuevo token de acceso:
Como se muestra en la figura 3, una vez que expiró tu token de acceso:
- Envías una solicitud a la API de Edge, pero tu token de acceso venció.
- La API de Edge rechaza tu solicitud como no autorizada.
- Envías un token de actualización al servicio de OAuth2 de Edge. Si usas
acurl
, puedes hacerlo. automáticamente. - El servicio de Edge de OAuth2 responde con un token de acceso nuevo.
- Envías una solicitud a la API de Edge con el token de acceso nuevo.
- La API de Edge ejecuta tu solicitud y, por lo general, muestra una respuesta con datos.
Obtén los tokens
Para obtener un token de acceso que puedas enviar a la API de Edge, puedes usar los siguientes
Utilidades de Apigee, además de una utilidad como curl
, realizan lo siguiente:
- Utilidad get_token: Intercambia tus credenciales de Apigee para obtener acceso. y los tokens de actualización que puedes usar para llamar a la API de Edge.
- Utilidad acurl: Proporciona un wrapper de conveniencia en torno a un estándar
Comando
curl
. Construye solicitudes HTTP al perímetro API, obtiene acceso y actualiza tokens deget_token
y pasa el token de acceso a la API de Edge. - Extremos de tokens en el servicio de OAuth2 de Edge: Intercambia tu Credenciales de Apigee para los tokens de acceso y actualización mediante una llamada a la API de Edge.
Estas utilidades intercambian las credenciales de tu cuenta de Apigee (dirección de correo electrónico y contraseña) para los tokens con las siguientes duraciones:
- Los tokens de acceso vencen en 12 horas.
- Los tokens de actualización vencen dentro de 30 días.
Como resultado, una vez que hayas realizado correctamente una llamada a la API con acurl
o get_token
, ocurrirá lo siguiente:
puedes seguir usando el par de tokens durante 30 días. Luego del vencimiento, debes volver a ingresar tu
credenciales y obtener tokens nuevos.
Accede a la API de Edge con OAuth2
Para acceder a la API de Edge, debes enviar una solicitud a un extremo de la API y agregar el token de acceso.
Puedes hacerlo con cualquier cliente HTTP, incluida una utilidad de línea de comandos como curl
,
una IU basada en navegador, como Postman, o una utilidad de Apigee, como acurl
.
Se describe cómo acceder a la API de Edge con acurl
y curl
en
en las siguientes secciones.
Usa acurl
Para acceder a la API de Edge con acurl
, tu solicitud inicial debe incluir tu
credenciales. El servicio de Edge de OAuth2 responde con los tokens de acceso y actualización. acurl
guarda los tokens de forma local.
En solicitudes posteriores, acurl
usa los tokens guardados en ~/.sso-cli
, por lo que
que no tengas que volver a incluir tus credenciales hasta que los tokens venzan.
En el siguiente ejemplo, se muestra una solicitud acurl
inicial que obtiene detalles del
“ahamilton-eval” organización:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c
{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies
[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
Además de obtener detalles sobre la organización, en este ejemplo se muestra una segunda solicitud que obtenga una lista de políticas en el entorno de “helloworld” proxy de API. La segunda solicitud usa abreviando “o” para “organizaciones” en la URL.
Ten en cuenta que acurl
pasa automáticamente el token de acceso en la segunda solicitud. Tú
no necesitas pasar tus credenciales de usuario una vez que acurl
almacene los tokens de OAuth2. Integra
obtiene el token de ~/.sso-cli
para las llamadas posteriores.
Si quieres obtener más información, consulta Usa acurl para acceder a la API de Edge.
Usa curl
Puedes usar curl
para acceder a la API de Edge. Para hacer esto, primero debes obtener el
tokens de acceso y de actualización. Puedes obtenerlos con una utilidad, como get_token
o la
Servicio de OAuth2 de Edge.
Una vez que hayas guardado correctamente tu token de acceso, pásalo en
Encabezado Authorization
de las llamadas a la API de Edge, como en el siguiente ejemplo
muestra:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
El token de acceso es válido durante 12 horas a partir de su emisión. Una vez que venza el token de acceso, el token de actualización se puede usar durante 30 días para emitirlo a través de otro token de acceso sin solicitar credenciales. Apigee recomienda solicitar un nuevo token de acceso solo después de que caduque el token de referencia, en lugar de ingresando las credenciales y realizando una nueva solicitud con cada llamada a la API.
Vencimiento del token
Cuando venza el token de acceso, podrás usar el token de actualización para obtener uno nuevo sin tener que volver a enviar tus credenciales.
La forma de actualizar el token de acceso depende de la herramienta que estés usando:
acurl
: No se requiere ninguna acción.acurl
actualiza automáticamente el token de acceso. cuando envías una solicitud que contiene una desactualizada.get_token
: Llama aget_token
para actualizar el token de acceso.- Servicio Edge OAuth2: Envía una solicitud que incluya lo siguiente:
- Token de actualización
- Se estableció el parámetro de formulario
grant_type
en "refresh_token"
OAuth2 para usuarios de máquinas
Puedes usar las utilidades acurl
y get_token
para crear secuencias de comandos de acceso automatizado
a las APIs de Edge con autenticación OAuth2 para usuarios de la máquina. En el siguiente ejemplo, se muestra cómo
usa get_token
para
solicita un token de acceso y, luego, agrega el valor del token a una llamada curl
:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Como alternativa, puedes combinar la solicitud de token y la llamada a curl
con la utilidad acurl
.
Por ejemplo:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
En ambos ejemplos, configurar el valor de -m
en una cadena vacía evitará que un usuario de máquina
de un código MFA.