Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info

Omówienie
unieważnia tokeny dostępu OAuth2 powiązane z identyfikatorem aplikacji dewelopera lub identyfikatorem użytkownika aplikacji (lub z obydwoma).
Aby wygenerować token dostępu OAuth 2.0, użyj zasad OAuth 2. Token wygenerowany przez Apigee ma następujący format:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Element application_name
zawiera identyfikator aplikacji dewelopera powiązany z tokenem.
Domyślnie Apigee nie uwzględnia w tokenie identyfikatora użytkownika. Możesz skonfigurować Apigee tak, aby uwzględniał identyfikator użytkownika, dodając element <AppEndUser>
do zasad OAuthv2:
<OAuthV2 name="GenerateAccessTokenClient"> <Operation>GenerateAccessTokenV/Operation> ... <AppEndUser>request.queryparam.app_enduser</AppEndUser> </OAuthV2>
W tym przykładzie podaj identyfikator użytkownika w ramach zasad OAuthv2 w parametrze zapytania o nazwie app_enduser
.
Identyfikator użytkownika końcowego jest następnie dołączany do elementu app_enduser
w tokenie:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Unieważnianie identyfikatora aplikacji dewelopera
Unieważnij tokeny dostępu OAuth2 powiązane z identyfikatorem aplikacji dewelopera. Wszystkie tokeny dostępu OAuth2 wygenerowane przez Apigee zawierają identyfikator aplikacji dewelopera powiązanej z tokenem. Następnie możesz unieważnić tokeny na podstawie tego identyfikatora aplikacji.
Aby uzyskać listę identyfikatorów aplikacji konkretnego dewelopera, użyj interfejsu Developer apps API.
Aby uzyskać szczegółowe informacje o aplikacji, możesz też użyć interfejsu API dla aplikacji dla deweloperów.
Unieważnianie uprawnień według identyfikatora użytkownika końcowego aplikacji
Unieważnianie tokenów dostępu OAuth2 powiązanych z identyfikatorem konkretnego użytkownika końcowego aplikacji. To token powiązany z identyfikatorem użytkownika, któremu zostały wystawione tokeny.
Domyślnie w tokenie dostępu OAuth nie ma pola identyfikatora użytkownika. Aby umożliwić odwoływanie tokenów dostępu OAuth 2.0 według identyfikatora użytkownika, musisz skonfigurować zasady OAuth 2 tak, aby zawierały identyfikator użytkownika w tokenie, jak pokazano powyżej.
Aby uzyskać identyfikator użytkownika aplikacji, użyj interfejsu API aplikacji dla deweloperów.
Przykłady
W tych przykładach do unieważniania tokenów dostępu OAuth 2 używana jest zasada unieważniania OAuth 2 v2.
Identyfikator aplikacji dewelopera
Aby unieważnić tokeny dostępu według identyfikatora aplikacji dewelopera, użyj elementu <AppId>
w swoich zasadach.
W tym przykładzie identyfikator aplikacji dewelopera dla tokena dostępu ma być znaleziony w parametrze zapytania o nazwie app_id
:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> </RevokeOAuthV2>
Na podstawie identyfikatora aplikacji dewelopera zasada unieważnia tokena dostępu.
Cofnij przed sygnaturą czasową
Aby cofnąć tokeny dostępu według identyfikatora aplikacji dewelopera wygenerowane przed określoną datą i godziną, użyj elementu <RevokeBeforeTimestamp>
w swoich zasadach. <RevokeBeforeTimestamp>
określa czas UTC w milisekundach. Wszystkie tokeny wydane przed tym terminem zostaną cofnięte.
W tym przykładzie odwołujemy tokeny dostępu aplikacji dewelopera utworzonej przed 1 lipca 2019 r.:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp> </RevokeOAuthV2>
Element <RevokeBeforeTimestamp>
przyjmuje 64-bitową (długą) liczbę całkowitą, która reprezentuje liczbę milisekund, które upłynęły od północy 1 stycznia 1970 r. czasu UTC.
Element referencyjny
Ten element zawiera opis elementów i atrybutów zasady RevokeOAuthV2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AppId ref="variable"></AppId> <EndUserId ref="variable"></EndUserId> <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp> <Cascade>false</Cascade> </RevokeOAuthV2>
Atrybuty <RevokeOAuthV2>
<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">
W tabeli poniżej 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 na Ustaw na |
fałsz | Opcjonalny |
enabled |
Ustaw na Ustaw wartość na |
prawda | Opcjonalny |
async |
Ten atrybut został wycofany. |
fałsz | Wycofano |
Element <DisplayName>
Oprócz atrybutu name
możesz użyć innej nazwy w języku naturalnym, aby oznaczyć zasadę w edytorze zastępczym interfejsu zarządzania.
<DisplayName>Policy Display Name</DisplayName>
Domyślny |
Nie dotyczy Jeśli pominiesz ten element, zostanie użyta wartość atrybutu |
---|---|
Obecność | Opcjonalny |
Typ | Ciąg znaków |
Element <AppId>
Określa identyfikator aplikacji dewelopera, którego dotyczą tokeny do anulowania. Przekaż zmienną zawierającą identyfikator aplikacji lub dosłowny identyfikator aplikacji.
<AppId>appIdString</AppId> or: <AppId ref="request.queryparam.app_id"></AppId>
Domyślny |
|
---|---|
Obecność |
Opcjonalny |
Typ | Ciąg znaków |
Prawidłowe wartości |
Zmienna przepływu zawierająca ciąg znaków identyfikatora aplikacji lub ciąg znaków dosłownych. |
Element <Cascade>
Jeśli true
i masz tradycyjny nieprzezroczysty token dostępu, oba tokeny (token odświeżania i token dostępu) zostaną cofnięte, jeśli <AppId>
lub <EndUserId>
będą pasować.
Jeśli false
,
anulowany jest tylko token dostępu, a token odświeżania pozostaje bez zmian. Takie samo zachowanie występuje tylko w przypadku zaciemnionych tokenów dostępu.
<Cascade>false<Cascade>
Domyślny |
fałsz |
---|---|
Obecność |
Opcjonalny |
Typ | Wartość logiczna |
Prawidłowe wartości | true lub false |
Element <EndUserId>
Określa identyfikator użytkownika aplikacji, którego token ma zostać cofnięty. Przekaż zmienną zawierającą identyfikator użytkownika lub ciąg znaków tokenu.
<EndUserId>userIdString</EndUserId> or: <EndUserId ref="request.queryparam.access_token"></EndUserId>
Domyślny |
|
---|---|
Obecność |
Opcjonalny |
Typ | Ciąg znaków |
Prawidłowe wartości |
Zmienna przepływu zawierająca ciąg znaków identyfikatora użytkownika lub ciąg znaków literackich. |
Element <RevokeBeforeTimestamp>
Unieważnij tokeny wydane przed tym sygnałem czasowym. Ten element współpracuje z elementami <AppId>
i <EndUserId>
, aby umożliwić Ci odwoływanie tokenów przed określonym czasem.
Wartością domyślną jest czas wykonywania zasad.
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
Domyślny |
Sygnatura czasowa wykonania zasad. |
---|---|
Obecność |
Opcjonalny |
Typ | 64-bitowa (długa) liczba całkowita reprezentująca liczbę milisekund od północy 1 stycznia 1970 r. czasu UTC. |
Prawidłowe wartości |
Zmienne przepływu zawierające sygnaturę czasową lub sygnaturę czasową w postaci ciągu znaków. Sygnatura czasowa nie może wskazywać na przyszłość ani na dzień wcześniejszy niż 1 stycznia 2014 r. |
Zmienne przepływu
Zasada RevokeOAuthV2 nie ustawia zmiennych przepływu.
Odwołania do błędów
W tej sekcji opisaliśmy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów, które są ustawiane przez Edge, gdy ta zasada powoduje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów, aby radzić sobie z błędami. Więcej informacji znajdziesz w artykułach Więcej informacji o błędach związanych z naruszeniem zasad i Rozwiązywanie problemów.
Błędy w czasie wykonywania
Te błędy mogą wystąpić podczas wykonywania zasad. Nazwy błędów podane poniżej to ciągi znaków przypisane do zmiennej fault.name
, gdy wystąpi błąd. Więcej informacji znajdziesz w sekcji dotyczących zmiennych Fault.
Kod błędu | Stan HTTP | Przyczyna |
---|---|---|
steps.oauth.v2.InvalidFutureTimestamp |
500 | Sygnatura czasowa nie może wskazywać na przyszłość. |
steps.oauth.v2.InvalidEarlyTimestamp |
500 | Sygnatura czasowa nie może być wcześniejsza niż 1 stycznia 2014 r. |
steps.oauth.v2.InvalidTimestamp |
500 | Sygnatura czasowa jest nieprawidłowa. |
steps.oauth.v2.EmptyAppAndEndUserId |
500 | Wartości AppdId i EndUserId nie mogą być puste. |
Błędy wdrażania
Informacje o błędach wdrożenia znajdziesz w komunikacie wyświetlonym w interfejsie.
Zmienne błędów
Te zmienne są ustawiane, gdy ta zasada powoduje błąd w czasie wykonywania.
Zmienne | Gdzie | Przykład |
---|---|---|
fault.name="fault_name" |
fault_name to nazwa błędu, jak podano w tabeli Błędy środowiska wykonawczego powyżej. Nazwa błędu to ostatni element kodu błędu. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name to nazwa zasady określona przez użytkownika, która spowodowała błąd. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name to nazwa zasady określona przez użytkownika, która spowodowała błąd. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name to nazwa zasady określona przez użytkownika, która spowodowała błąd. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
Przykładowa odpowiedź na błąd
{ "fault":{ "faultstring":"Timestamp is in the future.", "detail":{ "errorcode":"steps.oauth.v2.InvalidFutureTimestamp" } } }
Przykładowa reguła błędu
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>