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_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 zasad jest definiowany przez schemat XML (.xsd
). Schematy zasad
są dostępne na GitHubie.
Informacje o błędzie
W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami
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 | Więcej informacji: ten post na karcie Społeczność Apigee z informacjami o rozwiązywaniu tego problemu. |
Błędy wdrażania
Więcej informacji o błędach wdrażania znajdziesz w komunikacie zgłoszonym w interfejsie.
Zmienne błędów
Te zmienne są ustawiane, gdy ta 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 czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. | 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>