Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
SAML admite un entorno de inicio de sesión único (SSO). Si usas SAML con Edge, puedes admitir el SSO para la IU y la API de Edge, además de cualquier otro servicio que proporciones y que también admita SAML.
Requisito previo: Debes habilitar SAML para al menos una organización antes de poder usarlo para acceder a la API de Edge.
Diferencias entre SAML y OAuth2
Una vez que se configura SAML, su uso es muy similar al de OAuth2 para acceder a la API de Edge. Cuando llamas a la API de Edge, incluyes un token de acceso de OAuth2 en tu solicitud.
La diferencia clave entre SAML y OAuth2 cuando se accede a la API de Edge es la forma en que obtienes los tokens. Con SAML, debes incluir lo siguiente cuando obtengas tu par de tokens:
- Zonas: Los usuarios de Edge para la nube pública deben hacer referencia al nombre de su zona cuando obtienen tokens.
- Contraseña: Incluye una contraseña de un solo uso cuando solicites un par de tokens de acceso y actualización.
SAML usa los mismos extremos en el servicio OAuth2 de Edge, con la adición del nombre de zona adecuado.
Para obtener tokens de acceso con SAML, puedes usar uno de los siguientes métodos, que se describen en esta sección:
Además, puedes automatizar el proceso de generación de tokens para usuarios de máquinas, como se describe en Automatiza el proceso de generación de tokens.
Obtén tokens de acceso con get_token
Puedes usar la utilidad get_token para intercambiar tus credenciales por tokens de acceso y
actualización de OAuth2 que usas con SAML.
Para obtener un token de acceso con get_token, haz lo siguiente:
- Establece la variable de entorno
SSO_LOGIN_URLen tu URL de acceso. La URL de acceso tiene el siguiente formato:https://zoneName.login.apigee.com
Por ejemplo, para una zona llamada “acme”, establece
SSO_LOGIN_URLen “https://acme.login.apigee.com”, como se muestra en el siguiente ejemplo:export SSO_LOGIN_URL=https://acme.login.apigee.com
- Llama a
get_tokenpara obtener el token de acceso de OAuth2:get_token -u me@example.com
Se te solicitará que visites la URL que se muestra para obtener una contraseña de un solo uso:
Get passcode from https://acme.login.apigee.com/passcode [Note: Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:
Si no accediste recientemente a través de tu proveedor de identidad, se te solicitará que lo hagas.
Esta URL muestra una contraseña de un solo uso que sigue siendo válida hasta que actualizas esa URL para obtener una contraseña nueva o usas la contraseña con
get_tokenpara generar un token de acceso. Por ejemplo:
-
Ingresa la contraseña. La utilidad
get_tokenobtiene los tokens de OAuth2, imprime el token de acceso enstdouty escribe los tokens de acceso y actualización en~/.sso-cli. - Llama a la API de Edge y pasa el token de acceso en el
Authorization: Bearerencabezado, como se muestra en el siguiente ejemplo:curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
El valor del token de acceso se puede copiar de
stdout.En este ejemplo, se obtienen detalles sobre la organización determinada. Para obtener una lista completa de los extremos de la API de administración, consulta la Referencia de la API de Apigee Edge.
Cuando venza el token de acceso, puedes volver a llamar a get_token para obtener uno nuevo
token. Por ejemplo:
get_token -u me@example.com
No se te solicitará una contraseña nueva hasta que venza el token de actualización.
Cuando venza el token de actualización, get_token te solicitará una contraseña nueva. Debes
generar una contraseña nueva antes de poder generar un token de acceso de OAuth2 nuevo.
Obtén tokens de acceso con el servicio OAuth2 de Edge
Puedes usar el servicio OAuth2 de Edge para obtener tokens de acceso que usas con SAML. Para autenticarte con la API de Edge, usas una contraseña en tu solicitud inicial para obtener un par de tokens de acceso y actualización, y nuevamente para obtener un par de tokens nuevos.
Para obtener un par de tokens con la API de Edge, haz lo siguiente:
- En un navegador, navega a la siguiente URL para obtener una contraseña de un solo uso:
https://zoneName.login.apigee.com/passcode
Por ejemplo, para una zona llamada “acme”, ve a la siguiente URL:
https://acme.login.apigee.com/passcode
Si no accediste recientemente a través de tu proveedor de identidad, se te solicitará que lo hagas.
Esta URL muestra una contraseña de un solo uso que actúa como tus credenciales para obtener tokens y sigue siendo válida hasta que actualizas la URL para obtener una contraseña nueva, o puedes usar la contraseña con
get_tokenpara generar un token de acceso. Por ejemplo:
- Envía una solicitud a la API de Edge, como se muestra en el siguiente ejemplo:
curl https://zoneName.login.apigee.com/oauth/token \ -s \ -H "Accept: application/json" \ -d 'grant_type=password&response_type=token&passcode=passcode'El passcode actúa como tus credenciales para la autorización.
Donde:
- El encabezado
Authorizationes "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (usa este valor exacto). - El tipo de solicitud es
POST. - El cuerpo de la solicitud contiene lo siguiente:
grant_typees “password”.response_typees “token”.passcode, donde passcode es la contraseña que se mostró en el paso anterior.
La llamada imprime los tokens de acceso y actualización en la pantalla.
- El encabezado
Para actualizar tu token de acceso, haz lo siguiente:
Envía una solicitud a https://zoneName.login.apigee.com/oauth/token,
como se muestra en el siguiente ejemplo:
curl https://zoneName.login.apigee.com/oauth/token \
-d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'Donde:
- El cuerpo de la solicitud contiene lo siguiente:
grant_typees “refresh_token”.refresh_tokenes el valor del token de actualización.
- El encabezado
Authorizationes "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (usa este valor exacto). - El tipo de solicitud es
POST.
Accede a la API de Edge con SAML
Puedes usar herramientas como curl o la utilidad de conveniencia acurl
de Apigee para
acceder a la API de Edge.
Con curl, llamas a la API de Edge y pasas el token de acceso en el
Authorization: Bearer encabezado, como se muestra en el siguiente ejemplo:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Con acurl, no necesitas especificar el encabezado Authorization. Por ejemplo:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
En estos ejemplos, se llama a un extremo de la API de Edge que obtiene detalles sobre la organización determinada. Para obtener una lista completa de los extremos de la API de Edge, consulta la Referencia de la API de Apigee Edge.
Para obtener métodos adicionales para llamar a la API, incluidas formas de asegurarte de que tu token permanezca actualizado, consulta Accede a la API de Edge con OAuth2.
Usuarios de máquinas en zonas de SAML
Puedes usar las utilidades acurl y get_token para crear secuencias de comandos de acceso automatizado
a las APIs de Edge para usuarios de máquinas en zonas de SAML.
En el siguiente ejemplo, se muestra cómo
usar get_token para
solicitar un token de acceso y, luego, agregar el valor del token a una llamada curl:
USER=me@example.comPASS=not-that-secretTOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
En el ejemplo anterior, si se establece el valor de -m en una cadena vacía, se evitará que se le solicite un código de MFA a un usuario de máquina. Si usas la marca --force-basic-auth, se anulará la solicitud estándar de una contraseña activada por solicitudes con zonas de SAML.
Como alternativa, puedes combinar la solicitud de token y la llamada curl con la utilidad acurl.
Por ejemplo:
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'