Usa SAML con la API de administración de Edge

La autenticación básica es una forma de autenticarse 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 de 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 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. Por ejemplo:

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

Después de habilitar SAML, puedes inhabilitar la autenticación básica de forma opcional. Si la inhabilitas, todas las secuencias de comandos (secuencias de comandos de Maven, secuencias de comandos de shell, apigeetool, etc.) que dependan de llamadas a la API de administración de Edge que admitan la autenticación básica dejarán de funcionar. 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 del portador.

Usa get_token para obtener y actualizar tokens

La utilidad get_token intercambia tus credenciales de autenticación básica y una contraseña por un acceso de OAuth2 y un token de actualización. La utilidad get_token acepta tus credenciales y, luego, imprime un token de acceso válido. Si se puede actualizar un token, este lo actualizará y, luego, lo imprimirá. 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, listos para usarse cuando sea necesario. También imprime un token de acceso válido en stdout. Desde allí, puedes usar Postman o incorporarlo a una variable de entorno para usarlo en curl.

En el siguiente procedimiento, se describe cómo usar get_token para obtener un token de acceso de OAuth2 para realizar llamadas a la API de Edge Management:

  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 del nombre de DNS de la máquina que aloja el módulo de SSO perimetral. Si configuraste TLS en Edge SSO, usa https y el número de puerto TLS correcto.

  2. Descomprime el paquete ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Instala get_token en /usr/local/bin:
    > ./install Usa la opción -b para especificar una ubicación diferente: > ./install -b path
  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 del nombre de DNS de la máquina que aloja el módulo de SSO de Edge. Si configuraste TLS en Edge SSO, usa https y el número de puerto TLS correcto.
  5. 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 Edge SSO, usa https y el número de puerto TLS correcto.

    Nota: Si tu proveedor de identidad no accedió a tu cuenta, se te pedirá que lo hagas.

    Esta URL 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.
  6. Invoca get_token para obtener el token de acceso de OAuth2:
    > get_token -u emailAddress

    donde emailAddress es la dirección de correo electrónico de un usuario de Edge. Se te solicitará que ingreses la contraseña de un solo uso que obtuviste en el paso 3:
    Código de un solo uso ( Obtén uno en https://edge_sso_IP.com/passcode)
    Ingresa la contraseña si SAML está habilitado o presiona INTRO:


    Ingresa la contraseña. 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.

    Puedes ingresar la contraseña en la línea de comandos usando un comando get_token con el siguiente formato:
    > get_token -u emailAddress -p passcode
  7. Pasa el token de acceso a una llamada a la API de Edge Management como encabezado del Bearer:
    > curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName

    Después de que obtengas un nuevo token de acceso por primera vez, puedes obtener el token de acceso nuevo y pasarlo como un token de acceso > Authorization: https://ms_IP:


Una vez que venza el token de actualización, get_token te solicitará una contraseña nueva. Debes ir 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 incluyen instrucciones en las que 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 los 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, debes incluir la contraseña, como se muestra en el paso 3 del procedimiento anterior.

Por ejemplo, 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'  

Para obtener 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.

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