Automatyzowanie zadań za pomocą użytkowników maszyn

W przypadku korzystania z zewnętrznego dostawcy tożsamości z interfejsem Edge API standardowy proces uzyskiwania tokenów dostępu OIDC/OAuth2 z poziomu interfejsu wiersza poleceń to przepływ kodu urządzenia OAuth 2.0. W tym przepływie używasz narzędzia get_token, które wyświetla prośbę o odwiedzenie adresu URL w przeglądarce, aby uwierzytelnić się za pomocą dostawcy tożsamości, a następnie automatycznie odblokowuje terminal.

Środowisko programistyczne może jednak obsługiwać automatyzację typowych zadań programistycznych, takich jak automatyzacja testów czy potoki 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 użycia przeglądarki.

Edge obsługuje automatyczne generowanie tokenów za pomocą użytkowników maszyn bez interfejsu graficznego. Użytkownik maszyny może uzyskiwać tokeny OIDC/OAuth2 za pomocą standardowych uprawnień do hasła bez użycia przeglądarki. Oznacza to, że możesz całkowicie zautomatyzować proces uzyskiwania i odświeżania tokenów odświeżania na potrzeby skryptów.

Tworzenie użytkownika maszyny

Możesz utworzyć 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 bezpośrednio w lokalnym katalogu OpenLDAP i wyraźnie oznaczony jako użytkownik maszyny (employeeType: machineuser). Dzięki temu SSO w Apigee może bezpiecznie uwierzytelnić użytkownika maszyny za pomocą uprawnień do hasła, nawet jeśli w przypadku użytkowników obowiązuje federacyjne SAML/OIDC.

Szczegółowe instrukcje dotyczące tworzenia, wyświetlania i zarządzania użytkownikami maszyn znajdziesz w artykule Zarządzanie użytkownikami maszyn za pomocą apigee-machineuser.sh.

Uzyskiwanie i odświeżanie tokenów użytkownika maszyny

Do uzyskiwania tokenów dla użytkowników maszyn możesz używać narzędzi get_token i acurl dostępnych w /opt/apigee/apigee-openldap/bin/ lub standardowego narzędzia curl.

  • Korzystanie z narzędzi Apigee: skrypty get_token i acurl automatycznie obsługują buforowanie tokenów, generowanie ładunku i automatyczne odświeżanie. Szczegółowe instrukcje i przykłady korzystania z tych narzędzi znajdziesz w artykule Korzystanie z narzędzi get_token i acurl.
  • Korzystanie ze standardowego narzędzia curl: jeśli skrypty automatyzacji nie mają dostępu do otok Apigee, możesz bezpośrednio korzystać z SSO w Apigee za pomocą tych standardowych poleceń curl:

Aby uzyskać i odświeżyć tokeny za pomocą standardowego narzędzia curl:

  1. Użyj tego wywołania interfejsu API, aby wygenerować początkowe tokeny dostępu i tokeny odświeżania bezpośrednio z SSO w Apigee:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token -s \
        -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access'
      
  2. Przekaż token dostępu do wywołania interfejsu Edge Management API w nagłówku Authorization: Bearer:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. Aby później odświeżyć token dostępu natywnie, 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" \
      -X POST http://Edge_SSO_IP_DNS:9099/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'