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:
- 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_NAMEin der Konfigurationsdatei definiert ist, die zum Konfigurieren des Edge-SSO-Moduls verwendet wird. Der Standardwert istssoadmin. - SSO_ADMIN_SECRET ist das Administratorpasswort, das durch das Attribut
SSO_ADMIN_SECRETin der Konfigurationsdatei angegeben ist.
In diesem Beispiel können Sie die Werte für
--portund--sslweglassen, da das Modulapigee-ssodie Standardwerte 9099 für--portund http für--sslverwendet. Wenn Ihre Installation diese Standardwerte nicht verwendet, geben Sie sie entsprechend an. - SSO_ADMIN_NAME ist der Administrator-Nutzername, der durch das Attribut
- 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'
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'
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:
- Verwenden Sie den folgenden
curl-Befehl, um ein Token für den Nutzerssoadminabzurufen, den Nutzernamen des Administratorkontos fürapigee-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-ssofestgelegt haben, wie im AttributSSO_ADMIN_SECRETin 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.