Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Co
Umożliwia dodawanie lub aktualizowanie atrybutów niestandardowych powiązanych z tokenem dostępu. Atrybuty niestandardowe mogą obejmować takie informacje jak nazwa działu, identyfikator klienta lub identyfikator sesji. Zobacz też Dostosowywanie tokenów i kodów autoryzacji.
Możesz tylko dodawać lub modyfikować atrybuty niestandardowe. Nie możesz używać tej zasady do zmiany pól takich jak zakres, stan, expires_in, developer_email, client_id, org_name czy refresh_count. Jeśli atrybut już istnieje, ta zasada go aktualizuje. Jeśli nie istnieje, zasada go dodaje. Token dostępu, do którego się odwołujesz, musi być prawidłowy i mieć zatwierdzony stan.
Przykłady
Podstawowy przykład
Poniżej znajdziesz przykład zasady używanej do aktualizowania tokena dostępu OAuth 2.0. Poniższy przykład
lokalizuje token dostępu w wiadomości żądania, wyszukując parametr zapytania o nazwie
access_token. Gdy aplikacja kliencka przedstawi token dostępu, zasada
poniżej znajdzie go w parametrze zapytania. Następnie zaktualizuje profil tokena dostępu. Do profilu doda właściwość niestandardową o nazwie department.id do
profilu.
<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
Odniesienie do elementu 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">
W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
name |
Wewnętrzna nazwa zasady. Wartość atrybutu Opcjonalnie możesz użyć elementu |
Nie dotyczy | Wymagane |
continueOnError |
Ustaw jako Ustaw jako |
fałsz | Opcjonalnie |
enabled |
Aby egzekwować zasadę, ustaw wartość Aby wyłączyć zasadę, ustaw wartość |
prawda | Opcjonalnie |
async |
Ten atrybut został wycofany. |
fałsz | Wycofano |
<DisplayName> element
Używaj oprócz atrybutu name do oznaczania zasady w
edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.
<DisplayName>Policy Display Name</DisplayName>
| Domyślny |
Nie dotyczy Jeśli pominiesz ten element, atrybut |
|---|---|
| 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 wiadomości żądania jako parametr zapytania, określ
request.queryparam.access_token. Możesz użyć dowolnej prawidłowej zmiennej, która odwołuje się do
tokena. Możesz też przekazać dosłowny ciąg tokena (rzadki przypadek).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| Nazwą domyślną jest | Nie dotyczy |
| Obecność | Wymagane |
| Typ | Ciąg znaków |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| ref |
Zmienna tokena dostępu. Zazwyczaj pobierana ze zmiennej przepływu. |
Nie dotyczy | Opcjonalny |
Element <Attributes>
Zestaw atrybutów w profilu tokena dostępu, które zostaną zmodyfikowane lub rozszerzone.
| Nazwą domyślną jest | Nie dotyczy |
| Obecność | Wymagane |
| Typ | Nie dotyczy |
Element <Attributes>/<Attribute>
Pojedynczy atrybut do zaktualizowania.
Atrybut name określa właściwość niestandardową profilu tokena dostępu, która ma zostać zaktualizowana. Ten przykład pokazuje, jak używać wartości zmiennej, do której się odwołujesz, oraz wartości statycznej.
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| Nazwą domyślną jest | Nie dotyczy |
| Obecność | Opcjonalny |
| Typ | Nie dotyczy |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| name | Nazwa atrybutu profilu, który chcesz dodać lub zmienić. | Nie dotyczy | |
| ref |
Wartość, która ma zostać przypisana do atrybutu profilu. |
Nie dotyczy | Opcjonalny |
Zmienne przepływu
W przypadku powodzenia zostaną ustawione te zmienne przepływu:
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{policyName}.{custom_attribute_name}
Schemat
Każdy typ zasady jest zdefiniowany przez schemat XML (.xsd). Schematy zasad są dostępne na GitHubie.
Odniesienie do błędu
W tej sekcji opisujemy kody błędów i komunikaty o błędach zwracane przez Edge oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli tworzysz reguły błędów do obsługi błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach związanych z zasadami 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 wygasł. |
steps.oauth.v2.invalid_access_token |
500 | Token dostępu wysłany do zasad jest nieprawidłowy. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Informacje o rozwiązywaniu tego problemu znajdziesz w tym poście na forum społeczności Apigee. |
Błędy wdrażania
Informacje o błędach wdrażania znajdziesz w komunikacie wyświetlanym w interfejsie.
Zmienne błędów
Te zmienne są ustawiane, gdy ta zasada spowoduje błąd w czasie działania.
| Zmienne | Gdzie | Przykład |
|---|---|---|
fault.name="fault_name" |
fault_name to nazwa błędu wymienionego w tabeli Błędy środowiska wykonawczego powyżej. Nazwa usterki to ostatnia część kodu usterki. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name to nazwa zasady, która spowodowała błąd, określona przez użytkownika. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name to nazwa zasady, która spowodowała błąd, określona przez użytkownika. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name to nazwa zasady, która spowodowała błąd, określona przez użytkownika. | 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>