Automatyzowanie zadań zewnętrznych dostawców tożsamości

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:

  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 konfiguracyjnym używanym do konfigurowania modułu Apigee 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 używa wartości domyślnych 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 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:

  1. Aby uzyskać token dla użytkownika ssoadmin (nazwy użytkownika konta administratora 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"

    SSO_ADMIN_SECRET to hasło administratora ustawione podczas instalowania apigee-sso zgodnie z właściwością SSO_ADMIN_SECRET w pliku konfiguracyjnym.

    To polecenie wyświetla token, którego potrzebujesz do wykonania następnego wywołania.

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

  3. Zaloguj się w interfejsie Edge UI.
  4. 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:

  1. Aby wygenerować początkowe tokeny 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'
    na potrzeby autoryzacji przekaż zarezerwowane dane logowania klienta OAuth2: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0.

    Zapisz tokeny, aby użyć ich później.

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

  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'