Edge for Private Cloud v. 4.17.09
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:
- 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.
- 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:
- 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 '
Übergeben Sie zur Autorisierung reservierte OAuth2-Client-Anmeldedaten im Authorization-Header. Der Aufruf gibt die Zugriffs- und Aktualisierungstokens auf dem Bildschirm aus. Speichern Sie die Tokens zur späteren Verwendung. - Ü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. - 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'
Übergeben Sie zur Autorisierung im Header Authorization reservierte OAuth2-Client-Anmeldedaten.
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:
- 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. - 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. - 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.