Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
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: Debes habilitar SAML durante, al menos, a una organización antes de que puedas usarla para acceder a la API de Edge.
Diferencias entre SAML y OAuth2
Cuando se configura SAML, usarlo es muy similar a usar OAuth2 para acceder la API de Edge. Cuando llamas a la API de Edge, incluyes un token de acceso OAuth2 en tu solicitud.
La diferencia clave entre SAML y OAuth2 cuando se accede a la API de Edge está en el camino obtienes tokens. Con SAML, debes incluir lo siguiente cuando obtengas tu par de tokens:
- Zonas: El perímetro de los usuarios de la nube pública debe hacer referencia al nombre de su zona cuando obtengan tokens.
- Contraseña: Incluye una contraseña de un solo uso cuando solicites acceso o una actualización. par de tokens.
SAML usa los mismos extremos en el servicio Edge de OAuth2 y agrega el nombre de zona adecuado.
Para obtener tokens de acceso con SAML, puedes usar uno de los métodos que se describen en esta sección:
Además, puedes automatizar el proceso de generación de tokens para los usuarios de la máquina, como se describe en Automatiza el proceso de generación de tokens.
Cómo obtener tokens de acceso con get_token
Puedes usar la utilidad get_token
para intercambiar tus credenciales de acceso OAuth2 y
los tokens de actualización que usas con SAML.
Para obtener un token de acceso con get_token, sigue estos pasos:
- Establece la variable de entorno
SSO_LOGIN_URL
en tu URL de acceso. La URL de acceso tiene el siguiente formato:https://zoneName.login.apigee.com
Por ejemplo, para una zona llamada “acme”, configura
SSO_LOGIN_URL
como “https://acme.login.apigee.com”, como se muestra en el siguiente ejemplo:export SSO_LOGIN_URL=https://acme.login.apigee.com
- Llama a
get_token
para obtener el token de acceso de OAuth2:get_token -u me@example.com
Se te indicará que visites la URL que se muestra para obtener un código 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 pedirá que lo firmes en el que te etiquetaron.
Esta URL devuelve una contraseña de un solo uso que sigue siendo válida hasta que actualices esa URL para obtener un código nuevo o usar el código con
get_token
para generar una token de acceso. Por ejemplo: -
Ingresa la contraseña. La utilidad
get_token
obtiene los tokens de OAuth2. imprime el token de acceso enstdout
y escribe los tokens de acceso y de actualización, a~/.sso-cli
. - Llama a la API de Edge y pasa el token de acceso en el
Authorization: Bearer
. 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 desde
stdout
.En este ejemplo, se obtienen detalles sobre la organización determinada. Para obtener una lista completa de los roles Extremos de la API, consulta Referencia de la API de Apigee Edge.
Cuando venza el token de acceso, podrás volver a llamar a get_token
para obtener un acceso 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 para poder generar un nuevo token de acceso de OAuth2.
Obtén tokens de acceso con el servicio de OAuth2 de Edge
Puedes usar el servicio de Edge OAuth2 para obtener los tokens de acceso que usas con SAML. Cómo realizar la autenticación por tu cuenta con la API de Edge, debes usar una contraseña en tu solicitud inicial para obtener un acceso o una actualización par de tokens y otra vez para obtener otro nuevo.
Para obtener un par de tokens con la API de Edge, haz lo siguiente:
- En un navegador, ve 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 pedirá que lo firmes en el que te etiquetaron.
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 actualices la URL para obtén una contraseña nueva o puedes usar la contraseña con
get_token
para generar una 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.
Aquí:
- El encabezado
Authorization
es "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0". (usa este el valor exacto). - El tipo de solicitud es
POST
. - El cuerpo de la solicitud contiene lo siguiente:
grant_type
es "contraseña".response_type
es "token".passcode
, en el que 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
Sigue estos pasos para actualizar tu token de acceso:
Enviar 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'
Aquí:
- El cuerpo de la solicitud contiene lo siguiente:
grant_type
es "refresh_token".refresh_token
es el valor del token de actualización.
- El encabezado
Authorization
es "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0". (usa este el 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 de Apigee acurl
a
acceder a la API de Edge.
Con curl
, llamas a la API de Edge y pasas el token de acceso en la
Authorization: Bearer
, 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 métodos adicionales de llamada a la API, incluidas las formas de garantizar que tu token permanezca reciente, consulta Accede a la API de Edge con OAuth2.
Usuarios de máquinas en zonas SAML
Puedes usar las utilidades acurl
y get_token
para crear secuencias de comandos de acceso automatizado
a las APIs de Edge para los usuarios de máquinas en zonas de SAML.
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 '' --force-basic-auth)
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
En el ejemplo anterior, configurar el valor de -m
en una cadena vacía evitará que un usuario de máquina
de un código MFA. Si usas la marca --force-basic-auth
, se anulará
el mensaje estándar de una contraseña activado por solicitudes con zonas SAML.
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 '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'