Gdy używasz zewnętrznego IDP z interfejsem Edge API, proces uzyskiwania dostępu OAuth2 i tokenów odświeżania z interakcji z dostawcą tożsamości nazywa się przepływem kodu dostępu. W przypadku przepływu kodu dostępu używasz przeglądarki, aby uzyskać jednorazowy kod dostępu, który następnie służy 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 dzięki użyciu użytkowników maszyn w organizacjach w których włączony jest dostawca tożsamości. Użytkownik maszyny może uzyskać tokeny OAuth2 bez konieczności podawania kodu dostępu. Oznacza to, że możesz całkowicie zautomatyzować proces uzyskiwania i odświeżania tokenów OAuth2 za pomocą interfejsu Edge Management API.
Użytkownika maszyny w organizacji z włączonym dostawcą tożsamości możesz utworzyć na 2 sposoby:
Każda z tych metod jest opisana w kolejnych sekcjach.
Nie możesz utworzyć użytkownika maszyny w organizacjach, które nie mają włączonego zewnętrznego dostawcy tożsamości.
Tworzenie użytkownika maszyny za pomocą apigee-ssoadminapi.sh
Użyj narzędzia apigee-ssoadminapi.sh
, aby utworzyć użytkownika maszyny w organizacji z włączonym dostawcą tożsamości. Więcej informacji znajdziesz w artykule Korzystanie z
apigee-ssoadminapi.sh. Możesz utworzyć jednego użytkownika maszyny, który będzie używany przez wszystkie Twoje organizacje, lub utworzyć osobnego użytkownika maszyny dla każdej organizacji.
Użytkownik maszyny jest tworzony i przechowywany w magazynie danych Edge, a nie w dostawcy tożsamości. Dlatego nie musisz utrzymywać użytkownika maszyny za pomocą interfejsu Edge UI i interfejsu Edge Management API.
Podczas tworzenia użytkownika maszyny musisz podać adres e-mail i hasło. Po utworzeniu użytkownika maszyny przypisz go do co najmniej 1 organizacji.
Aby utworzyć użytkownika maszyny za pomocą apigee-ssoadminapi.sh:
- Aby utworzyć użytkownika maszyny, 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 konfiguracyjnym używanym do konfigurowania modułu Apigee SSO. Wartość domyślna tossoadmin. - SSO_ADMIN_SECRET to hasło administratora określone przez właściwość
SSO_ADMIN_SECRETw pliku konfiguracyjnym.W tym przykładzie możesz pominąć wartości
--porti--sslponieważ modułapigee-ssoużywa wartości domyślnych 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 UI i dodaj adres e-mail użytkownika maszyny do swoich organizacji oraz przypisz użytkownika maszyny do wymaganej roli. Więcej informacji znajdziesz w artykule Dodawanie użytkowników globalnych.
Tworzenie użytkownika maszyny za pomocą interfejsu Edge Management API
Użytkownika maszyny możesz utworzyć za pomocą interfejsu Edge Management API zamiast używania
apigee-ssoadminapi.sh narzędzia.
Aby utworzyć użytkownika maszyny za pomocą interfejsu Management API:
- Aby uzyskać token dla użytkownika
ssoadmin(nazwy użytkownika konta administratoraapigee-sso), użyj tego poleceniacurl: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 instalowania
apigee-ssozgodnie z właściwościąSSO_ADMIN_SECRETw pliku konfiguracyjnym.To polecenie wyświetla token, którego potrzebujesz do wykonania następnego wywołania.
- Aby utworzyć użytkownika maszyny, użyj tego polecenia
curl, 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"W kolejnych krokach będziesz potrzebować hasła użytkownika maszyny.
- Zaloguj się w interfejsie Edge UI.
- Dodaj adres e-mail użytkownika maszyny do swoich organizacji i przypisz użytkownika maszyny do wymaganej roli. Więcej informacji znajdziesz w artykule Dodawanie użytkowników globalnych.
Uzyskiwanie i odświeżanie tokenów użytkownika maszyny
Aby uzyskać i odświeżyć tokeny OAuth2, użyj interfejsu Edge API, przekazując dane logowania użytkownika maszyny zamiast kodu dostępu.
Aby uzyskać tokeny OAuth2 dla użytkownika maszyny:
- Aby wygenerować początkowe tokeny dostępu i odświeżania, użyj tego wywołania interfejsu API:
na potrzeby autoryzacji przekaż zarezerwowane dane logowania klienta OAuth2: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'
Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0.Zapisz tokeny, aby użyć ich później.
- Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek
Bearer, jak pokazano 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 maszyny.
- 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'