Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Informacje o metadanych tokena
Apigee Edge generuje tokeny dostępu OAuth, tokeny odświeżania i kody autoryzacji oraz udostępnia je uwierzytelnionym aplikacjom. Podczas generowania Edge przechowuje te tokeny i kody. Gdy Edge otrzyma przychodzące żądania API zawierające te tokeny lub kody, Edge użyje przechowywanych informacji do autoryzacji żądań.
Gdy Edge generuje te artefakty OAuth, dołącza też do tokena lub kodu metadane. Na przykład token dostępu jest powiązany z parami nazwa/wartość, które określają czas ważności, powiązaną aplikację i dewelopera oraz inne informacje.
Reprezentacja JSON tokena dostępu Edge 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ć do tokena dostępu metadane niestandardowe. Możesz na przykład dodać do tokena nazwę użytkownika, informacje o przynależności do grupy lub rolach użytkownika, identyfikator klienta, identyfikator sesji, lub inne dowolne informacje. W Apigee Edge te dane są nazywane „atrybutami niestandardowymi”. Następnie, gdy token zostanie zweryfikowany w zakresie żądania do interfejsu API, te dane będą dostępne dla proxy interfejsu API za pomocą zmiennych kontekstowych. Proxy API może podejmować szczegółowe decyzje dotyczące autoryzacji lub routingu na podstawie danych niestandardowych dołączonych do tokena.
Aby dołączyć dowolne dane do tokena, użyj elementu <Attributes> w
zasadach OAuthV2. Możesz
określić nazwę atrybutu niestandardowego i jego wartość. Oto na przykład konfiguracja zasad, która generuje token i dołącza do niego atrybut niestandardowy o nazwie "tenant_list" do tokenu:
<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 określić wiele atrybutów niestandardowych i dołączyć je niejawnie do
kodu autoryzacji (<Operation>GenerateAuthorizationCode</Operation>) lub
tokena (<Operation>GenerateAccessToken</Operation>) w momencie
generowania.
Gdy display jest ustawiony na true (wartość domyślna), atrybuty niestandardowe są
zwracane w odpowiedzi, gdzie mogą być widoczne dla aplikacji lub przekazywane do użytkownika.
Gdy display jest ustawiony na false, atrybuty niestandardowe są przechowywane w magazynie danych, ale nie są zwracane w wiadomości z odpowiedzią. W obu przypadkach dane niestandardowe są dostępne
dla zasad w proxy API po zweryfikowaniu tokena.
Więcej informacji o opcji display znajdziesz w artykule
Wyświetlanie lub ukrywanie atrybutów niestandardowych w odpowiedzi.
Pobieranie atrybutów niestandardowych w czasie działania
Gdy nastąpi wywołanie OAuthV2/VerifyAccessToken,
Apigee Edge weryfikuje token, wyszukując go w magazynie tokenów. Apigee Edge wypełnia następnie a
zestaw 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
- expires_in //--in seconds
- status
- scope
- apiproduct.name*
Jeśli token zawiera atrybuty niestandardowe, są one dostępne w
zmiennej kontekstowej o nazwie accesstoken.{custom_attribute}. Załóżmy na przykład,
że token został wydany na podstawie zasad pokazanych powyżej. Po zweryfikowaniu takiego tokena pojawi się
dodatkowa zmienna kontekstowa o nazwie accesstoken.tenant_list, która będzie zawierać
wartość zapisaną w momencie generowania tokena.
Zasady lub warunki mogą odwoływać się do tych zmiennych i modyfikować zachowanie na podstawie przechowywanych w nich wartości.
Ustawianie i aktualizowanie atrybutów niestandardowych w czasie działania
W niektórych sytuacjach możesz chcieć, aby proxy API aktualizowało metadane powiązane z tokenem dostępu w czasie działania, gdy wywołanie API jest przetwarzane w Apigee Edge. Aby to ułatwić, Apigee udostępnia zasady pobierania i ustawiania atrybutów tokena. Więcej informacji znajdziesz w artykułach Zasady pobierania informacji o OAuth V2 i Zasady ustawiania informacji o OAuth V2.
AccessToken powinien odwoływać się do zmiennej, która
zawiera token dostępu.
Możesz też użyć interfejsów API Edge, aby zaktualizować atrybuty niestandardowe dołączone do tokena. Więcej informacji znajdziesz w dokumentacji interfejsu API dotyczącej metody aktualizowania tokena dostępu OAuth 2.0.