Die Standardauthentifizierung ist eine Möglichkeit, sich bei Aufrufen der Edge Management API zu authentifizieren.
Sie können beispielsweise die folgende curl-Anfrage an die Edge Management API senden, um auf Informationen zu Ihrer Organisation zuzugreifen:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
In diesem Beispiel verwenden Sie die Option curl -u, um Anmeldedaten für die Standardauthentifizierung zu übergeben. Alternativ können Sie ein OAuth2-Token im Header Bearer übergeben, um Edge Management API-Aufrufe auszuführen, wie im folgenden Beispiel gezeigt:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Nachdem Sie einen externen IdP für die Authentifizierung aktiviert haben, können Sie optional die Basisauthentifizierung deaktivieren. Wenn Sie die Standardauthentifizierung deaktivieren, funktionieren alle Skripts (z. B. Maven, Shell und apigeetool), die auf Edge Management API-Aufrufen basieren, die die Standardauthentifizierung unterstützen, nicht mehr. Sie müssen alle API-Aufrufe und Skripts aktualisieren, die die Basisauthentifizierung verwenden, um OAuth2-Zugriffstokens im Bearer-Header zu übergeben.
Tokens mit „get_token“ abrufen und aktualisieren
Das Dienstprogramm get_token tauscht Ihre Authentifizierungsdaten für die Basisauthentifizierung (und in einigen Fällen einen Passcode) gegen ein OAuth2-Zugriffs- und Aktualisierungstoken aus. Das Dienstprogramm get_token akzeptiert Ihre Anmeldedaten und gibt ein gültiges Zugriffstoken zurück. Wenn ein Token aktualisiert werden kann, wird es vom Dienstprogramm aktualisiert und zurückgegeben. Wenn das Aktualisierungstoken abläuft, werden Nutzeranmeldedaten abgefragt.
Das Dienstprogramm get_token speichert die Tokens auf dem Laufwerk, damit sie bei Bedarf verwendet werden können. Außerdem wird ein gültiges Zugriffstoken in stdout ausgegeben. Von dort aus können Sie eine Browsererweiterung wie Postman verwenden oder sie in eine Umgebungsvariable zur Verwendung in curl einbetten.
So rufen Sie ein OAuth2-Zugriffstoken für Edge-Management-API-Aufrufe ab:
- Laden Sie das
sso-cli-Bundle herunter:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
Dabei ist EDGE_SSO_IP_DNS die IP-Adresse oder der DNS-Name des Computers, auf dem das Apigee-SSO-Modul gehostet wird. Wenn Sie TLS für Apigee-SSO konfiguriert haben, verwenden Sie
httpsund die richtige TLS-Portnummer. - Entpacken Sie das
ssocli-bundle.zip-Bundle, wie im folgenden Beispiel gezeigt:unzip ssocli-bundle.zip
- Installieren Sie
get_tokenin/usr/local/bin, wie im folgenden Beispiel gezeigt:./install -b PATH
Mit der Option
-bwird ein anderer Speicherort angegeben. - Legen Sie die Umgebungsvariable
SSO_LOGIN_URLauf Ihre Log-in-URL im folgenden Format fest:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
Dabei ist EDGE_SSO_IP_DNS die IP-Adresse des Computers, auf dem das Apigee-SSO-Modul gehostet wird. Wenn Sie TLS für Apigee-SSO konfiguriert haben, verwenden Sie
httpsund die richtige TLS-Portnummer. - (Nur SAML) Rufen Sie in einem Browser die folgende URL auf, um einen einmaligen Sicherheitscode zu erhalten:
http://EDGE_SSO_IP_DNS:9099/passcode
Wenn Sie TLS für Apigee-SSO konfiguriert haben, verwenden Sie
httpsund die richtige TLS-Portnummer.Diese Anfrage gibt einen einmaligen Sicherheitscode zurück, der so lange gültig bleibt, bis Sie die URL aktualisieren, um einen neuen Sicherheitscode zu erhalten, oder bis Sie den Sicherheitscode mit
get_tokenverwenden, um ein Zugriffstoken zu generieren.Beachten Sie, dass Sie einen Sicherheitscode nur verwenden können, wenn Sie sich mit einem SAML-IdP authentifizieren. Sie können keinen Sicherheitscode verwenden, um sich bei einem LDAP-IdP zu authentifizieren.
- Rufen Sie
get_tokenauf, um das OAuth2-Zugriffstoken abzurufen, wie im folgenden Beispiel gezeigt:get_token -u EMAIL_ADDRESS
Dabei ist EMAIL_ADDRESS die E-Mail-Adresse eines Edge-Nutzers.
(Nur SAML) Geben Sie zusätzlich zur E-Mail-Adresse den Passcode in der Befehlszeile ein, wie im folgenden Beispiel gezeigt:
get_token -u EMAIL_ADDRESS -p PASSCODE
Das Dienstprogramm
get_tokenruft das OAuth2-Zugriffstoken ab, gibt es auf dem Bildschirm aus und schreibt es und das Aktualisierungstoken in~/.sso-cli. - Übergeben Sie das Zugriffstoken als
Bearer-Header an einen Edge Management API-Aufruf, wie im folgenden Beispiel gezeigt:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- Nachdem Sie zum ersten Mal ein neues Zugriffstoken erhalten haben, können Sie das Zugriffstoken abrufen und mit einem einzigen Befehl an einen API-Aufruf übergeben, wie im folgenden Beispiel gezeigt:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
Wenn das Zugriffstoken abgelaufen ist, wird es bei dieser Form des Befehls automatisch aktualisiert, bis das Aktualisierungstoken abläuft.
(Nur SAML) Nach Ablauf des Aktualisierungstokens werden Sie von get_token aufgefordert, einen neuen Passcode einzugeben. Sie müssen die oben in Schritt 3 angegebene URL aufrufen und einen neuen Sicherheitscode generieren, bevor Sie ein neues OAuth-Zugriffstoken generieren können.
Verwaltungs-API zum Abrufen und Aktualisieren von Tokens verwenden
Unter OAuth2-Sicherheit mit der Apigee Edge Management API verwenden wird gezeigt, wie Sie mit der Edge Management API Tokens abrufen und Aktualisierungstokens abrufen. Sie können auch Edge API-Aufrufe verwenden, um Tokens abzurufen, die aus SAML-Assertions generiert wurden.
Der einzige Unterschied zwischen den API-Aufrufen, die unter OAuth2-Sicherheit mit der Apigee Edge Management API verwenden dokumentiert sind, besteht darin, dass die URL des Aufrufs auf Ihren Zonennamen verweisen muss. Außerdem müssen Sie zum Generieren des ersten Zugriffstokens mit einem SAML-IdP den Passcode angeben, wie in Schritt 3 des obigen Verfahrens gezeigt.
Übergeben Sie zur Autorisierung reservierte OAuth2-Clientanmeldedaten im Header Authorization. Der Aufruf gibt die Zugriffs- und Aktualisierungstokens auf dem Bildschirm aus.
Zugriffstoken anfordern
(LDAP) 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=USER_EMAIL&password=USER_PASSWORD'
(SAML) 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 \ https://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
Für die Authentifizierung mit einem SAML-IdP ist ein temporärer Sicherheitscode erforderlich, für einen LDAP-IdP jedoch nicht.
Zugriffstoken aktualisieren
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 \ https://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'