Gdy używasz zewnętrznego IDP z interfejsem API Edge, proces uzyskiwania tokenów dostępu i odświeżania OAuth2 z interakcji z dostawcą tożsamości jest nazywany przepływem kodu dostępu. W przypadku przepływu z kodem dostępu używasz przeglądarki, aby uzyskać jednorazowy kod dostępu, który następnie wykorzystujesz do uzyskania tokenów OAuth2.
Środowisko programistyczne może jednak obsługiwać automatyzację typowych zadań programistycznych, takich jak automatyzacja testów czy CI/CD. Aby zautomatyzować te zadania, gdy włączony jest zewnętrzny dostawca tożsamości, musisz mieć możliwość uzyskiwania i odświeżania tokenów OAuth2 bez konieczności kopiowania i wklejania kodu dostępu z przeglądarki.
Edge obsługuje automatyczne generowanie tokenów za pomocą użytkowników maszynowych w organizacjach, które mają włączonego dostawcę tożsamości. Użytkownik komputera może uzyskać tokeny OAuth2 bez konieczności podawania hasła. Oznacza to, że możesz całkowicie zautomatyzować proces uzyskiwania i odświeżania tokenów OAuth2 za pomocą interfejsu API zarządzania Google Analytics Edge.
Istnieją 2 sposoby tworzenia konta użytkownika maszynowego w organizacji z włączonym dostawcą tożsamości:
Każda z tych metod jest opisana w sekcjach poniżej.
Nie możesz utworzyć użytkownika komputera w organizacjach, które nie mają włączonego zewnętrznego dostawcy tożsamości.
Tworzenie użytkownika komputera za pomocą apigee-ssoadminapi.sh
Użyj narzędzia apigee-ssoadminapi.sh, aby utworzyć użytkownika komputera w organizacji z włączonym dostawcą tożsamości. Więcej informacji znajdziesz w artykule Korzystanie z apigee-ssoadminapi.sh. Możesz utworzyć jedno konto użytkownika komputera, które będzie używane przez wszystkie Twoje organizacje, lub osobne konto dla każdej organizacji.
Użytkownik komputera jest tworzony i przechowywany w magazynie danych Edge, a nie u dostawcy tożsamości. Dlatego nie odpowiadasz za utrzymanie użytkownika komputera za pomocą interfejsu Edge i interfejsu API zarządzania Edge.
Podczas tworzenia konta użytkownika komputera musisz podać adres e-mail i hasło. Po utworzeniu użytkownika komputera przypisz go do co najmniej jednej organizacji.
Aby utworzyć użytkownika komputera za pomocą apigee-ssoadminapi.sh:
- Aby utworzyć użytkownika komputera, użyj tego polecenia
apigee-ssoadminapi.sh:apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \ --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \ -u machine_user_email -p machine_user_password
Gdzie:
- SSO_ADMIN_NAME to nazwa użytkownika administratora zdefiniowana przez właściwość
SSO_ADMIN_NAMEw pliku konfiguracji używanym do konfigurowania modułu SSO w Apigee. Wartość domyślna tossoadmin. - SSO_ADMIN_SECRET to hasło administratora określone przez właściwość
SSO_ADMIN_SECRETw pliku konfiguracji.W tym przykładzie możesz pominąć wartości
--porti--ssl, ponieważ modułapigee-ssoużywa domyślnych wartości 9099 dla--porti http dla--ssl. Jeśli Twoja instalacja nie używa tych wartości domyślnych, określ je odpowiednio.
- SSO_ADMIN_NAME to nazwa użytkownika administratora zdefiniowana przez właściwość
- Zaloguj się w interfejsie Edge i dodaj adres e-mail użytkownika komputera do organizacji, a następnie przypisz użytkownikowi komputera odpowiednią rolę. Więcej informacji znajdziesz w artykule Dodawanie użytkowników globalnych.
Tworzenie użytkownika komputera za pomocą interfejsu Edge Management API
Możesz utworzyć użytkownika komputera za pomocą interfejsu API zarządzania Google Analytics Edge zamiast narzędzia apigee-ssoadminapi.sh.
Aby utworzyć użytkownika komputera za pomocą interfejsu API zarządzania Google Analytics:
- Użyj tego polecenia
curl, aby uzyskać token dla użytkownikassoadmin, czyli nazwy użytkownika konta administratora dlaapigee-sso:curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \ -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \ -d "response_type=token" -d "grant_type=client_credentials" \ --data-urlencode "client_secret=SSO_ADMIN_SECRET" \ --data-urlencode "client_id=ssoadmin"
SSO_ADMIN_SECRET to hasło administratora ustawione podczas instalacji
apigee-sso, określone przez właściwośćSSO_ADMIN_SECRETw pliku konfiguracji.To polecenie wyświetla token, który jest potrzebny do wykonania następnego wywołania.
- Użyj tego polecenia
curl, aby utworzyć użytkownika komputera, przekazując token otrzymany w poprzednim kroku:curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \ -H "Accept: application/json" -H "Content-Type: application/json" \ -d '{"userName" : "machine_user_email", "name" : {"formatted":"DevOps", "familyName" : "last_name", "givenName" : "first_name"}, "emails" : [ {"value" : "machine_user_email", "primary" : true } ], "active" : true, "verified" : true, "password" : "machine_user_password" }' \ -H "Authorization: Bearer token"Hasło użytkownika komputera będzie Ci potrzebne w późniejszych krokach.
- Zaloguj się w interfejsie Edge.
- Dodaj adres e-mail użytkownika komputera do organizacji i przypisz mu odpowiednią rolę. Więcej informacji znajdziesz w artykule Dodawanie użytkowników globalnych.
Uzyskiwanie i odświeżanie tokenów użytkowników maszyn
Użyj interfejsu API Edge, aby uzyskać i odświeżyć tokeny OAuth2, przekazując dane logowania użytkownika komputera zamiast hasła.
Aby uzyskać tokeny OAuth2 dla użytkownika komputera:
- Aby wygenerować początkowe tokeny dostępu i tokeny odświeżania, użyj tego wywołania interfejsu API:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ http://Edge_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=m_user_email&password=m_user_password'
Zapisz tokeny do późniejszego użycia.
- Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek
Bearer, jak w tym przykładzie:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
Gdzie org_name to nazwa organizacji zawierającej użytkownika komputera.
- Aby później odświeżyć token dostępu, użyj tego wywołania, które zawiera token odświeżania:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ http://edge_sso_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken'