SAML mit automatisierten Aufgaben verwenden

Edge for Private Cloud Version 4.17.09

Wenn du SAML mit der Edge API verwendest, wird der Prozess, mit dem du OAuth2-Zugriff und Aktualisierungstokens aus der SAML-Bestätigung abrufen kannst, als Sicherheitscode-Ablauf bezeichnet. Beim Ablauf mit Sicherheitscode erhalten Sie über einen Browser einen Einmalcode, mit dem Sie dann OAuth2-Tokens abrufen.

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 automatisieren möchten, wenn SAML aktiviert ist, 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 automatische Tokengenerierung durch die Verwendung von Nutzerkonten für Maschinen. Ein Nutzer eines Geräts kann OAuth2-Tokens abrufen, ohne einen Sicherheitscode angeben zu müssen. Das bedeutet, dass Sie den Abruf und die Aktualisierung von OAuth2-Tokens mithilfe der Edge Management API vollständig automatisieren können.

Nutzer für einen Computer erstellen

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

Der Computernutzer wird im Edge-Datenspeicher erstellt und gespeichert, nicht bei Ihrem SAML-Identitätsanbieter. Daher sind Sie nicht dafür verantwortlich, den Computernutzer mithilfe der Edge-Benutzeroberfläche und der Edge Management API zu verwalten.

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

So erstellen Sie einen Nutzer für einen Computer:

  1. Verwenden Sie den folgenden Befehl apigee-ssoadminapi.sh, um den Nutzer 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 Administratornutzername, der durch das Attribut SSO_ADMIN_NAME in der Konfigurationsdatei definiert ist, mit der das Edge-SSO-Modul konfiguriert wird. Der Standardwert ist ssoadmin.
    • SSO_ADMIN_SECRET ist das Administratorpasswort, wie in der Konfigurationsdatei unter der Property SSO_ADMIN_SECRET angegeben.

      In diesem Beispiel können Sie die Werte für --port und --ssl weglassen, da das apigee-sso-Modul die Standardwerte 9099 für --port und http für --ssl verwendet. Wenn diese Standardwerte in Ihrer Installation nicht verwendet werden, geben Sie sie entsprechend an.
  2. Melden Sie sich in der Edge-Benutzeroberfläche an, fügen Sie die E-Mail-Adresse des Nutzers Ihrer Organisation hinzu und weisen Sie ihm die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.

Token für Nutzer des Computers abrufen und aktualisieren

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

So rufen Sie OAuth2-Tokens für den Nutzer des Computers ab:

  1. Verwende 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
    '

    Übergebe für die Autorisierung im Authorization-Header ein reserviertes OAuth2-Client-Anmeldedaten. Der Aufruf druckt die Zugriffs- und Aktualisierungstokens auf den Bildschirm. Speichern Sie die Tokens für später.
  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

    wobei orgName der Name der Organisation ist, die den Nutzer des Computers enthält.
  3. Wenn Sie das Zugriffstoken später aktualisieren möchten, verwenden Sie den folgenden Aufruf mit dem Aktualisierungstoken:
    > 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'


    Geben Sie für die Autorisierung im Authorization-Header ein reserviertes OAuth2-Client-Anmeldedaten ein.

Mit der Edge Management API einen Nutzer für einen Computer erstellen

Sie können einen Nutzer für einen Computer mit der Edge Management API statt mit dem Dienstprogramm apigee-ssoadminapi.sh erstellen. So erstellen Sie einen Nutzer für einen Computer:

  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 beim Installieren von apigee-sso festgelegt haben, wie in der Konfigurationsdatei unter der Property SSO_ADMIN_SECRET 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 Nutzer zu erstellen und das im vorherigen Schritt empfangene Token zu übergeben:
    > 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"


    Das Passwort des Nutzers wird in späteren Schritten benötigt.
  3. Melden Sie sich in der Edge-Benutzeroberfläche an, fügen Sie die E-Mail-Adresse des Nutzers Ihrer Organisation hinzu und weisen Sie ihm die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.