Korzystanie z SAML w zadaniach automatycznych

Edge for Private Cloud w wersji 4.18.05

W przypadku używania SAML z interfejsem Edge API proces uzyskiwania dostępu OAuth2 i odświeżania tokenów z potwierdzenia SAML nosi nazwę przepływu kodu dostępu. Aby uzyskać jednorazowy kod dostępu, musisz użyć przeglądarki, aby uzyskać jednorazowy kod dostępu, który następnie służy do uzyskania tokenów OAuth2.

Twoje środowisko programistyczne może jednak obsługiwać automatyzację w przypadku typowych zadań programistycznych, takich jak automatyzacja testów lub ciągła integracja/ciągłe wdrażanie (CI/CD). Aby zautomatyzować te zadania przy włączonym SAML, musisz mieć sposób uzyskania i odświeżenia tokenów OAuth2 bez konieczności kopiowania i wklejania kodu dostępu z przeglądarki.

Edge obsługuje automatyczne generowanie tokenów przy użyciu użytkowników maszyn. Użytkownik komputera 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.

Tworzenie użytkownika maszyny

Użyj narzędzia apigee-ssoadminapi.sh, aby utworzyć użytkownika komputera dla organizacji SAML. Więcej informacji znajdziesz w artykule o używaniu apigee-ssoadminapi.sh. Możesz utworzyć jednego użytkownika komputera dla wszystkich organizacji albo osobnego użytkownika komputera dla każdej organizacji.

Użytkownik komputera zostanie utworzony i zapisany w magazynie danych Edge, a nie u dostawcy tożsamości SAML. W związku z tym nie ponosisz odpowiedzialności za utrzymanie użytkownika maszyny przy użyciu Edge Ui i interfejsu Edge Management API.

Podczas tworzenia użytkownika komputera musisz podać adres e-mail i hasło. Po utworzeniu użytkownika komputera przypisujesz go do co najmniej 1 organizacji.

Aby utworzyć użytkownika komputera:

  1. 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_NAME w pliku konfiguracji służącym 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 konfiguracyjnym.
    • W tym przykładzie możesz pominąć wartości --port i --ssl, ponieważ moduł apigee-sso stosuje domyślne wartości 9099 dla --port i http dla --ssl. Jeśli w Twojej instalacji nie są używane te wartości domyślne, podaj je odpowiednio.

  2. Zaloguj się w interfejsie użytkownika 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 tokena użytkownika maszyny

Użyj interfejsu Edge API, aby uzyskać i odświeżyć tokeny OAuth2 przez przekazanie danych logowania użytkownika komputera zamiast hasła.

Aby uzyskać tokeny OAuth2 dla użytkownika komputera:

  1. Aby wygenerować token wstępnego dostępu i 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 wykorzystania.

  2. Przekaż token dostępu do wywołania interfejsu Edge Management API jako nagłówek okaziciela:
    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 zawierającego 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'

Utwórz użytkownika maszyny za pomocą interfejsu Edge Management API

Użytkownika maszyny możesz utworzyć za pomocą interfejsu Edge Management API, zamiast korzystać z narzędzia apigee-ssoadminapi.sh.

Aby utworzyć użytkownika komputera:

  1. Aby uzyskać token dla użytkownika ssoadmin, czyli nazwy użytkownika konta administratora domeny apigee-sso, użyj tego polecenia curl:
    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 zgodnie z właściwością SSO_ADMIN_SECRET w pliku konfiguracyjnym.

    To polecenie wyświetla token, który jest potrzebny do wykonania następnego wywołania.

  2. Aby utworzyć użytkownika maszyny, prześlij token otrzymany w poprzednim kroku za pomocą tego polecenia curl:
    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 użytkownika 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.