Aufgaben mit Machine-Benutzern automatisieren

Wenn Sie einen externen IDP mit der Edge API verwenden, ist der Standardprozess zum Abrufen von OIDC-/OAuth2 Zugriffstokens über die CLI der OAuth 2.0-Gerätecodefluss. Bei diesem Fluss verwenden Sie das Dienstprogramm get_token, das Sie auffordert, eine URL in einem Browser aufzurufen, um sich über Ihren IDP zu authentifizieren. Anschließend wird Ihr Terminal automatisch entsperrt.

Ihre Entwicklungsumgebung unterstützt jedoch möglicherweise die Automatisierung für gängige Entwicklungsaufgaben, wie Testautomatisierung oder CI/CD-Pipelines. Wenn Sie diese Aufgaben automatisieren möchten, wenn ein externer IDP aktiviert ist, benötigen Sie eine Möglichkeit, OAuth2-Tokens ohne Browserinteraktion abzurufen und zu aktualisieren.

Edge unterstützt die automatisierte Tokengenerierung durch die Verwendung von Headless-Maschinennutzern. Ein Maschinennutzer kann OIDC-/OAuth2-Tokens über Standardpasswortzuweisungen ohne Browser abrufen. Das bedeutet, dass Sie den Prozess zum Abrufen und Aktualisieren von Tokens für Ihre Skripts vollständig automatisieren können.

Maschinennutzer erstellen

Sie können einen Maschinennutzer erstellen, der von allen Ihren Organisationen verwendet wird, oder einen separaten Maschinennutzer für jede Organisation.

Der Maschinennutzer wird direkt im lokalen OpenLDAP-Verzeichnis erstellt und gespeichert und explizit als Maschinennutzer getaggt (employeeType: machineuser). Dadurch kann Apigee SSO den Maschinennutzer sicher über eine Passwortzuweisung authentifizieren, auch wenn die föderierte SAML/OIDC für menschliche Nutzer streng erzwungen wird.

Eine detaillierte Anleitung zum Erstellen, Auflisten und Verwalten von Maschinennutzern finden Sie unter Maschinennutzer mit apigee-machineuser.sh verwalten.

Tokens für Maschinennutzer abrufen und aktualisieren

Sie können die Dienstprogramme get_token und acurl in /opt/apigee/apigee-openldap/bin/ oder das Standarddienstprogramm curl verwenden, um Tokens für Maschinennutzer abzurufen.

  • Apigee-Dienstprogramme verwenden:Die Wrapper get_token und acurl verarbeiten automatisch das Token-Caching, die Nutzlastgenerierung und die automatische Aktualisierung. Eine detaillierte Anleitung und Beispiele zur Verwendung dieser Tools finden Sie unter Die Dienstprogramme get_token und acurl verwenden.
  • Standard-curl verwenden:Wenn Ihre Automatisierungsskripts keinen Zugriff auf die Apigee-Wrapper haben, können Sie mit den folgenden Standardbefehlen von curl direkt mit Apigee SSO interagieren:

Tokens mit Standard-curl abrufen und Aktualisierungstoken verwenden:

  1. Verwenden Sie den folgenden API-Aufruf, um die ersten Zugriffs- und Aktualisierungstokens direkt von Apigee SSO zu generieren:
    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. Übergeben Sie das Zugriffstoken in einem Edge Management API-Aufruf im Header Authorization: Bearer:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. Wenn Sie das Zugriffstoken später nativ aktualisieren möchten, verwenden Sie den folgenden Aufruf, der das Aktualisierungstoken enthält:
    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'