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

Jeśli korzystasz z zewnętrznego dostawcy tożsamości w interfejsie Edge API, proces uzyskiwania dostępu OAuth2 i odświeżania tokenów podczas interakcji z dostawcą tożsamości jest nazywany przepływem kodu dostępu. Aby uzyskać jednorazowy kod dostępu, należy użyć przeglądarki, aby uzyskać jednorazowy kod dostępu, który służy później 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/CD. Aby zautomatyzować te zadania po włączeniu zewnętrznego dostawcy tożsamości, potrzebujesz sposobu 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 przy użyciu użytkowników maszyn w organizacjach, w których włączono dostawcę tożsamości. 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.

Istnieją 2 sposoby tworzenia użytkownika komputera w organizacji korzystającej z dostawcy tożsamości:

Opis każdej z tych metod znajdziesz w kolejnych sekcjach.

Nie możesz utworzyć użytkownika komputera dla organizacji, w których nie włączono zewnętrznego dostawcy tożsamości.

Tworzenie użytkownika maszyny za pomocą usługi 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 o używaniu apigee-ssoadminapi.sh. Możesz utworzyć jednego użytkownika komputera, który będzie używany przez wszystkie organizacje, albo utworzyć oddzielnego użytkownika dla każdej organizacji.

Użytkownik maszyny zostanie utworzony i zapisany w magazynie danych Edge, a nie u dostawcy tożsamości. W związku z tym nie ponosisz odpowiedzialności za utrzymywanie użytkownika maszyny przy użyciu interfejsu użytkownika Edge 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 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

    QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?

    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 logowania jednokrotnego w Apigee. 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.

Tworzenie 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 za pomocą interfejsu API zarządzania:

  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.
  4. 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 tokenów 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ć tokeny początkowego dostępu i odświeżenia, 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 Bearer, jak 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 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'