Korzystanie z SAML w zadaniach automatycznych

Edge dla chmury prywatnej w wersji 4.18.05

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

Użyj narzędzia apigee-ssoadminapi.sh, aby utworzyć użytkownika komputera dla organizacji SAML. 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ć 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_NAME w pliku konfiguracji używanym do skonfigurowania 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 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.

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. 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.

  2. Przekaż token dostępu do wywołania interfejsu API zarządzania Google Analytics Edge 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

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:

  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"

    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 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.

  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.