Vous consultez la documentation Apigee Edge.
Accédez à la
documentation**Apigee X**. info
SAML est compatible avec un environnement d'authentification unique (SSO). En utilisant SAML avec Edge, vous pouvez activer SSO pour l'UI et l'API Edge, en plus de tous les autres services que vous fournissez et qui sont également compatibles avec SAML.
Prérequis : Vous devez activer SAML pour au moins une organisation avant de pouvoir l'utiliser pour accéder à l'API Edge.
Différences entre SAML et OAuth2
Une fois SAML configuré, son utilisation est très similaire à celle d'OAuth2 pour accéder à l'API Edge. Lorsque vous appelez l'API Edge, vous incluez un jeton d'accès OAuth2 dans votre requête.
La principale différence entre SAML et OAuth2 lors de l'accès à l'API Edge réside dans la manière dont vous obtenez les jetons. Avec SAML, vous devez inclure les éléments suivants lorsque vous obtenez votre paire de jetons :
- Zones : les utilisateurs d'Edge pour le cloud public doivent référencer le nom de leur zone lorsqu'ils obtiennent des jetons.
- Code secret : incluez un code secret à usage unique lorsque vous demandez une paire de jetons d'accès/d'actualisation.
SAML utilise les mêmes points de terminaison sur le service OAuth2 Edge, avec l'ajout du nom de zone approprié.
Pour obtenir des jetons d'accès avec SAML, vous pouvez utiliser l'une des méthodes suivantes, décrites dans cette section :
Vous pouvez également automatiser le processus de génération de jetons pour les utilisateurs machines, comme décrit dans Automatiser le processus de génération de jetons.
Obtenir des jetons d'accès avec get_token
Vous pouvez utiliser l'utilitaire get_token pour échanger vos identifiants contre des jetons d'accès et
d'actualisation OAuth2 que vous utilisez avec SAML.
Pour obtenir un jeton d'accès avec get_token :
- Définissez la variable d'environnement
SSO_LOGIN_URLsur votre URL de connexion. L'URL de connexion se présente au format suivant :https://zoneName.login.apigee.com
Par exemple, pour une zone nommée "acme", définissez
SSO_LOGIN_URLsur "https://acme.login.apigee.com", comme le montre l'exemple suivant :export SSO_LOGIN_URL=https://acme.login.apigee.com
- Appelez
get_tokenpour obtenir le jeton d'accès OAuth2 :get_token -u me@example.com
Vous êtes invité à accéder à l'URL affichée pour obtenir un code secret à usage unique :
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 vous ne vous êtes pas connecté récemment via votre fournisseur d'identité, vous serez invité à le faire.
Cette URL renvoie un code secret à usage unique qui reste valide jusqu'à ce que vous actualisiez cette URL pour obtenir un nouveau code secret, ou que vous utilisiez le code secret avec
get_tokenpour générer un jeton d'accès. Exemple :
-
Saisissez le code secret. L'utilitaire
get_tokenobtient les jetons OAuth2, affiche le jeton d'accès dansstdoutet écrit les jetons d'accès et d'actualisation dans~/.sso-cli. - Appelez l'API Edge et transmettez le jeton d'accès dans le
Authorization: Beareren-tête, comme le montre l'exemple suivant :curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
La valeur du jeton d'accès peut être copiée à partir de
stdout.Cet exemple fournit des informations sur l'organisation donnée. Pour obtenir la liste complète des points de terminaison de l'API de gestion, consultez la documentation de référence de l'API Apigee Edge.
Lorsque votre jeton d'accès expire, vous pouvez appeler get_token à nouveau pour obtenir un nouveau jeton d'accès. Exemple :
get_token -u me@example.com
Vous ne serez pas invité à saisir un nouveau code secret tant que le jeton d'actualisation n'aura pas expiré.
Lorsque le jeton d'actualisation expire, get_token vous invite à saisir un nouveau code secret. Vous devez
générer un nouveau code secret avant de pouvoir générer un nouveau jeton d'accès OAuth2.
Obtenir des jetons d'accès avec le service OAuth2 Edge
Vous pouvez utiliser le service OAuth2 Edge pour obtenir des jetons d'accès que vous utilisez avec SAML. Pour vous authentifier auprès de l'API Edge, vous utilisez un code secret dans votre requête initiale pour obtenir une paire de jetons d'accès/d'actualisation, puis à nouveau pour obtenir une nouvelle paire de jetons.
Pour obtenir une paire de jetons avec l'API Edge :
- Dans un navigateur, accédez à l'URL suivante pour obtenir un code secret à usage unique :
https://zoneName.login.apigee.com/passcode
Par exemple, pour une zone nommée "acme", accédez à l'URL suivante :
https://acme.login.apigee.com/passcode
Si vous ne vous êtes pas connecté récemment via votre fournisseur d'identité, vous serez invité à le faire.
Cette URL renvoie un code secret à usage unique qui fait office d'identifiants pour obtenir des jetons et reste valide jusqu'à ce que vous actualisiez l'URL pour obtenir un nouveau code secret. Vous pouvez également utiliser le code secret avec
get_tokenpour générer un jeton d'accès. Exemple :
- Envoyez une requête à l'API Edge, comme le montre l'exemple suivant :
curl https://zoneName.login.apigee.com/oauth/token \ -s \ -H "Accept: application/json" \ -d 'grant_type=password&response_type=token&passcode=passcode'Le passcode fait office d'identifiants pour l'autorisation.
Où :
- L'en-tête
Authorizationest "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (utilisez cette valeur exacte). - Le type de requête est
POST. - Le corps de la requête contient les éléments suivants :
grant_typeest "password".response_typeest "token".passcodeoù passcode est le code secret renvoyé à l'étape précédente.
L'appel affiche les jetons d'accès et d'actualisation à l'écran.
- L'en-tête
Pour actualiser votre jeton d'accès :
Envoyez une requête à https://zoneName.login.apigee.com/oauth/token,
comme le montre l'exemple suivant :
curl https://zoneName.login.apigee.com/oauth/token \
-d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'Où :
- Le corps de la requête contient les éléments suivants :
grant_typeest "refresh_token".refresh_tokenest la valeur du jeton d'actualisation.
- L'en-tête
Authorizationest "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (utilisez cette valeur exacte). - Le type de requête est
POST.
Accéder à l'API Edge avec SAML
Vous pouvez utiliser des outils tels que curl ou l'utilitaire pratique Apigee acurl
pour
accéder à l'API Edge.
Avec curl, vous appelez l'API Edge et transmettez le jeton d'accès dans l'en-tête
Authorization: Bearer, comme le montre l'exemple suivant :
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Avec acurl, vous n'avez pas besoin de spécifier l'en-tête Authorization. Exemple :
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Ces exemples appellent un point de terminaison de l'API Edge qui fournit des informations sur l'organisation donnée. Pour obtenir la liste complète des points de terminaison de l'API Edge, consultez la documentation de référence de l'API Apigee Edge.
Pour découvrir d'autres méthodes d'appel de l'API, y compris des moyens de vous assurer que votre jeton reste valide, consultez Accéder à l'API Edge avec OAuth2.
Utilisateurs machines dans les zones SAML
Vous pouvez utiliser les utilitaires acurl et get_token pour créer un script d'accès automatisé
aux API Edge pour les utilisateurs machines dans les zones SAML.
L'exemple suivant montre comment utiliser get_token pour demander un jeton d'accès, puis ajouter la valeur du jeton à un appel 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/...'
Dans l'exemple ci-dessus, la définition de la valeur de -m sur une chaîne vide empêche l'utilisateur machine
d'être invité à saisir un code MFA. L'utilisation de l'indicateur --force-basic-auth remplace l'invite standard pour un code secret déclenché par des requêtes avec des zones SAML.
Vous pouvez également combiner la requête de jeton et l'appel curl à l'aide de l'utilitaire acurl.
Exemple :
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'