Usa un IdP externo con la API de Edge Management

La autenticación básica es una forma de autenticarse cuando se realizan llamadas a la API de administración de Edge. Por ejemplo, puedes realizar la siguiente solicitud curl a la API de Management de Edge para acceder a información sobre tu organización:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

En este ejemplo, usas la opción curl -u para pasar las credenciales de autenticación básica. Como alternativa, puedes pasar un token de OAuth2 en el encabezado Bearer para realizar llamadas a la API de administración de Edge, como se muestra en el siguiente ejemplo:

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

Después de habilitar un IdP externo para la autenticación, puedes inhabilitar la autenticación básica de forma 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 Management de Edge que admiten 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 token de acceso y un token de actualización de OAuth2. La utilidad get_token acepta tus credenciales y devuelve un token de acceso válido. Si se puede actualizar un token, la utilidad lo actualiza y lo devuelve. Si el token de actualización vence, se solicitarán las credenciales del usuario.

La utilidad get_token almacena los tokens en el disco, listos para usarse cuando sea necesario. También imprime un token de acceso válido en stdout. Desde allí, puedes usar una extensión de navegador, como Postman, o incorporarla en una variable de entorno para usarla en curl.

Para obtener un token de acceso de OAuth2 y realizar llamadas a la API de administración de Edge, sigue estos pasos:

  1. Descarga el paquete 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 de TLS correcto.

  2. Descomprime el paquete ssocli-bundle.zip, como se muestra en el siguiente ejemplo:
    unzip ssocli-bundle.zip
  3. 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.

  4. Establece la variable de entorno SSO_LOGIN_URL en tu URL de acceso, con el siguiente formato:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    Donde 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.

  5. (Solo SAML) En un navegador, ve 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 devuelve una contraseña de un solo uso que sigue siendo válida hasta que actualices esa 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 solo puedes usar una contraseña cuando te autenticas con un IdP de SAML. No puedes usar una contraseña para autenticarte con un IdP de LDAP.

  6. Invoca get_token para obtener el token de acceso de OAuth2, como se muestra en el siguiente ejemplo:
    get_token -u emailAddress

    Donde emailAddress es la dirección de correo electrónico de un usuario de Edge.

    (Solo para 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 emailAddress -p passcode

    La utilidad get_token obtiene el token de acceso de OAuth2, lo imprime en la pantalla y lo escribe junto con el token de actualización en ~/.sso-cli.

  7. Pasa el token de acceso a una llamada a la API de Management de Edge como el encabezado Bearer, como se muestra en el siguiente ejemplo:
    curl -H "Authorization: Bearer access_token"
      https://ms_IP:8080/v1/organizations/orgName
  8. Después de obtener un token de acceso nuevo por primera vez, puedes obtener el token de acceso 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/orgName

    Con esta forma del comando, si el token de acceso venció, se actualiza de forma automática hasta que venza el token de actualización.

(Solo SAML) Después de que vence el token de actualización, get_token te solicita una contraseña nueva. Debes navegar a la URL que se muestra en el paso 3 anterior y generar una contraseña nueva antes de poder generar un token de acceso de OAuth nuevo.

Usa la API de administración 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 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 documentadas en Usa la seguridad de OAuth2 con la API de Management 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 los tokens de acceso y actualización iniciales:

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'

(SAML) Usa la siguiente llamada a la API para generar los tokens de acceso y actualización iniciales:

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 adelante, 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=refreshToken'