Dostosowywanie tokenów i kodów autoryzacji

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Informacje o metadanych tokenów

Apigee Edge generuje tokeny dostępu OAuth, tokeny odświeżania i kody autoryzacji oraz i przekazuje je do uwierzytelnionych aplikacji. W momencie wygenerowania Edge przechowuje te tokeny i kody. Później, gdy Edge odbiera przychodzące żądania do interfejsu API zawierające te tokeny lub kody, Edge używa klucza przechowywane informacje do autoryzowania żądań.

Gdy Edge generuje te artefakty OAuth, dołącza również metadane do tokena lub kodu. Dla: token dostępu jest na przykład powiązany z parami nazwa/wartość, które definiują czas ważności, aplikacji i dewelopera oraz inne informacje.

Reprezentacja tokena dostępu Edge w formacie JSON wygląda tak:

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

Dodawanie atrybutów niestandardowych do tokenów OAuth

Czasami warto dołączyć niestandardowe metadane do tokena dostępu. Możesz na przykład chcieć dodaj nazwę użytkownika, członkostwo w grupach lub role użytkownika, identyfikator klienta, identyfikator sesji lub inne dowolne informacje do tokena. W Apigee Edge dane te są nazywane „niestandardowymi” atrybutów”. Następnie, po zweryfikowaniu tokena w zakresie żądania do interfejsu API, dane są udostępniane serwerowi proxy interfejsu API za pomocą zmiennych kontekstowych. Serwer proxy API może sprawić, szczegółowe decyzje dotyczące autoryzacji lub routingu na podstawie danych niestandardowych token.

Aby dołączyć do tokena dowolne dane, użyj elementu <Attributes> w zasadę OAuthV2. Dostępne opcje określ nazwę atrybutu niestandardowego i wartość, jaką ma on mieć. Oto przykład: konfiguracja zasad generująca token i dołączająca atrybut niestandardowy o nazwie „tenant_list” do tokena:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

Możesz podać wiele atrybutów niestandardowych i dołączyć je domyślnie do kod autoryzacji (<Operation>GenerateAuthorizationCode</Operation>) lub token (<Operation>GenerateAccessToken</Operation>) w momencie i generowanie treści.

Gdy display ma wartość true (domyślnie), atrybuty niestandardowe są zwracane w odpowiedzi, gdzie mogą być widoczne dla aplikacji lub przekazywane użytkownikowi. Gdy display ma wartość false, atrybuty niestandardowe są przechowywane w danych. ale nie są zwracane w odpowiedzi. W obu przypadkach dane niestandardowe są dostępne do zasad na serwerze proxy API po zweryfikowaniu tokena.

Więcej informacji o opcji display wyświetlanie lub ukrywanie atrybutów niestandardowych w odpowiedzi.

Uzyskiwanie atrybutów niestandardowych w środowisku wykonawczym

W przypadku połączenia z numerem OAuthV2/VerifyAccessToken Apigee Edge weryfikuje token, wyszukując go w magazynie tokenów. Apigee Edge następnie wypełnia pole zestawu zmiennych kontekstowych zawierających informacje o tokenie. Obejmują one:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • wygasa_in //--in s
  • status
  • zakres
  • apiproduct.name*

Jeśli w tokenie znajdują się atrybuty niestandardowe, są one dostępne w zmienną kontekstową o nazwie accesstoken.{custom_attribute}. Przykład: załóżmy, że wystawiono token na podstawie przedstawionych powyżej zasad. Po zweryfikowaniu takiego tokena nastąpi być dodatkową zmienną kontekstową o nazwie accesstoken.tenant_list, zawierającą która była przechowywana w momencie generowania tokena.

Zasady lub warunki mogą się następnie odwoływać do tych zmiennych i modyfikować działanie na podstawie przechowywane w wartościach.

Ustawianie i aktualizowanie atrybutów niestandardowych w Czas trwania

W niektórych sytuacjach serwer proxy API ma aktualizować metadane powiązane z token dostępu w czasie działania podczas przetwarzania wywołania interfejsu API w Apigee Edge. Aby uzyskać pomoc, Apigee udostępnia zasady pobierania i ustawiania atrybutów tokenów. Więcej informacji: Pobierz informacje o OAuth V2 zasady i Ustaw protokół OAuth Zasady dotyczące informacji (wersja 2).

W każdej z tych zasad element AccessToken powinien odwoływać się do zmiennej, która który zawiera token dostępu.

Za pomocą interfejsów Edge API możesz też aktualizować atrybuty niestandardowe dołączone do tokena. Zobacz interfejs API dokumentacji Update Metoda tokena dostępu OAuth 2.0.