Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Co
Umożliwia dodawanie lub aktualizowanie atrybutów niestandardowych powiązanych z tokenem dostępu. Atrybuty niestandardowe mogą obejmować nazwę działu, identyfikator klienta lub identyfikator sesji. Zobacz też dostosowywanie tokenów i kodów autoryzacji.
Możesz tylko dodawać lub modyfikować atrybuty niestandardowe. Za pomocą tej zasady nie możesz zmieniać pól, takich jak zakres, stan, wygasa data ważności, deweloper_email, identyfikator klienta, nazwa organizacji czy odświeżenie_liczby. Jeśli atrybut już istnieje, ta zasada go aktualizuje. Jeśli nie istnieje, jest dodawana przez zasadę. Przywoływany token dostępu musi być prawidłowy i zatwierdzony.
Sample
Podstawowy przykład
Poniżej znajdziesz przykład zasady używanej do aktualizowania tokena dostępu OAuth 2.0. Przykład poniżej pozwala znaleźć token dostępu w wiadomości żądania, wyszukując parametr zapytania o nazwie access_token
. Gdy aplikacja kliencka przedstawi token dostępu, poniższe zasady zlokalizują go w parametrze zapytania. Następnie zostanie zaktualizowany profil tokena dostępu. Spowoduje to dodanie do profilu właściwości niestandardowej o nazwie department.id
.
<SetOAuthV2Info name="SetOAuthV2Info"> <AccessToken ref="request.queryparam.access_token"></AccessToken> <Attributes> <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute> </Attributes> </SetOAuthV2Info>
Odniesienie do elementu
Dokumentacja elementów opisuje elementy i atrybuty zasady SetOAuthV2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1"> <DisplayName>Set OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <Attributes/> </SetOAuthV2Info> </xml>
Atrybuty <SetOAuthV2Info>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
Tabela poniżej zawiera opis atrybutów wspólnych dla wszystkich elementów nadrzędnych zasad:
Atrybut | Opis | Domyślne | Obecność |
---|---|---|---|
name |
Wewnętrzna nazwa zasady. Wartość atrybutu Opcjonalnie możesz użyć elementu |
Nie dotyczy | Wymagane |
continueOnError |
Ustaw wartość Ustaw jako |
false | Opcjonalnie |
enabled |
Ustaw jako Ustaw wartość |
prawda | Opcjonalnie |
async |
Ten atrybut został wycofany. |
false | Wycofano |
Element <DisplayName>
Użyj oprócz atrybutu name
, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.
<DisplayName>Policy Display Name</DisplayName>
Domyślne |
Nie dotyczy Jeśli pominiesz ten element, zostanie użyta wartość atrybutu |
---|---|
Obecność | Opcjonalnie |
Typ | Ciąg znaków |
Element <AccessToken>
Określa zmienną, w której znajduje się token dostępu. Jeśli na przykład token dostępu jest dołączony do żądania wiadomości jako parametr zapytania, wpisz request.queryparam.access_token
. Możesz użyć dowolnej prawidłowej zmiennej, która odwołuje się do tokena. Można też przekazać ciąg tokena dosłownego (rzadki przypadek).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
Domyślnie: | Nie dotyczy |
Obecność: | Wymagane |
Typ: | Ciąg znaków |
Atrybuty
Atrybut | Opis | Domyślne | Obecność |
---|---|---|---|
referencja |
Zmienna tokena dostępu. Zwykle pobierany ze zmiennej przepływu. |
Nie dotyczy | Opcjonalnie |
Element <Attributes>
Zestaw atrybutów w profilu tokena dostępu, które zostaną zmodyfikowane lub uzupełnione.
Domyślnie: | Nie dotyczy |
Obecność: | Wymagane |
Typ: | Nie dotyczy |
Element <Attributes>/<Attribute>
Pojedynczy atrybut do zaktualizowania.
Atrybut name wskazuje właściwość niestandardową profilu tokena dostępu, która ma zostać zaktualizowana. W tym przykładzie pokazujemy, jak używać wskazanej zmiennej i wartości statycznej.
<Attributes> <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute> <Attribute name="foo">bar</Attribute> </Attributes>
Domyślnie: | Nie dotyczy |
Obecność: | Opcjonalnie |
Typ: | Nie dotyczy |
Atrybuty
Atrybut | Opis | Domyślne | Obecność |
---|---|---|---|
nazwa | Nazwa atrybutu profilu do dodania lub zmiany. | Nie dotyczy | |
referencja |
Wartość przypisana do atrybutu profilu. |
Nie dotyczy | Opcjonalnie |
Zmienne przepływu
Jeśli wszystko się uda, ustawione zostaną te zmienne przepływu:
oauthv2accesstoken.{policyName}.access_token
oauthv2accesstoken.{policyName}.client_id
oauthv2accesstoken.{policyName}.refresh_count
oauthv2accesstoken.{policyName}.organization_name
oauthv2accesstoken.{policyName}.expires_in //--in seconds
oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
oauthv2accesstoken.{policyName}.issued_at
oauthv2accesstoken.{policyName}.status
oauthv2accesstoken.{policyName}.api_product_list
oauthv2accesstoken.{policyName}.token_type
oauthv2accesstoken.{policyName}.{custom_attribute_name}
Schemat
Każdy typ zasady jest definiowany przez schemat XML (.xsd
). Schematy zasad są dostępne na GitHubie.
Informacje o błędach
W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.
Błędy w czasie wykonywania
Te błędy mogą wystąpić podczas wykonywania zasady.
Kod błędu | Stan HTTP | Przyczyna |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | Token dostępu wysłany do zasady stracił ważność. |
steps.oauth.v2.invalid_access_token |
500 | Token dostępu wysłany do zasady jest nieprawidłowy. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Informacje o tym, jak rozwiązać ten problem, znajdziesz w tym poście w społeczności Apigee. |
Błędy wdrażania
Informacje o błędach wdrażania znajdziesz w komunikacie zgłoszonym w interfejsie.
Zmienne błędów
Te zmienne są ustawiane, gdy zasada wywołuje błąd w czasie działania.
Zmienne | Gdzie | Przykład |
---|---|---|
fault.name="fault_name" |
fault_name to nazwa błędu podana w tabeli Błędy środowiska wykonawczego powyżej. Nazwa błędu to ostatnia część kodu. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Przykładowa odpowiedź na błąd
{ "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
Przykładowa reguła błędu
<FaultRule name=SetOAuthV2Info Faults"> <Step> <Name>AM-InvalidTokenResponse</Name> <Condition>(fault.name = "invalid_access_token")</Condition> </Step> <Condition>(oauthV2.failed = true) </Condition> </FaultRule>