La autenticación básica es una forma de autenticar cuando se realizan llamadas a la API de Edge Management.
Por ejemplo, puedes realizar la siguiente solicitud curl
a la API de Edge Management para acceder a la información sobre tu organización:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
En este ejemplo, se usa la opción curl
-u
para pasar credenciales de autenticación básica. Como alternativa, puedes pasar un token OAuth2 en el encabezado Bearer
para realizar llamadas a la API de Edge Management, como se muestra en el siguiente ejemplo:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Después de habilitar un IdP externo para la autenticación, puedes inhabilitar la autenticación básica de manera opcional. Si inhabilitas la autenticación básica, todas las secuencias de comandos (como Maven, shell y apigeetool
) que dependen de las llamadas a la API de Edge Management compatibles con la autenticación básica ya no funcionarán. Debes actualizar todas las llamadas a la API y las secuencias de comandos que usen la autenticación básica para pasar tokens de acceso de OAuth2 en el encabezado Bearer
.
Obtén y actualiza tokens con get_token
La utilidad get_token
intercambia tus credenciales de autenticación básica (y, en algunos casos, una
contraseña) por un acceso de OAuth2 y un token de actualización. La utilidad get_token
acepta tus credenciales y muestra un token de acceso válido. Si se puede actualizar un token, la utilidad lo actualiza y lo muestra. Si vence el token de actualización, se te pedirán las credenciales de usuario.
La utilidad get_token
almacena los tokens en el disco y están listos para usarse cuando sea necesario. También
imprime un token de acceso válido en stdout
. Desde allí, puedes usar una extensión del navegador, como Postman, o incorporarla a una variable de entorno para usarla en curl
.
A fin de obtener un token de acceso OAuth2 para realizar llamadas a la API de Edge Management, haz lo siguiente:
- Descarga el paquete de
sso-cli
:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
En el ejemplo anterior, EDGE_SSO_IP_DNS es la dirección IP o el nombre de DNS de la máquina que aloja el módulo de SSO de Apigee. Si configuraste TLS en el SSO de Apigee, usa
https
y el número de puerto TLS correcto. - Descomprime el paquete
ssocli-bundle.zip
, como se muestra en el siguiente ejemplo:unzip ssocli-bundle.zip
- Instala
get_token
en/usr/local/bin
, como se muestra en el siguiente ejemplo:./install -b PATH
La opción
-b
especifica una ubicación diferente. - Configura la variable de entorno
SSO_LOGIN_URL
como tu URL de acceso, de la siguiente manera:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
EDGE_SSO_IP_DNS es la dirección IP de la máquina que aloja el módulo de SSO de Apigee. Si configuraste TLS en el SSO de Apigee, usa
https
y el número de puerto TLS correcto. - (solo SAML) En un navegador, navega a la siguiente URL para obtener una contraseña de un solo uso:
http://EDGE_SSO_IP_DNS:9099/passcode
Si configuraste TLS en el SSO de Apigee, usa
https
y el número de puerto TLS correcto.Esta solicitud muestra una contraseña de un solo uso que sigue siendo válida hasta que actualices la URL para obtener una contraseña nueva o uses la contraseña con
get_token
para generar un token de acceso.Ten en cuenta que puedes usar una contraseña solo cuando autenticas con un IdP de SAML. No puedes usar una contraseña para autenticar con un IdP de LDAP.
- Invoca a
get_token
para obtener el token de acceso de OAuth2, como se muestra en el siguiente ejemplo:get_token -u EMAIL_ADDRESS
En el ejemplo anterior, EMAIL_ADDRESS es la dirección de correo electrónico de un usuario de Edge.
(Solo SAML) Ingresa la contraseña en la línea de comandos además de la dirección de correo electrónico, como se muestra en el siguiente ejemplo:
get_token -u EMAIL_ADDRESS -p PASSCODE
La utilidad
get_token
obtiene el token de acceso OAuth2, lo imprime en la pantalla y lo escribe, junto con el token de actualización en~/.sso-cli
. - Pasa el token de acceso a una llamada a la API de Edge Management como encabezado
Bearer
, como se muestra en el siguiente ejemplo:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- Después de obtener un token de acceso nuevo por primera vez, puedes obtenerlo y pasarlo a una llamada a la API en un solo comando, como se muestra en el siguiente ejemplo:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
Con esta forma del comando, si el token de acceso caducó, se actualiza automáticamente hasta que venza el token de actualización.
(Solo para SAML) Cuando venza el token de actualización, get_token
te solicitará una contraseña nueva. Debes navegar a la URL que se muestra arriba en el paso 3 y generar una contraseña nueva para poder generar un nuevo token de acceso de OAuth.
Usa la API de Management para obtener y actualizar tokens
En Usa la seguridad de OAuth2 con la API de administración de Apigee Edge, se muestra cómo usar la API de administración de Edge para obtener y actualizar tokens. También puedes usar las llamadas a la API de Edge para obtener tokens generados a partir de aserciones de SAML.
La única diferencia entre las llamadas a la API que se documenta en Usa la seguridad de OAuth2 con la API de administración de Apigee Edge es que la URL de la llamada debe hacer referencia al nombre de tu zona. Además, para generar el token de acceso inicial con un IdP de SAML, debes incluir la contraseña, como se muestra en el paso 3 del procedimiento anterior.
Para la autorización, pasa una credencial de cliente de OAuth2 reservada en el encabezado Authorization
. La llamada imprime los tokens de acceso y actualización en la pantalla.
Obtén un token de acceso
(LDAP) Usa la siguiente llamada a la API para generar el acceso inicial y los tokens de actualización:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ http://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'
(SAML) Usa la siguiente llamada a la API para generar el acceso inicial y los tokens de actualización:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ https://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
Ten en cuenta que la autenticación con un IdP de SAML requiere una contraseña temporal, mientras que un IdP de LDAP no.
Cómo actualizar un token de acceso
Para actualizar el token de acceso más tarde, usa la siguiente llamada que incluye el token de actualización:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ https://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'