Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Unieważnianie tokenów dostępu i odświeżania
W niektórych przypadkach aplikacje muszą wyraźnie unieważnić tokeny, np. gdy użytkownik wyloguje się z aplikacji obsługującej OAuth. Jeśli unieważnisz token, można go ponownie zatwierdzić w dowolnym momencie przed jego wygaśnięciem.
Procedura unieważniania tokena jest określona w specyfikacji unieważniania tokena OAuth 2.0.
Apigee Edge udostępnia operację InvalidateToken, która umożliwia skonfigurowanie dedykowanego punktu końcowego unieważniania tokena. Opublikowanie adresu URI tego punktu końcowego umożliwia deweloperom aplikacji unieważnianie tokenów wydanych przez Edge.
Oto przykładowa konfiguracja zasady OAuthV2 i operacji InvalidateToken. W tym przypadku unieważniany jest zarówno token dostępu, jak i powiązany z nim token odświeżania. Technicznie oba tokeny są unieważniane, ponieważ flaga cascade jest ustawiona na true. Więcej informacji o działaniu flagi cascade znajdziesz w sekcji Atrybuty elementu Token poniżej.
<OAuthV2 name="InvalidateToken"> <Operation>InvalidateToken</Operation> <Tokens> <Token type="accesstoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
Element <Tokens>/<Token>
Określa zmienną przepływu, która wskazuje token do unieważnienia. Jeśli deweloperzy mają
przesyłać prośbę o unieważnienie za pomocą parametru zapytania
o nazwie access_token, prawidłowa zmienna przepływu będzie
wyglądać tak: request.queryparam.access_token. Aby wymagać tokena w nagłówku HTTP,
na przykład, ustaw tę wartość na request.header.access_token.
Atrybuty
-
type(wymagany, ciąg znaków): typ tokena określony przez podaną zmienną określony. Obsługiwane wartości sąaccesstokenirefreshtoken:- Aby unieważnić token dostępu, określ typ accesstoken.
- Aby unieważnić zarówno token dostępu, jak i token odświeżania, określ typ refreshtoken. Gdy Edge zobaczy
typ refreshtoken, założy, że token jest tokenem odświeżania. Jeśli ten token odświeżania zostanie
znaleziony, zostanie unieważniony. Jeśli ten token odświeżania nie zostanie znaleziony, Edge sprawdzi, czy
jest to token dostępu. Jeśli token dostępu istnieje, zostanie unieważniony.
Uwaga: jeśli przekażesz już unieważniony token do zasady InvalidateToken, zasada nie zwróci błędu, chociaż możesz się tego spodziewać. Taka operacja nie ma żadnego efektu.
-
cascade(opcjonalny, wartość logiczna, domyślnie: true) Głównym zastosowaniem tego atrybutu jest unieważnienie tokena odświeżania bez unieważniania powiązanego z nim tokena dostępu. Rozważ te przypadki:- Unieważnij tylko token odświeżania i nie unieważniaj powiązanego z nim tokena dostępu. Aby to zrobić,
ustaw typ <Token> na
refreshtoken, a cascade nafalse. - Unieważnij zarówno token dostępu, jak i token odświeżania. Aby to zrobić, ustaw typ <Token>
na
accesstoken. Wartość cascade może byćtrue(domyślna) lubfalse. Jeśli ustawisz ją natrue, unieważniony zostanie zarówno token dostępu , jak i token odświeżania. Jeśli ustawisz ją nafalse, token dostępu zostanie unieważniony, a token odświeżania będzie bezużyteczny. Więcej informacji znajdziesz w uwadze poniżej. - Unieważnij token dostępu i nie unieważniaj powiązanego z nim tokena odświeżania. Nieobsługiwane. Więcej informacji znajdziesz w uwadze poniżej.
- Unieważnij tylko token odświeżania i nie unieważniaj powiązanego z nim tokena dostępu. Aby to zrobić,
ustaw typ <Token> na
Uwaga: ze względów bezpieczeństwa, jeśli unieważnisz token dostępu, powiązany z nim token odświeżania również zostanie unieważniony. Dlatego nie możesz użyć
atrybutu cascade, aby unieważnić tylko token dostępu. Jeśli na przykład ustawisz typ <Token>
na accesstoken, i ustawisz cascade=false, token dostępu zostanie unieważniony
(zgodnie z oczekiwaniami), ale powiązany z nim token odświeżania będzie bezużyteczny. Nie można go użyć do odświeżenia
unieważnionego tokena dostępu. Głównym przypadkiem użycia atrybutu cascade jest sytuacja, gdy chcesz unieważnić tylko
token odświeżania. W takim przypadku ustaw typ <Token> na refreshtoken,
a ustaw cascade=false. Token odświeżania zostanie unieważniony, ale powiązany z nim token dostępu
pozostanie ważny (do momentu wygaśnięcia lub unieważnienia). Więcej informacji znajdziesz w tej
dyskusji na forum społeczności.
Zatwierdzanie tokenów dostępu i odświeżania
Aby „ponownie zatwierdzić” unieważniony token, użyj operacji ValidateToken. Oznacza to, że po zastosowaniu tej operacji stan docelowego tokena dostępu lub tokena odświeżania zmieni się z „unieważniony” na „zatwierdzony”. Możesz zweryfikować każdy unieważniony token, który jeszcze nie wygasł.
<OAuthV2 name="ValidateToken"> <Operation>ValidateToken</Operation> <Tokens> <Token type="refreshtoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
Element <Tokens>/<Token>
Określa zmienną przepływu, która wskazuje token do zweryfikowania. Jeśli deweloperzy mają
przesyłać prośbę o weryfikację za pomocą parametru zapytania
o nazwie access_token, prawidłowa zmienna przepływu będzie
wyglądać tak: request.queryparam.access_token. Aby wymagać tokena w nagłówku HTTP,
na przykład, ustaw tę wartość na request.header.access_token.
Atrybuty
type(wymagany, ciąg znaków) Typ tokena określony przez podaną zmienną określony. Obsługiwane wartości sąaccesstokenirefreshtoken.cascade(opcjonalny, wartość logiczna) Domyślnie ta opcja jest ustawiona natrue, co powoduje, że weryfikacja jest propagowana do powiązanych tokenów. Jeśli więc zastosujesz ją do tokena odświeżania, powiązany z nim token dostępu również zostanie zweryfikowany. Jeśli zastosujesz ją do tokena dostępu, powiązany z nim token odświeżania również zostanie zweryfikowany. Jeśli ustawisz tę wartość nafalse, zweryfikowany zostanie tylko określony token dostępu lub token odświeżania.