Korzystanie z SAML w zadaniach automatycznych

Edge dla chmury prywatnej w wersji 4.18.01

Gdy używasz SAML z interfejsem API Edge, proces uzyskiwania tokenów dostępu i tokenów odświeżania OAuth2 z asercji SAML 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órego następnie używasz do uzyskania tokenów OAuth2.

Środowisko programistyczne może jednak obsługiwać automatyzację typowych zadań programistycznych, takich jak automatyzacja testów czy tryb ciągłej integracji/ciągłego wdrażania (CI/CD). Aby zautomatyzować te zadania, gdy włączony jest protokół SAML, 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. 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.

Tworzenie użytkownika komputera

Aby utworzyć użytkownika komputera dla organizacji SAML, użyj narzędzia apigee-ssoadminapi.sh. 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.

Konto komputera jest tworzone i przechowywane w magazynie danych Edge, a nie u dostawcy tożsamości SAML. Dlatego nie odpowiadasz za utrzymanie użytkownika komputera za pomocą interfejsu Edge i interfejsu API zarządzania Google Analytics.

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:

  1. Aby utworzyć konto użytkownika, 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_NAME w pliku konfiguracji używanym do konfigurowania modułu Edge SSO. Wartość domyślna to ssoadmin.
    • SSO_ADMIN_SECRET to hasło administratora określone przez właściwość SSO_ADMIN_SECRET w pliku konfiguracji.

      W tym przykładzie możesz pominąć wartości --port i --ssl, ponieważ moduł apigee-sso używa domyślnych wartości 9099 dla --port i http dla --ssl. Jeśli Twoja instalacja nie używa tych wartości domyślnych, określ je odpowiednio.
  2. Zaloguj się w interfejsie Edge i dodaj adres e-mail konta komputera do organizacji, a następnie przypisz konto komputera do odpowiedniej roli. Więcej informacji znajdziesz w artykule Dodawanie użytkowników globalnych.

Uzyskiwanie i odświeżanie tokena użytkownika komputera

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:

  1. Użyj tego wywołania interfejsu API, aby wygenerować początkowy token dostępu i 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 -s /
    -d 'grant_type=password&username=m_user_email&password=m_user_password
    '
    Wywołanie wyświetla na ekranie tokeny dostępu i tokeny odświeżania. Zapisz tokeny do późniejszego użycia.
  2. Przekaż token dostępu do wywołania interfejsu API zarządzania Google Analytics jako nagłówek Bearer:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    gdzie orgName to nazwa organizacji zawierającej użytkownika komputera.
  3. 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'

Tworzenie użytkownika komputera za pomocą interfejsu API zarządzania Google Analytics Edge

Użytkownika komputera możesz utworzyć za pomocą interfejsu Edge Management API zamiast narzędzia apigee-ssoadminapi.sh. Aby utworzyć użytkownika komputera:

  1. Użyj tego polecenia cURL, aby uzyskać token dla użytkownika ssoadmin, czyli nazwy użytkownika konta administratora dla apigee-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"


    gdzie SSO_ADMIN_SECRET to hasło administratora ustawione podczas instalacji apigee-sso, określone przez właściwość SSO_ADMIN_SECRET w pliku konfiguracji.

    To polecenie wyświetla token, który jest potrzebny do wykonania następnego wywołania.
  2. Użyj tego polecenia cURL, aby utworzyć użytkownika komputera, przekazując token okaziciela 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 potrzebne w kolejnych krokach.
  3. 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.