Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Apigee Edge zapewnia platformę OAuth 2.0 do: bezpiecznych interfejsów API. OAuth2 to jeden z najpopularniejszych, otwartych standardów uwierzytelniania opartych na tokenach. schematów autoryzacji. Umożliwia aplikacjom klienckim dostęp do interfejsów API w imieniu użytkowników bez wymaganie od użytkowników podania nazwy użytkownika i hasła.
Apigee Edge umożliwia programistom generowanie tokenów dostępu lub odświeżania przez wdrożenie jednego z 4 typy uwierzytelnienia przez OAuth2: dane logowania klienta, password, implicit oraz kod autoryzacji – używając zasad OAuthv2. Aplikacje klienckie używają tokenów dostępu do korzystania z bezpiecznych interfejsów API. Każdy token dostępu ma swoją datę ważności , który można ustawić w zasadach OAuthv2.
Tokeny odświeżania są opcjonalnie wydawane wraz z tokenami dostępu z niektórymi typami uprawnień. Odśwież tokeny służą do uzyskiwania nowych, ważnych tokenów dostępu po wygaśnięciu oryginalnego tokena dostępu lub została odwołana. Czas wygaśnięcia tokenów odświeżania można też ustawić w zasadach OAuthv2.
Ten antywzór jest związany z antywzorem ustawienie długiego okresu ważności dla tokenów OAuth.
Antywzór
Ustawianie w zasadach OAuthv2 braku ważności tokena odświeżania prowadzi do gromadzenia tokenów OAuth i zwiększonego wykorzystania miejsca na dysku w węzłach Cassandra.
Poniższa przykładowa zasada OAuthV2 pokazuje brakującą konfigurację
<RefreshTokenExpiresIn>
:
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes --> <!--<RefreshTokenExpiresIn> is missing --> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
W tym przykładzie:
- Token dostępu jest ustawiony z stosunkowo krótkim czasem ważności wynoszącym 30 minut.
- Wygaśnięcie tokena odświeżania nie zostało ustawione.
- Token odświeżania utrzymuje się w magazynie danych (Cassandra) bez końca, przez co dane agregacja danych.
- Wygenerowany token odświeżania bez daty ważności może być używany bez ograniczeń czasowych do generowania tokenów dostępu.
- Jeśli ruch do tego interfejsu API wynosi 10 żądań na sekundę, może on wygenerować aż 864 tys. tokenów za dzień.
Wpływ
- Jeśli token odświeżania zostanie utworzony bez daty ważności, będzie to miało 2 główne konsekwencje:
- Token odświeżania może być użyty w dowolnym momencie w przyszłości, nawet przez lata, w celu uzyskania dostępu token. Może to mieć wpływ na bezpieczeństwo.
- Wiersz w systemie Cassandra zawierający token odświeżania nigdy nie zostanie usunięty. Spowoduje to gromadzenie danych w Cassandra.
- Jeśli nie używasz tokena odświeżania aby uzyskać nowy token dostępu, ale utworzyć nowy token odświeżania i token dostępu, starszy token odświeżania pozostanie w systemie Cassandra. W rezultacie odśwież że tokeny będą dalej akumulowane w Cassandra, co pomogło zwiększyć zbędny ruch, zwiększone wykorzystanie dysku i intensywniejsze kompresowanie, aż w końcu wywoła odczyt/zapis czas oczekiwania w Cassandra.
Sprawdzona metoda
W przypadku tokenów odświeżania i tokenów dostępu ustaw odpowiednio krótki okres ważności. Zobacz sprawdzone metody dla ustawienia daty ważności czas odświeżania i tokeny dostępu. Pamiętaj, aby określić konfigurację daty ważności dla obu uprawnień dostępu i odśwież token w zasadach. Zapoznaj się z Dokumentacja zasad OAuthV2 aby dowiedzieć się więcej o konfiguracji zasady.
Sprawdzone metody dotyczące klientów Edge dla Private Cloud
W tej sekcji opisano sprawdzone metody dotyczące klientów Edge dla Private Cloud.
Określ domyślny okres ważności tokena odświeżania
Jeśli okres ważności tokena odświeżania nie jest domyślnie określony w konfiguracji zasad, Edge tworzy token odświeżania bez daty ważności. Możesz zastąpić to działanie przez następującą procedurę:
- Edytuj lub utwórz plik zastąpienia konfiguracji w węźle podmiotu przetwarzającego wiadomości.
$APIGEE_ROOT/customer/application/message-processor.properties
Upewnij się, że ten plik jest czytelny dla użytkownikaapigee
. - Dodaj do tego pliku ten kod:
Domyślny okres ważności tokena odświeżania (jeśli w zasadzie nie zostanie określony) zostanie ustawiony na 1 godzinę. Możesz zmienić tę wartość domyślną w zależności od swoich potrzeb biznesowych.conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
- Ponownie uruchom usługę procesora wiadomości:
apigee-service edge-message-processor restart
- Powtórz powyższe kroki po kolei we wszystkich węzłach procesora wiadomości.
Sprawdzone metody w Cassandra
Spróbuj przejść na najnowszą wersję Apigee dostępną publicznie. Apigee kontynuuje aby wprowadzać poprawki i ulepszenia, które pozwalają jeszcze bardziej usprawnić i zoptymalizować zarządzanie tokenów w Apigee. W Apigee tokeny dostępu i odświeżania są przechowywane w Cassandra w ramach przestrzeni klawiszy „kms”. Musisz zadbać o to, aby strategia kompresowania spację jest ustawiony naLeveledCompactionStrategy
.
Sprawdź, czy nie występują te indeksy:
- kms.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx#f0f0f0 i
- kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx
Możesz też zmniejszyć
gc_grace_seconds
w tabeli kms.oauth_20_access_tokens
z domyślnych 10 dni na niższą
(np. 3 dni), aby elementy tombstone wygenerowane po usunięciu tokenów były
są usuwane z magazynu danych szybciej.