SAML mit automatisierten Aufgaben verwenden

Edge for Private Cloud v4.18.05

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, das 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'

    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. Wenn Sie das Zugriffstoken später 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" \
      -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 erstellen, anstatt das Dienstprogramm apigee-ssoadminapi.sh zu verwenden.

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 im 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.