Zaawansowane tematy dotyczące protokołu OAuth 2.0

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Korzystanie z tokenów OAuth innych firm

Zobacz Korzystanie z tokenów OAuth innych firm.

Przypisywanie wielu adresów URL wywołania zwrotnego

Jeśli używasz typu autoryzacji za pomocą kodu, podczas rejestrowania aplikacji dewelopera musisz podać adres URL wywołania zwrotnego. Adres URL wywołania zwrotnego zwykle wskazuje aplikację, która ma otrzymywać kod autoryzacji w imieniu aplikacji klienta. Dodatkowo ten ciąg adresu URL służy do weryfikacji. Klient musi wysłać ten adres URL do Apigee Edge podczas żądania kodów autoryzacji i tokenów dostępu, a parametr redirect_uri musi być zgodny z zarejestrowanym. Zobacz też Wysyłanie żądania tokenów dostępu i kodów autoryzacji.

Na przykład:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

W jednym zastosowaniu serwera proxy można określić kilka adresów URL wywołania zwrotnego. Możesz na przykład uwierzytelniać się w przypadku wielu domen. Przykład:

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

Edge nie obsługuje określania wielu adresów URL wywołania zwrotnego ani używania symboli wieloznacznych po zarejestrowaniu aplikacji dewelopera. Aby zrealizować ten przypadek użycia, możesz podać pusty adres URL wywołania zwrotnego podczas rejestrowania aplikacji dewelopera, a potem użyć w zasadach JavaScriptu logiki służącej do sprawdzania przychodzących identyfikatorów URI przekierowania.

Zmiana domyślnego sposobu działania operacji GenerateAuthCode w przypadku zwracania wartości

Domyślnie operacja GenerateAuthCode w zasadach OAuthV2 zwraca przekierowanie 302 do adresu URL wywołania zwrotnego z parametrem zapytania ?code zawierającym kod autoryzacji.

W niektórych przypadkach możesz chcieć zmienić to zachowanie. Możesz na przykład zwrócić odpowiedź 200 z uporządkowanymi danymi JSON zawierającymi kod.

Jednym ze sposobów na realizację tego przypadku użycia jest ustawienie właściwości GenerateResponse w zasadach OAuthV2 na false. Aby uzyskać wartość kodu autoryzacji ze zmiennej oauthv2authcode.{policy_name}.code, użyj zapisu ExtractVariable. Następnie możesz użyć Zasady przypisywania wiadomości, aby zwrócić kod w ładunku JSON ze stanem 200.

Sprawdzanie zgody użytkownika na korzystanie z aplikacji

Może być konieczne potwierdzenie, że użytkownik końcowy autoryzował aplikację. W tym celu możesz użyć interfejsu Audit API Apigee Edge.

Przykład wychodzącego wywołania OAuth

Zapoznaj się z przykładem outbound-oauth w repozytorium api-platform-samples w repozytorium Apigee w GitHub. Możesz sklonować przykład, wdrożyć go i go uruchomić. Ten przykład używa interfejsu Translator API od Microsoft Azure do tłumaczenia tweetów. Aby to zrobić, wykonuje wywołanie wychodzące, aby uzyskać token dostępu OAuth, a następnie umieszcza token w pamięci podręcznej przy użyciu zasad dotyczących pamięci podręcznej usługi interfejsu API. Używa przy tym tokena z pamięci podręcznej przy każdym wywołaniu wychodzącym. Zawiera też demonstracyjną aplikację przeglądarki, która służy do wywoływania proxy interfejsu API.