<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Apigee Edge vous permet d'effectuer des appels d'API Edge authentifiés avec des jetons OAuth2. La prise en charge d'OAuth2 est activée par défaut sur Edge pour les comptes Cloud. Si vous utilisez Edge pour le cloud privé, vous ne pouvez pas utiliser OAuth2 sans Commencez par configurer SAML ou LDAP.
Fonctionnement d'OAuth2 (avec l'API Apigee Edge)
Les appels à l'API Apigee Edge nécessitent une authentification afin que nous sachions que vous êtes vous affirmez l'être. Pour vous authentifier, nous exigeons l'envoi d'un jeton d'accès OAuth2 avec votre requête pour accéder à l'API.
Par exemple, si vous souhaitez obtenir des détails sur une organisation sur Edge, vous devez envoyer une demande à une URL semblable à celle-ci:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Mais vous ne pouvez pas envoyer cette demande sans nous dire qui vous êtes. Sinon, toute personne puisse voir les informations sur votre organisation.
C'est là qu'OAuth2 entre en jeu: pour vous authentifier, vous devez nous envoyer un jeton d'accès. également dans cette demande. Le jeton d'accès nous indique qui vous êtes afin de nous assurer que vous êtes autorisé à voir les détails de l'organisation.
Heureusement, vous pouvez obtenir un jeton en envoyant vos identifiants au service Edge OAuth2. La répond par des jetons d'accès et d'actualisation.
Flux OAuth2: requête initiale
L'image suivante montre le flux OAuth2 lorsque vous accédez à l'API Edge pour la première temps:
<ph type="x-smartling-placeholder">Comme le montre la Figure 1, lorsque vous envoyez votre requête initiale à l'API Edge:
- Vous demandez un jeton d'accès. Pour ce faire, utilisez
API Edge, acurl ou
get_token
. Par exemple :get_token Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456
- Le service Edge OAuth2 répond par un jeton d'accès et l'imprime sur
stdout
. Par exemple:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
Les utilitaires
acurl
etget_token
enregistrent automatiquement l'accès et les jetons d'actualisation dans~/.sso-cli
(le jeton d'actualisation n'est pas écrit dansstdout
.) Si vous utilisez le service Edge OAuth2 pour obtenir des jetons, vous devez les enregistrer pour utilisez-vous plus tard. - Vous envoyez une demande à l'API Edge avec le jeton d'accès.
acurl
de pièces jointes le jeton automatiquement ; Par exemple:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Si vous utilisez un autre client HTTP, veillez à ajouter le jeton d'accès. Exemple :
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- L'API Edge exécute votre demande et renvoie généralement une réponse avec des données.
Flux OAuth2: requêtes ultérieures
Lors des requêtes ultérieures, vous n'avez pas besoin d'échanger vos identifiants contre un jeton. À la place, Vous pouvez simplement inclure le jeton d'accès dont vous disposez déjà, tant qu'il n'a pas encore expiré:
<ph type="x-smartling-placeholder">Comme le montre la Figure 2, lorsque vous disposez déjà d'un jeton d'accès:
- Vous envoyez une demande à l'API Edge avec le jeton d'accès.
acurl
de pièces jointes automatiquement le jeton. Si vous utilisez d'autres outils, vous devez ajouter le jeton manuellement. - L'API Edge exécute votre demande et renvoie généralement une réponse avec des données.
Flux OAuth2: expiration de votre jeton d'accès
Lorsqu'un jeton d'accès expire (après 12 heures), vous pouvez l'utiliser pour obtenir un nouveau jeton d'accès:
<ph type="x-smartling-placeholder">Comme le montre la Figure 3, lorsque votre jeton d'accès a expiré:
- Vous envoyez une demande à l'API Edge, mais votre jeton d'accès a expiré.
- L'API Edge rejette votre demande comme non autorisée.
- Vous envoyez un jeton d'actualisation au service Edge OAuth2. Si vous utilisez
acurl
, cette étape est terminée. automatiquement pour vous. - Le service Edge OAuth2 répond avec un nouveau jeton d'accès.
- Vous envoyez une demande à l'API Edge avec le nouveau jeton d'accès.
- L'API Edge exécute votre demande et renvoie généralement une réponse avec des données.
Obtenir les jetons
Pour obtenir un jeton d'accès que vous pouvez envoyer à l'API Edge, vous pouvez utiliser le code suivant :
Utilitaires Apigee, en plus d'un utilitaire tel que curl
:
- get_token tool: échange vos identifiants Apigee pour y accéder et actualiser les jetons que vous pouvez utiliser pour appeler l'API Edge.
- Utilitaire acurl: fournit un wrapper de commodité pour un objet standard
curl
. Construit des requêtes HTTP en périphérie obtient des jetons d'accès et d'actualisation auprès deget_token
, puis les transmet à l'API Edge. - Points de terminaison de jetons dans le service Edge OAuth2: échangez vos Identifiants Apigee pour les jetons d'accès et d'actualisation via un appel à l'API Edge.
Ces utilitaires échangent vos identifiants de compte Apigee (adresse e-mail et mot de passe) pour les jetons dont la durée est la suivante:
- Les jetons d'accès expirent au bout de 12 heures.
- Les jetons d'actualisation expirent au bout de 30 jours.
Par conséquent, une fois que vous avez effectué un appel d'API avec acurl
ou get_token
,
vous pouvez continuer à utiliser la paire de jetons pendant 30 jours. Passé ce délai, vous devez saisir à nouveau votre
des identifiants et d'obtenir de nouveaux jetons.
Accéder à l'API Edge avec OAuth2
Pour accéder à l'API Edge, vous envoyez une demande à un point de terminaison de l'API et vous incluez le jeton d'accès.
Vous pouvez le faire avec n'importe quel client HTTP, y compris un utilitaire de ligne de commande tel que curl
,
une interface utilisateur basée sur un navigateur, comme Postman, ou un utilitaire Apigee tel que acurl
.
L'accès à l'API Edge avec acurl
et curl
est décrit dans la section
dans les sections suivantes.
Utiliser acurl
Pour accéder à l'API Edge avec acurl
, votre demande initiale doit inclure votre
identifiants de connexion. Le service Edge OAuth2 répond avec les jetons d'accès et d'actualisation. acurl
enregistre les jetons localement.
Lors des requêtes suivantes, acurl
utilise les jetons enregistrés dans ~/.sso-cli
.
que vous n’avez pas besoin d’inclure à nouveau
vos identifiants jusqu’à ce que les jetons expirent.
L'exemple suivant montre une requête acurl
initiale qui obtient les détails du
"ahamilton-eval" organisation:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c
{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies
[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
En plus d'obtenir des informations sur l'organisation, cet exemple montre également une seconde requête qui récupère une liste des stratégies dans le fichier "helloworld" proxy d'API. La deuxième demande utilise raccourcir "o" pour "organisations" dans l'URL.
Notez que acurl
transmet automatiquement le jeton d'accès lors de la deuxième requête. Toi
n'ont pas besoin de transmettre vos identifiants utilisateur une fois que acurl
stocke les jetons OAuth2. Il
récupère le jeton à partir de ~/.sso-cli
pour les appels suivants.
Pour en savoir plus, consultez la section Utiliser acurl pour accéder à l'API Edge.
Utiliser curl
Vous pouvez utiliser curl
pour accéder à l'API Edge. Pour ce faire, vous devez d'abord obtenir
des jetons d'accès et d'actualisation. Vous pouvez les obtenir à l'aide d'un utilitaire tel que get_token
ou
Service Edge OAuth2.
Une fois votre jeton d'accès enregistré, transmettez-le dans le
En-tête Authorization
de vos appels à l'API Edge, comme dans l'exemple suivant
affiche:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Le jeton d'accès est valide pendant 12 heures après son émission. Une fois le jeton d'accès expiré, le jeton d'actualisation peut être utilisé pendant 30 jours pour émettre un autre jeton d'accès sans requérir d'identifiants. Apigee recommande de demander un nouveau jeton d'accès uniquement après l'expiration du jeton de référent, plutôt que en saisissant des identifiants et en effectuant une nouvelle requête à chaque appel d'API.
Expiration des jetons
Une fois que votre jeton d'accès a expiré, vous pouvez l'utiliser pour obtenir un nouveau jeton de devoir renvoyer vos identifiants.
La manière dont vous actualisez votre jeton d'accès dépend de l'outil que vous utilisez:
acurl
: aucune action requise.acurl
actualise automatiquement le jeton d'accès lorsque vous envoyez une requête qui contient une requête obsolète.get_token
: appelezget_token
pour actualiser le jeton d'accès.- Service Edge OAuth2: envoyez une requête qui inclut les éléments suivants:
<ph type="x-smartling-placeholder">
- </ph>
- Jeton d'actualisation
- Paramètre de formulaire
grant_type
défini sur "refresh_token"
OAuth2 pour les utilisateurs machine
Vous pouvez créer un script d'accès automatisé à l'aide des utilitaires acurl
et get_token
aux API Edge avec l'authentification OAuth2
pour les utilisateurs machine. 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 '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
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 '' 'https://api.enterprise.apigee.com/v1/organizations/...'
Dans les deux exemples, définir la valeur de -m
sur une chaîne vide empêchera un utilisateur de machine
d’être invité à entrer un code MFA.