<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
SAML prend en charge un environnement d'authentification unique (SSO). En utilisant SAML avec Edge, vous pouvez prendre en charge pour l'interface utilisateur et l'API Edge en plus des autres services que vous fournissez et qui prennent également en charge SAML.
Condition préalable:Vous devez activer SAML pendant 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 ressemble beaucoup à OAuth2 pour accéder l'API Edge. Lorsque vous appelez l'API Edge, vous incluez un jeton d'accès OAuth2 dans votre demande.
La principale différence entre SAML et OAuth2 lors de l'accès à l'API Edge est vous obtenez des jetons. Avec SAML, vous devez inclure les éléments suivants lorsque vous obtenez votre de jetons:
- Zones: les utilisateurs Edge for Public Cloud doivent référencer leur nom de zone lors de l'obtention de jetons.
- Code secret:incluez un code secret à usage unique lorsque vous demandez un accès ou une actualisation. de jetons.
SAML utilise les mêmes points de terminaison sur le service Edge OAuth2, avec en plus le 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:
En outre, vous pouvez automatiser le processus de génération de jetons pour les utilisateurs machine, 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 avec OAuth2.
les jetons d'actualisation que vous utilisez avec SAML.
Pour obtenir un jeton d'accès avec get_token:
- Définissez la variable d'environnement
SSO_LOGIN_URL
sur votre URL de connexion. L'URL de connexion contient au format suivant:https://zoneName.login.apigee.com
Par exemple, pour une zone nommée "acme", définissez
SSO_LOGIN_URL
sur "https://acme.login.apigee.com", comme le montre l'exemple suivant:export SSO_LOGIN_URL=https://acme.login.apigee.com
- Appelez
get_token
pour 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é à vous connecter po.
Cette URL renvoie un code secret à usage unique qui reste valide jusqu'à ce que vous l'actualisez pour obtenir un nouveau code secret, ou vous l'utilisez avec
get_token
pour générer un un jeton d'accès. Exemple : -
Saisissez le code secret. L'utilitaire
get_token
obtient les jetons OAuth2, imprime le jeton d'accès dansstdout
, et écrit les jetons d'accès et d'actualisation à~/.sso-cli
. - Appeler l'API Edge et transmettre le jeton d'accès dans
Authorization: Bearer
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 permet d'obtenir des informations sur l'organisation concernée. Pour obtenir la liste complète Points de terminaison de l'API, consultez la documentation de référence de l'API Apigee Edge.
Lorsque votre jeton d'accès expire, vous pouvez rappeler get_token
pour obtenir un nouvel accès
à partir d'un jeton d'accès. Exemple :
get_token -u me@example.com
Vous ne serez pas invité à saisir de nouveau code secret avant l'expiration du jeton d'actualisation.
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 Edge OAuth2
Vous pouvez utiliser le service Edge OAuth2 pour obtenir des jetons d'accès que vous utilisez avec SAML. Pour s'authentifier vous-même avec l'API Edge, vous utilisez un code secret lors de votre demande initiale pour obtenir un accès/une actualisation la paire de jetons, puis d'en obtenir une nouvelle.
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é à vous connecter po.
Cette URL renvoie un code secret à usage unique qui sert d'identifiant pour obtenir des jetons et qui reste valide jusqu'à ce que vous actualisiez l'URL pour obtenir un nouveau code secret, ou vous pouvez utiliser le code secret avec
get_token
pour 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 sert d'identifiant pour l'autorisation.
Où :
- L'en-tête
Authorization
est "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (utilisez ce la valeur exacte). - Le type de requête est
POST
. - Le corps de la requête contient les éléments suivants:
<ph type="x-smartling-placeholder">
- </ph>
grant_type
est "password".response_type
est "jeton".passcode
, où passcode est le code secret renvoyé à l'étape précédente.
L'appel imprime les jetons d'accès et d'actualisation à l'écran.
- L'en-tête
Pour actualiser votre jeton d'accès:
Envoyez une demande à 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:
<ph type="x-smartling-placeholder">
- </ph>
grant_type
est "refresh_token".refresh_token
est la valeur du jeton d'actualisation.
- L'en-tête
Authorization
est "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (utilisez ce la 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
.
à
accéder à l'API Edge.
Avec curl
, vous appelez l'API Edge et transmettez le jeton d'accès dans le
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 obtient des détails sur l'organisation donnée. Pour obtenir une liste complète des points de terminaison de l'API Edge, consultez la documentation de référence de l'API Apigee Edge.
D'autres méthodes d'appel de l'API, y compris des moyens de s'assurer que votre jeton reste d'actualisation, voir Accéder à l'API Edge avec OAuth2.
Utilisateurs de la machine dans les zones SAML
Vous pouvez créer un script d'accès automatisé à l'aide des utilitaires acurl
et get_token
aux API Edge pour les utilisateurs machine dans les zones SAML.
L'exemple suivant montre comment
utiliser get_token
pour
demandez un jeton d'accès, puis ajoutez la valeur du jeton à un appel 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/...'
Dans l'exemple ci-dessus, définir la valeur de -m
sur une chaîne vide empêche un utilisateur machine
d’être invité à entrer un code MFA. L'option --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.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'