Aufgaben für externe IdPs automatisieren

Wenn Sie einen externen IdP mit der Edge API verwenden, wird der Prozess, mit dem Sie OAuth2-Zugriffs- und Aktualisierungstokens aus der IdP-Interaktion erhalten, als Passcode-Ablauf bezeichnet. Dabei rufen Sie über einen Browser einen einmaligen Sicherheitscode ab, mit dem Sie dann OAuth2-Tokens abrufen können.

Ihre Entwicklungsumgebung unterstützt jedoch möglicherweise Automatisierung für gängige Entwicklungsaufgaben wie Testautomatisierung oder CI/CD. Um diese Aufgaben zu automatisieren, wenn ein externer IdP aktiviert ist, müssen Sie OAuth2-Tokens abrufen und aktualisieren können, ohne einen Sicherheitscode aus einem Browser kopieren und einfügen zu müssen.

Edge unterstützt die automatische Tokengenerierung durch die Verwendung von Computernutzern in Organisationen, für die ein IdP aktiviert ist. Ein Computernutzer kann OAuth2-Tokens abrufen, ohne einen Sicherheitscode angeben zu müssen. Das bedeutet, dass Sie den Prozess zum Abrufen und Aktualisieren von OAuth2-Tokens mithilfe der Edge-Verwaltungs-API vollständig automatisieren können.

Es gibt zwei Möglichkeiten, einen Computernutzer für eine IdP-fähige Organisation zu erstellen:

Jede dieser Methoden wird in den folgenden Abschnitten beschrieben.

Sie können keinen Computernutzer für Organisationen erstellen, für die kein externer IdP aktiviert ist.

Maschinennutzer mit apigee-ssoadminapi.sh erstellen

Verwenden Sie das Dienstprogramm apigee-ssoadminapi.sh, um einen Computernutzer in einer IdP-fähigen Organisation zu erstellen. Weitere Informationen finden Sie unter apigee-ssoadminapi.sh verwenden. Sie können einen einzelnen Computernutzer erstellen, der von allen Organisationen verwendet wird, oder für jede Organisation einen separaten Computernutzer erstellen.

Der Computernutzer wird im Edge-Datenspeicher, nicht in Ihrem IdP erstellt und gespeichert. Daher sind Sie nicht für die Wartung des Computernutzers mithilfe der Edge-UI und der Edge Management API verantwortlich.

Wenn Sie den Computernutzer erstellen, müssen Sie eine E-Mail-Adresse und ein Passwort angeben. Nachdem Sie den Computernutzer erstellt haben, weisen Sie ihn einer oder mehreren Organisationen zu.

So erstellen Sie einen Computernutzer mit apigee-ssoadminapi.sh:

  1. Verwenden Sie den folgenden apigee-ssoadminapi.sh-Befehl, um den Computernutzer zu erstellen:
    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?

    Wobei:

    • SSO_ADMIN_NAME ist der Nutzername des Administrators, der durch das Attribut SSO_ADMIN_NAME in der Konfigurationsdatei definiert wird, die zum Konfigurieren des Apigee SSO-Moduls verwendet wird. Der Standardwert ist ssoadmin.
    • SSO_ADMIN_SECRET ist das Administratorpasswort, das in der Konfigurationsdatei im Attribut SSO_ADMIN_SECRET angegeben ist.

      In diesem Beispiel können Sie die Werte für --port und --ssl weglassen, da das Modul apigee-sso die Standardwerte 9099 für --port und http für --ssl verwendet. Wenn Ihre Installation diese Standardeinstellungen nicht verwendet, geben Sie sie entsprechend an.

  2. Melden Sie sich in der Edge-Benutzeroberfläche an, fügen Sie die E-Mail-Adresse des Computernutzers Ihren Organisationen hinzu und weisen Sie dem Computernutzer die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.

Maschinennutzer mit der Edge Management API erstellen

Sie können einen Computernutzer mit der Edge Management API anstelle des Dienstprogramms apigee-ssoadminapi.sh erstellen.

So erstellen Sie einen Computernutzer mit der Verwaltungs-API:

  1. Rufen Sie mit dem folgenden curl-Befehl ein Token für den Nutzer ssoadmin ab, also den Nutzernamen des Administratorkontos für apigee-sso:
    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"

    Dabei ist SSO_ADMIN_SECRET das Administratorpasswort, das Sie bei der Installation von apigee-sso festgelegt haben, wie im Attribut SSO_ADMIN_SECRET in der Konfigurationsdatei angegeben.

    Dieser Befehl zeigt ein Token an, das Sie für den nächsten Aufruf benötigen.

  2. Erstellen Sie mit dem folgenden curl-Befehl den Computernutzer und übergeben Sie das Token, das Sie im vorherigen Schritt erhalten haben:
    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"

    Sie benötigen das Passwort des Computernutzers in späteren Schritten.

  3. Melden Sie sich bei der Edge-Benutzeroberfläche an.
  4. Fügen Sie die E-Mail-Adresse des Computernutzers Ihren Organisationen hinzu und weisen Sie dem Computernutzer die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.

Computernutzertoken abrufen und aktualisieren

Verwenden Sie die Edge API, um OAuth2-Tokens abzurufen und zu aktualisieren, indem Sie anstelle eines Sicherheitscodes die Anmeldedaten des Computernutzers übergeben.

So rufen Sie OAuth2-Tokens für den Computernutzer ab:

  1. Generieren Sie mit dem folgenden API-Aufruf die anfänglichen Zugriffs- und Aktualisierungstokens:
    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'

    Speichern Sie die Tokens zur späteren Verwendung.

  2. Übergeben Sie das Zugriffstoken als Bearer-Header an einen Edge-Management-API-Aufruf, wie im folgenden Beispiel gezeigt:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    Dabei ist org_name der Name der Organisation, die den Computernutzer enthält.

  3. Verwenden Sie zum späteren Aktualisieren des Zugriffstokens 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" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      http://edge_sso_IP_DNS:9099/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'