Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Co
Umożliwia dodawanie lub aktualizowanie atrybutów niestandardowych powiązanych z tokenem dostępu. Atrybuty niestandardowe może zawierać np. nazwę działu, identyfikator klienta lub identyfikator sesji. Zobacz też Dostosowywanie tokenów Authorization Codes (Kody autoryzacji).
Możesz tylko dodawać lub modyfikować atrybuty niestandardowe. Za pomocą tej zasady nie można zmieniać pól takich jak zakres, stan, wygasa_adres, adres e-mail dewelopera, client_id, org_name lubrefresh_count. Jeśli już istnieje, ta zasada go aktualizuje. Jeśli taki plik nie istnieje, zostanie dodany przez zasadę. token dostępu musi być prawidłowy i w stanie zatwierdzonym.
Przykłady
Podstawowy przykład
Poniżej znajduje się przykładowa zasada używana do zaktualizowania tokena dostępu OAuth 2.0. Przykład poniżej
znajduje token dostępu w wiadomości żądania, wyszukując parametr zapytania o nazwie
access_token Gdy aplikacja kliencka przedstawia token dostępu, zasada
poniżej zlokalizuje token dostępu w parametrze zapytania. Następnie zaktualizuje uprawnienia dostępu
przez token. Dodaje do tabeli właściwość niestandardową o nazwie department.id
profil.
<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 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>
<SetOAuthV2Info> atrybuty
<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 |
<AccessToken> element
Określa zmienną, w której znajduje się token dostępu. Jeśli na przykład token dostępu to
do wiadomości jako parametru zapytania, określ
request.queryparam.access_token Możesz użyć dowolnej prawidłowej zmiennej, która odwołuje się do
token. Można też przekazać ciąg tokena literału (rzadkie litery).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| Domyślne: | Nie dotyczy |
| Obecność: | Wymagane |
| Typ: | Ciąg znaków |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| odsyłacz |
Zmienna tokena dostępu. Wartość jest zwykle pobierana ze zmiennej przepływu. |
Nie dotyczy | Opcjonalnie |
<Attributes> element
Zestaw atrybutów w profilu tokena dostępu, które będą zmodyfikowane lub uzupełnione.
| Domyślne: | Nie dotyczy |
| Obecność: | Wymagane |
| Typ: | Nie dotyczy |
<Attributes>/<Attribute> element
Pojedynczy atrybut do zaktualizowania.
Atrybut name określa właściwość niestandardową profilu tokena dostępu, który ma zostać Zaktualizowano. Z tego przykładu dowiesz się, jak użyć wskazanej zmiennej i wartości statycznej.
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| Domyślne: | Nie dotyczy |
| Obecność: | Opcjonalnie |
| Typ: | Nie dotyczy |
Atrybuty
| Atrybut | Opis | Domyślny | Obecność |
|---|---|---|---|
| nazwa | Nazwa atrybutu profilu, który chcesz dodać lub zmienić. | Nie dotyczy | |
| odsyłacz |
Wartość do przypisania do atrybutu profilu. |
Nie dotyczy | Opcjonalnie |
Zmienne przepływu
Po udanym działaniu zostaną ustawione następujące zmienne procesu:
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 zasad jest definiowany przez schemat XML (.xsd). Schematy zasad
są dostępne na GitHubie.
Informacje o błędzie
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>