Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Apigee Edge umożliwia wykonywanie wywołań interfejsu API Edge, które są uwierzytelniane za pomocą tokenów OAuth2. Obsługa OAuth2 jest domyślnie włączona na kontach Edge for the Cloud. Jeśli korzystasz z Edge w chmurze prywatnej, nie możesz używać OAuth2 bez wcześniejszego skonfigurowania SAML lub LDAP.
Jak działa OAuth2 (w przypadku interfejsu Apigee Edge API)
Wywołania interfejsu Apigee Edge API wymagają uwierzytelnienia, abyśmy mogli mieć pewność, że jesteś osobą, za którą się podajesz. Aby Cię uwierzytelnić, wymagamy, aby wraz z żądaniem dostępu do interfejsu API został przesłany token dostępu OAuth2.
Jeśli na przykład chcesz uzyskać szczegółowe informacje o organizacji w Edge, wyślij żądanie na adres URL podobny do tego:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Nie możesz jednak wysłać prośby bez podania informacji o sobie. W przeciwnym razie każdy mógłby zobaczyć szczegóły Twojej organizacji.
W tym celu używamy protokołu OAuth2: aby Cię uwierzytelnić, musisz przesłać nam w tym żądaniu również token dostępu. Token dostępu informuje nas, kim jesteś, dzięki czemu możemy mieć pewność, że masz uprawnienia do wyświetlania szczegółowych informacji o organizacji.
Token możesz uzyskać, wysyłając dane logowania do usługi Edge OAuth2. Usługa odpowiada tokenami dostępu i odświeżania.
Przepływ OAuth2: żądanie początkowe
Na poniższym obrazie przedstawiono przepływ OAuth2 podczas pierwszego dostępu do interfejsu Edge API:
Jak widać na rysunku 1, gdy wysyłasz pierwsze żądanie do interfejsu Edge API:
- Prosisz o token dostępu. Możesz to zrobić za pomocą interfejsu Edge API, acurl lub
get_token. Na przykład:get_token Enter username:
ahamilton@apigee.comEnter 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 - Usługa Edge OAuth2 odpowiada tokenem dostępu i wyświetla go w
stdout, np.:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
Narzędzia
acurliget_tokenzapisują w sposób niewidoczny tokeny dostępu i odświeżania w~/.sso-cli(token odświeżania nie jest zapisywany wstdout). Jeśli do uzyskiwania tokenów używasz usługi Edge OAuth2, musisz samodzielnie zapisać je do późniejszego wykorzystania. - Wysyłasz żądanie do interfejsu Edge API z tokenem dostępu.
acurlautomatycznie dołącza token, np.:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Jeśli używasz innego klienta HTTP, pamiętaj o dodaniu tokena dostępu. Na przykład:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- Interfejs Edge API wykonuje żądanie i zwykle zwraca odpowiedź z danymi.
Przepływ OAuth2: kolejne żądania
W przypadku kolejnych żądań nie musisz wymieniać danych logowania na token. Zamiast tego możesz po prostu podać token dostępu, który już masz, o ile nie wygasł:
Jak widać na rysunku 2, jeśli masz już token dostępu:
- Wysyłasz żądanie do interfejsu Edge API z tokenem dostępu.
acurlautomatycznie dołącza token. Jeśli używasz innych narzędzi, musisz dodać token ręcznie. - Interfejs Edge API wykonuje żądanie i zwykle zwraca odpowiedź z danymi.
Przepływ OAuth 2.0: gdy token dostępu wygaśnie
Gdy token dostępu wygaśnie (po 12 godzinach), możesz użyć tokena odświeżania, aby uzyskać nowy token dostępu:
Jak widać na rysunku 3, gdy token dostępu wygaśnie:
- Wysyłasz żądanie do interfejsu Edge API, ale Twój token dostępu wygasł.
- Interfejs Edge API odrzuca Twoje żądanie jako nieautoryzowane.
- Wysyłasz token odświeżania do usługi OAuth2 Edge. Jeśli korzystasz z
acurl, odbywa się to automatycznie. - Usługa Edge OAuth2 odpowiada nowym tokenem dostępu.
- Wysyłasz żądanie do interfejsu Edge API z nowym tokenem dostępu.
- Interfejs Edge API wykonuje żądanie i zwykle zwraca odpowiedź z danymi.
Pobieranie tokenów
Aby uzyskać token dostępu, który możesz wysłać do interfejsu Edge API, możesz użyć tych narzędzi Apigee oraz narzędzia takiego jak curl:
- Narzędzie get_token: wymienia dane logowania Apigee na tokeny dostępu i odświeżania, których możesz używać do wywoływania interfejsu Edge API.
- Narzędzie acurl: zapewnia wygodną otokę standardowego polecenia
curl. Tworzy żądania HTTP do interfejsu Edge API, pobiera tokeny dostępu i odświeżania zget_tokeni przekazuje token dostępu do interfejsu Edge API. - Punkty końcowe tokena w usłudze Edge OAuth2: wymieniaj dane logowania Apigee na tokeny dostępu i odświeżania za pomocą wywołania interfejsu Edge API.
Te narzędzia wymieniają dane logowania do konta Apigee (adres e-mail i hasło) na tokeny o tych okresach ważności:
- Tokeny dostępu wygasają po 12 godzinach.
- Tokeny odświeżania wygasają po 30 dniach.
Dlatego po pomyślnym wywołaniu interfejsu API za pomocą acurl lub get_token możesz nadal używać pary tokenów przez 30 dni. Po wygaśnięciu musisz ponownie wpisać dane logowania i uzyskać nowe tokeny.
Dostęp do interfejsu Edge API za pomocą protokołu OAuth2
Aby uzyskać dostęp do interfejsu Edge API, wyślij żądanie do punktu końcowego API i dołącz token dostępu.
Możesz to zrobić za pomocą dowolnego klienta HTTP, w tym narzędzia wiersza poleceń, takiego jak curl, interfejsu internetowego, takiego jak Postman, lub narzędzia Apigee, takiego jak acurl.
Dostęp do interfejsu Edge API za pomocą acurl i curl jest opisany w dalszej części tego artykułu.
Używanie parametru acurl
Aby uzyskać dostęp do interfejsu Edge API za pomocą acurl, pierwsze żądanie musi zawierać Twoje dane logowania. Usługa Edge OAuth2 odpowiada tokenami dostępu i tokenami odświeżania. acurl
zapisuje tokeny lokalnie.
W przypadku kolejnych żądań acurl używa zapisanych tokenów w ~/.sso-cli, dzięki czemu nie musisz ponownie podawać danych logowania, dopóki tokeny nie wygasną.
Poniższy przykład pokazuje początkowe żądanie acurl, które pobiera szczegóły organizacji „ahamilton-eval”:
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" ]
Oprócz uzyskania szczegółowych informacji o organizacji ten przykład pokazuje też drugie żądanie, które pobiera listę zasad w ramach serwera proxy interfejsu API „helloworld”. Drugie żądanie używa skrótu „o” zamiast „organizations” w adresie URL.
Pamiętaj, że acurl automatycznie przekazuje token dostępu w drugiej prośbie. Nie musisz przekazywać danych logowania użytkownika, gdy acurl przechowuje tokeny OAuth2. Pobiera token z ~/.sso-cli na potrzeby kolejnych połączeń.
Więcej informacji znajdziesz w artykule Korzystanie z acurl do uzyskiwania dostępu do interfejsu Edge API.
Używanie curl
Aby uzyskać dostęp do interfejsu Edge API, możesz użyć curl. Aby to zrobić, musisz najpierw uzyskać tokeny dostępu i odświeżania. Możesz je uzyskać za pomocą narzędzia takiego jak get_token lub usługi Edge OAuth2.
Po zapisaniu tokena dostępu przekaż go w nagłówku Authorization wywołań interfejsu Edge API, jak pokazano w tym przykładzie:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Token dostępu jest ważny przez 12 godzin od momentu jego wydania. Po wygaśnięciu tokena dostępu token odświeżania może być używany przez 30 dni do wydawania kolejnego tokena dostępu bez konieczności podawania danych logowania. Apigee zaleca, aby o nowy token dostępu prosić dopiero po wygaśnięciu tokena odświeżania, zamiast wpisywać dane logowania i wysyłać nowe żądanie przy każdym wywołaniu interfejsu API.
Wygaśnięcie tokena
Gdy token dostępu wygaśnie, możesz użyć tokena odświeżania, aby uzyskać nowy token dostępu bez ponownego przesyłania danych logowania.
Sposób odświeżania tokena dostępu zależy od używanego narzędzia:
acurl: Nie musisz nic robić.acurlautomatycznie odświeża token dostępu, gdy wysyłasz żądanie zawierające nieaktualny token.get_token: wywołajget_token, aby odświeżyć token dostępu.- Usługa Edge OAuth2: wyślij żądanie, które zawiera:
- Token odświeżania
- Parametr formularza
grant_typeustawiony na „refresh_token”
OAuth2 dla użytkowników maszyn
Możesz używać narzędzi acurl i get_token do tworzenia skryptów automatyzujących dostęp do interfejsów API Edge z uwierzytelnianiem OAuth2 dla użytkowników maszynowych. W tym przykładzie pokazujemy, jak użyć get_token, aby poprosić o token dostępu, a następnie dodać jego wartość do wywołania curl:
USER=me@example.comPASS=not-that-secretTOKEN=$(get_token -u $USER:$PASS -m '')curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Możesz też połączyć żądanie tokena i wywołanie curl za pomocą narzędzia acurl.
Na przykład:
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
W obu przykładach ustawienie wartości -m na pusty ciąg znaków uniemożliwi wyświetlanie użytkownikowi komputera prośby o kod uwierzytelniania dwuskładnikowego.