SAML mit automatisierten Aufgaben verwenden

Edge for Private Cloud v4.18.01

Wenn Sie SAML mit der Edge API verwenden, wird der Prozess, mit dem Sie OAuth2-Zugriffs- und Aktualisierungstokens aus der SAML-Assertion abrufen, als Passcode-Flow bezeichnet. Beim Sicherheitscode-Vorgang rufen Sie über einen Browser einen einmaligen Sicherheitscode ab, mit dem Sie dann OAuth2-Tokens erhalten.

Ihre Entwicklungsumgebung unterstützt jedoch möglicherweise die Automatisierung gängiger Entwicklungsaufgaben, z. B. die Testautomatisierung oder Continuous Integration/Continuous Deployment (CI/CD). Wenn Sie diese Aufgaben bei aktiviertem SAML automatisieren möchten, benötigen Sie eine Möglichkeit, OAuth2-Tokens abzurufen und zu aktualisieren, ohne einen Passcode aus einem Browser kopieren und einfügen zu müssen.

Edge unterstützt die automatisierte Tokengenerierung durch die Verwendung von Maschinen-Nutzern. Ein Maschinennutzer kann OAuth2-Tokens abrufen, ohne einen Passcode angeben zu müssen. Das bedeutet, dass Sie den Prozess zum Abrufen und Aktualisieren von OAuth2-Tokens mithilfe der Edge Management API vollständig automatisieren können.

Maschinennutzer erstellen

Verwenden Sie das Dienstprogramm apigee-ssoadminapi.sh, um einen Maschinennutzer für eine SAML-Organisation zu erstellen. Weitere Informationen finden Sie unter apigee-ssoadminapi.sh verwenden. Sie können einen einzelnen Maschinennutzer erstellen, der von allen Ihren Organisationen verwendet wird, oder einen separaten Maschinennutzer für jede Organisation erstellen.

Der Maschinennutzer wird im Edge-Datenspeicher erstellt und gespeichert, nicht bei Ihrem SAML-Identitätsanbieter. Daher sind Sie nicht für die Verwaltung des Maschinennutzers über die Edge-UI und die Edge Management API verantwortlich.

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

So erstellen Sie einen Maschinennutzer:

  1. Verwenden Sie den folgenden apigee-ssoadminapi.sh-Befehl, um den Maschinennutzer 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

    Wobei:
    • SSO_ADMIN_NAME ist der Administrator-Nutzername, der durch das Attribut SSO_ADMIN_NAME in der Konfigurationsdatei definiert ist, die zum Konfigurieren des Edge-SSO-Moduls verwendet wird. Der Standardwert ist ssoadmin.
    • SSO_ADMIN_SECRET ist das Administratorpasswort, wie es durch das Attribut SSO_ADMIN_SECRET in der Konfigurationsdatei 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 Standardwerte 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 Maschinennutzers zu Ihren Organisationen hinzu und weisen Sie dem Maschinennutzer die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.

Maschinennutzer-Token abrufen und aktualisieren

Verwenden Sie die Edge API, um OAuth2-Tokens abzurufen und zu aktualisieren. Übergeben Sie dazu die Anmeldedaten des Maschinennutzers anstelle eines Sicherheitscodes.

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

  1. Verwenden Sie den folgenden API-Aufruf, um die ersten Zugriffs- und Aktualisierungstokens zu generieren:
    > 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
    '
    Der Aufruf gibt die Zugriffs- und Aktualisierungstokens auf dem Bildschirm aus. Speichern Sie die Tokens zur späteren Verwendung.
  2. Übergeben Sie das Zugriffstoken als Bearer-Header an einen Edge Management API-Aufruf:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    Dabei ist orgName der Name der Organisation, die den Maschinennutzer enthält.
  3. Verwenden Sie den folgenden Aufruf, der das Aktualisierungstoken enthält, um das Zugriffstoken später zu aktualisieren:
    > 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'

Maschinennutzer mit der Edge Management API erstellen

Sie können einen technischen Nutzer mit der Edge Management API anstelle des Dienstprogramms apigee-ssoadminapi.sh erstellen. So erstellen Sie einen Maschinennutzer:

  1. Verwenden Sie den folgenden cURL-Befehl, um ein Token für den Nutzer ssoadmin abzurufen, 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 durch das Attribut SSO_ADMIN_SECRET in der Konfigurationsdatei angegeben.

    Mit diesem Befehl wird ein Token angezeigt, das Sie für den nächsten Aufruf benötigen.
  2. Verwenden Sie den folgenden cURL-Befehl, um den Maschinennutzer zu erstellen. Übergeben Sie dabei 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 Maschinennutzers in späteren Schritten.
  3. Melden Sie sich in der Edge-Benutzeroberfläche an, fügen Sie die E-Mail-Adresse des Maschinennutzers zu Ihren Organisationen hinzu und weisen Sie dem Maschinennutzer die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.