Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
W tej sekcji opisujemy, jak włączyć pobieranie i unieważnianie tokenów dostępu OAuth 2.0 według identyfikatora użytkownika, identyfikatora aplikacji lub obu tych identyfikatorów. Funkcja identyfikatora użytkownika wymaga specjalnej konfiguracji opisanej w tym artykule. Przez użytkownika rozumiemy użytkownika aplikacji, która wywołuje interfejs API.
Kiedy włączyć dostęp do identyfikatora użytkownika
Czasami warto przechowywać identyfikator użytkownika w tokenie dostępu. Włącz funkcję dostępu do identyfikatora użytkownika tylko wtedy, gdy masz dla niej dobry przypadek użycia. Na przykład:
- Funkcja witryny lub aplikacji, w której użytkownicy mogą zobaczyć, które aplikacje innych firm zostały przez nich autoryzowane, i unieważnić dostęp do tych aplikacji.
- Funkcja, która umożliwia autoryzowanemu użytkownikowi unieważnienie wszystkich tokenów dostępu powiązanych z konkretną aplikacją dewelopera.
Tokeny dostępu OAuth
Identyfikatory aplikacji są automatycznie dodawane do tokena dostępu OAuth. Dlatego po włączeniu dostępu do tokena w organizacji w sposób opisany poniżej możesz unieważnić tokeny dostępu według identyfikatora aplikacji.
Aby pobierać i unieważniać tokeny dostępu OAuth 2.0 według identyfikatora użytkownika, identyfikator użytkownika musi być obecny w tokenach dostępu. Poniższa procedura opisuje, jak dodać identyfikator użytkownika do istniejącego tokena.
Domyślnie, gdy Edge generuje token dostępu OAuth 2.0, ma on format pokazany poniżej:
{ "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" }
Pamiętaj:
- Pole application_name zawiera identyfikator UUID aplikacji powiązanej z tokenem. Jeśli włączysz pobieranie i unieważnianie tokenów dostępu OAuth 2.0 według identyfikatora aplikacji, będzie to identyfikator aplikacji, którego używasz.
- Pole access_token zawiera wartość tokena dostępu OAuth 2.0.
W domyślnym tokenie dostępu OAuth nie ma pola na identyfikator użytkownika. Aby włączyć pobieranie i unieważnianie tokenów dostępu OAuth 2.0 według identyfikatora użytkownika, musisz skonfigurować zasadę OAuth 2.0 tak, aby zawierała identyfikator użytkownika w tokenie, jak opisano w poniższej procedurze. Jeśli chcesz tylko pobierać i unieważniać tokeny dostępu OAuth 2.0 według identyfikatora aplikacji, nie musisz włączać dostępu według identyfikatora użytkownika.
Identyfikator użytkownika przekazujesz do punktu końcowego tworzenia tokena. Identyfikator użytkownika możesz przekazać jako parametr zapytania, parametr formularza lub w nagłówku (jak wyjaśniono w dalszej części tego artykułu). Po skonfigurowaniu Edge tak, aby zawierał identyfikator użytkownika w tokenie, jest on uwzględniany jako pole app_enduser, jak pokazano poniżej:
{ "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" }
Aby dowiedzieć się, jak wykonywać wywołania interfejsu API, które wykonują te pobierania i unieważnienia, zapoznaj się z tymi dokumentami Smart Docs:
- Unieważnianie tokena dostępu OAuth2 według identyfikatora użytkownika lub aplikacji
- Pobieranie tokena dostępu OAuth2 według identyfikatora użytkownika lub aplikacji
Włączanie dostępu do tokenów OAuth 2.0 według identyfikatora użytkownika i identyfikatora aplikacji
Sposób włączania dostępu do tokenów OAuth 2.0 według identyfikatora użytkownika i identyfikatora aplikacji zależy od sposobu wdrożenia Edge:
Wdrożenie w chmurze
Wdrożenie Edge w chmurze oznacza, że większość konfiguracji jest obsługiwana przez Apigee. Twoim zadaniem jest tylko skonfigurowanie zasady OAuth 2.0 tak, aby dodawała identyfikator użytkownika do tokena dostępu. Więcej informacji znajdziesz w poniższej procedurze.
Wdrożenie Edge for Private Cloud
W Apigee Edge for Private Cloud (lokalnie) jesteś w pełni odpowiedzialny(-a) za konfigurację. Więcej informacji znajdziesz w sekcjach Operacje i Konfiguracja.
Apigee hybrid
Dostęp do tokenów OAuth 2.0 według identyfikatora użytkownika jest domyślnie włączony. Twoim zadaniem jest tylko skonfigurowanie zasady OAuth 2.0 tak, aby dodawała identyfikator użytkownika do tokena dostępu. Więcej informacji znajdziesz w kroku 5 poniższej procedury.
Włączanie dostępu w chmurze
Krok 1. Włącz obsługę tej funkcji w organizacji
Tę funkcję należy włączyć w każdej organizacji, w której chcesz ją obsługiwać.
Aby zaktualizować organizację, skontaktuj się z zespołem pomocy Apigee Edge.
Krok 2. Przyznaj rolom opsadmin i orgadmin uprawnienia do zasobu oauth2
Tylko role orgadmin i opsadmin powinny mieć uprawnienia do wykonywania tych wywołań pobierania (get) i unieważniania (put) do zasobu oauth2 na podstawie identyfikatora użytkownika lub identyfikatora aplikacji.
Aby sprawdzić, które role mają uprawnienia get i put do zasobu oauth2, możesz użyć wywołania interfejsu API Get Permission
for a Resource.
Jeśli chcesz dodać lub usunąć uprawnienia, skontaktuj się z zespołem pomocy Apigee Edge, aby poprosić o wprowadzenie zmian.
Krok 3. Skopiuj istniejące tokeny dostępu OAuth 2.0 do węzłów Cassandra
Wykonane przez zespół pomocy Apigee: w tym zadaniu kopie istniejących tokenów dostępu OAuth 2.0 w dotkniętych organizacjach zostaną skopiowane i zapisane w węzłach Cassandra. Ta procedura zostanie wykonana w węzłach Cassandra dla każdego poda Apigee Edge. Dzięki temu wywołania interfejsu API pobierania i unieważniania będą mogły być wykonywane na wszystkich tokenach dostępu OAuth 2.0, zarówno istniejących, jak i nowo wygenerowanych.
Krok 4. Skonfiguruj zasadę OAuth 2.0 tak, aby generowała tokeny dostępu zawierające identyfikatory użytkowników
Skonfiguruj zasadę OAuth 2.0 używaną do generowania tokenów dostępu tak, aby zawierała identyfikator użytkownika w tokenie. Dzięki uwzględnianiu identyfikatorów użytkowników w tokenach dostępu będziesz mieć możliwość pobierania i unieważniania tokenów według identyfikatora użytkownika.
Aby skonfigurować zasadę tak, aby zawierała identyfikator użytkownika w tokenie dostępu, musisz określić zmienną wejściową, która zawiera identyfikator użytkownika. Aby określić zmienną , użyj tagu <AppEndUser>.
Zasada OAuth 2.0 poniżej, o nazwie GenerateAccessTokenClient, generuje token dostępu OAuth 2.0. Zwróć uwagę na dodanie tagu <AppEndUser> pogrubionego:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
Następnie możesz użyć tego polecenia cURL, aby wygenerować token dostępu OAuth 2.0, przekazując identyfikator użytkownika jako nagłówek appuserID:
curl -H "appuserID:6ZG094fgnjNf02EK" / https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials / -X POST / -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'
W tym przykładzie appuserID jest przekazywany jako nagłówek żądania. Informacje możesz przekazywać jako część żądania na wiele sposobów. Na przykład możesz:
- użyć zmiennej parametru formularza: request.formparam.appuserID
- użyć zmiennej przepływu, która zawiera identyfikator użytkownika.