Wenn Sie einen externen IDP mit der Edge API verwenden, wird der Prozess, mit dem Sie OAuth2-Zugriffs- und Aktualisierungstokens aus der IDP-Interaktion abrufen, als Sicherheitscode-Ablauf bezeichnet. Beim Sicherheitscode-Vorgang verwenden Sie einen Browser, um einen einmaligen Sicherheitscode abzurufen, mit dem Sie dann OAuth2-Tokens abrufen.
Ihre Entwicklungsumgebung unterstützt jedoch möglicherweise die Automatisierung gängiger Entwicklungsaufgaben, z. B. die Testautomatisierung oder CI/CD. Wenn Sie diese Aufgaben automatisieren möchten, wenn ein externer IDP 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 automatisierte Tokengenerierung durch die Verwendung von Maschinen-Nutzern in Organisationen, für die ein IdP aktiviert ist. 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.
Es gibt zwei Möglichkeiten, einen Maschinennutzer für eine IDP-fähige Organisation zu erstellen:
Diese Methoden werden in den folgenden Abschnitten beschrieben.
Sie können keinen Maschinennutzer für Organisationen erstellen, die keinen externen IdP aktiviert haben.
Maschinennutzer mit apigee-ssoadminapi.sh erstellen
Verwenden Sie das Dienstprogramm apigee-ssoadminapi.sh, um einen Maschinennutzer in einer IDP-fähigen 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 für jede Organisation einen separaten Maschinennutzer erstellen.
Der Maschinennutzer wird im Edge-Datenspeicher erstellt und gespeichert, nicht in Ihrem IDP. Daher sind Sie nicht für die Verwaltung des Maschinennutzers über die Edge-Benutzeroberfläche 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 mit apigee-ssoadminapi.sh:
- 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 Apigee-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 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 mit der Management API:
- 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 Maschinen-Nutzers zu Ihren Organisationen hinzu und weisen Sie dem Maschinen-Nutzer die erforderliche Rolle zu. Weitere Informationen finden Sie unter Globale Nutzer hinzufügen.
Maschinennutzer-Tokens 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 wie im folgenden Beispiel gezeigt als
Bearer-Header an einen Edge Management API-Aufruf:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
Dabei ist org_name 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'