Zaawansowane tematy dotyczące protokołu OAuth 2.0

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Korzystanie z tokenów OAuth innych firm

Zobacz Korzystanie z tokenów OAuth innych firm.

Wyznaczanie wielu adresów URL wywołania zwrotnego

Gdy używasz typu przyznania kodu autoryzacji, musisz określić adres URL wywołania zwrotnego podczas rejestracji aplikacji dewelopera. Adres URL wywołania zwrotnego zwykle określa adres URL aplikacji, która jest przeznaczona do odbierania kodu autoryzacji w imieniu aplikacji klienckiej. Dodatkowo ten ciąg adresu URL jest używany do weryfikacji. Klient musi wysłać ten adres URL do Apigee Edge, gdy żąda kodów autoryzacji i tokenów dostępu, a parametr redirect_uri musi być zgodny z zarejestrowanym. Zobacz też Żądanie tokenów dostępu i kodów autoryzacji kodów.

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

Istnieje przypadek użycia, w którym w jednej aplikacji proxy można określić wiele adresów URL wywołania zwrotnego. Możesz na przykład chcieć uwierzytelnić się w wielu domenach. 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 podczas rejestracji aplikacji dewelopera. Aby zrealizować ten przypadek użycia, możesz określić pusty adres URL wywołania zwrotnego podczas rejestracji aplikacji dewelopera, a następnie umieścić logikę w zasadzie JavaScript, aby sprawdzić przychodzące adresy URI przekierowania.

Zmiana domyślnego zachowania operacji GenerateAuthCode

Domyślnie operacja GenerateAuthCode zasady OAuthV2 zwraca przekierowanie 302 na adres 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 chcieć zwrócić odpowiedź 200 ze strukturalnym kodem JSON zawierającym kod.

Jednym ze sposobów na osiągnięcie tego celu jest ustawienie właściwości GenerateResponse zasady OAuthV2 na false. Użyj zasady ExtractVariable, aby pobrać wartość kodu autoryzacji ze zmiennej oauthv2authcode.{policy_name}.code. Następnie możesz użyć zasady AssignMessage, aby zwrócić kod w ładunku JSON ze stanem 200.

Kontrolowanie zgody użytkownika końcowego aplikacji

Może być konieczne sprawdzenie, czy użytkownik końcowy aplikacji autoryzował aplikację. Możesz to zrobić za pomocą interfejsu Apigee Edge Audit API.

Przykładowy OAuth wychodzący

Zobacz przykład outbound-oauth w repozytorium Apigee api-platform-samples na GitHubie. Możesz sklonować ten przykład, wdrożyć go i uruchomić. Ten przykład używa interfejsu Microsoft Azure Translator API do tłumaczenia tweetów. W tym celu wykonuje wywołanie wychodzące, aby uzyskać token dostępu OAuth, a następnie zapisuje go w pamięci podręcznej za pomocą zasad buforowania usług API , ponownie używając tokena z pamięci podręcznej za każdym razem, gdy wykonywane jest wywołanie wychodzące. Zawiera też przykładową aplikację przeglądarki, która służy do wywoływania proxy interfejsu API.