Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
SAML unterstützt eine Umgebung für die Einmalanmeldung (Single Sign-On, SSO). Wenn Sie SAML mit Edge verwenden, können Sie SSO für die Edge-Benutzeroberfläche und die Edge API sowie für alle anderen von Ihnen bereitgestellten Dienste unterstützen, die ebenfalls SAML unterstützen.
Voraussetzung: Sie müssen SAML aktivieren für mindestens eine Organisation, bevor Sie damit auf die Edge API zugreifen können.
Unterschiede zwischen SAML und OAuth2
Nachdem SAML eingerichtet wurde, ist die Verwendung sehr ähnlich wie die Verwendung von OAuth2 für den Zugriff auf die Edge API. Wenn Sie die Edge API aufrufen, fügen Sie Ihrer Anfrage ein OAuth2-Zugriffstoken in Ihrer Anfrage hinzu.
Der Hauptunterschied zwischen SAML und OAuth2 beim Zugriff auf die Edge API besteht darin, wie Sie Tokens erhalten. Bei SAML müssen Sie beim Abrufen Ihres Tokenpaars Folgendes angeben:
- Zonen:Nutzer von Edge für die Public Cloud müssen beim Abrufen von Tokens ihren Zonennamen angeben.
- Sicherheitscode: Fügen Sie beim Anfordern eines Zugriffstoken-/Aktualisierungstoken Paars einen Einmal-Sicherheitscode hinzu.
SAML verwendet dieselben Endpunkte für den Edge OAuth2-Dienst, wobei der entsprechende Zonennamen hinzugefügt wird.
Zum Abrufen von Zugriffstokens mit SAML können Sie eine der folgenden Methoden verwenden, die in diesem Abschnitt beschrieben werden:
Außerdem können Sie den Prozess zur Tokengenerierung für Maschinenutzer automatisieren, wie unter Prozess zur Tokengenerierung automatisieren beschrieben.
Zugriffstokens mit „get_token“ abrufen
Mit dem Dienstprogramm get_token können Sie Ihre Anmeldedaten gegen OAuth2-Zugriffs- und
Aktualisierungstokens austauschen, die Sie mit SAML verwenden.
So rufen Sie ein Zugriffstoken mit „get_token“ ab :
- Legen Sie die Umgebungsvariable
SSO_LOGIN_URLauf Ihre Anmelde-URL fest. Die Anmelde-URL hat das folgende Format:https://zoneName.login.apigee.com
Wenn Sie beispielsweise eine Zone mit dem Namen „acme“ haben, legen Sie
SSO_LOGIN_URLauf „https://acme.login.apigee.com“ fest, wie im folgenden Beispiel gezeigt:export SSO_LOGIN_URL=https://acme.login.apigee.com
- Rufen Sie
get_tokenauf, um das OAuth2-Zugriffstoken abzurufen:get_token -u me@example.com
Sie werden aufgefordert, die angezeigte URL aufzurufen, um einen Einmal-Sicherheitscode zu erhalten:
Get passcode from https://acme.login.apigee.com/passcode [Note: Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:
Wenn Sie sich vor Kurzem nicht über Ihren Identitätsanbieter angemeldet haben, werden Sie aufgefordert, sich anzumelden.
Diese URL gibt einen Einmal-Sicherheitscode zurück, der so lange gültig ist, bis Sie die URL aktualisieren, um einen neuen Sicherheitscode zu erhalten, oder Sie den Sicherheitscode mit
get_tokenverwenden, um ein Zugriffstoken zu generieren. Beispiel:
-
Geben Sie den Sicherheitscode ein. Das Dienstprogramm
get_tokenruft die OAuth2-Tokens ab, gibt das Zugriffstoken instdoutaus und schreibt die Zugriffs- und Aktualisierungstokens in~/.sso-cli. - Rufen Sie die Edge API auf und übergeben Sie das Zugriffstoken im
Authorization: BearerHeader, wie im folgenden Beispiel gezeigt:curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Der Wert des Zugriffstokens kann aus
stdoutkopiert werden.In diesem Beispiel werden Details zur angegebenen Organisation abgerufen. Eine vollständige Liste der Management API-Endpunkte finden Sie in der Apigee Edge API-Referenz.
Wenn Ihr Zugriffstoken abläuft, können Sie get_token noch einmal aufrufen, um ein neues Zugriffstoken zu erhalten. Beispiel:
get_token -u me@example.com
Sie werden erst dann nach einem neuen Sicherheitscode gefragt, wenn das Aktualisierungstoken abläuft.
Wenn das Aktualisierungstoken abläuft, fordert get_token Sie auf, einen neuen Sicherheitscode einzugeben. Sie müssen
einen neuen Sicherheitscode generieren, bevor Sie ein neues OAuth2-Zugriffstoken generieren können.
Zugriffstokens mit dem Edge OAuth2-Dienst abrufen
Sie können den Edge OAuth2-Dienst verwenden, um Zugriffstokens abzurufen, die Sie mit SAML verwenden. Zur Authentifizierung bei der Edge API verwenden Sie einen Sicherheitscode in Ihrer ersten Anfrage, um ein Zugriffs-/Aktualisierungstoken-Paar zu erhalten, und noch einmal, um ein neues Tokenpaar zu erhalten.
So rufen Sie ein Tokenpaar mit der Edge API ab:
- Rufen Sie in einem Browser die folgende URL auf, um einen Einmal-Sicherheitscode zu erhalten:
https://zoneName.login.apigee.com/passcode
Wenn Sie beispielsweise eine Zone mit dem Namen „acme“ haben, rufen Sie die folgende URL auf:
https://acme.login.apigee.com/passcode
Wenn Sie sich vor Kurzem nicht über Ihren Identitätsanbieter angemeldet haben, werden Sie aufgefordert, sich anzumelden.
Diese URL gibt einen Einmal-Sicherheitscode zurück, der als Ihre Anmeldedaten zum Abrufen von Tokens dient und so lange gültig ist, bis Sie die URL aktualisieren, um einen neuen Sicherheitscode zu erhalten. Alternativ können Sie den Sicherheitscode mit
get_tokenverwenden, um ein Zugriffstoken zu generieren. Beispiel:
- Senden Sie eine Anfrage an die Edge API, wie im folgenden Beispiel gezeigt:
curl https://zoneName.login.apigee.com/oauth/token \ -s \ -H "Accept: application/json" \ -d 'grant_type=password&response_type=token&passcode=passcode'Der passcode dient als Ihre Anmeldedaten für die Autorisierung.
Wobei:
- Der
AuthorizationHeader ist "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (verwenden Sie genau diesen Wert). - Der Anfragetyp ist
POST. - Der Text der Anfrage enthält Folgendes:
grant_typeist „password“.response_typeist „token“.passcode, wobei „passcode“ der Sicherheitscode ist, der im vorherigen Schritt zurückgegeben wurde.
Der Aufruf gibt die Zugriffs- und Aktualisierungstokens auf dem Bildschirm aus.
- Der
So aktualisieren Sie Ihr Zugriffstoken :
Senden Sie eine Anfrage an https://zoneName.login.apigee.com/oauth/token,
wie im folgenden Beispiel gezeigt:
curl https://zoneName.login.apigee.com/oauth/token \
-d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'Wobei:
- Der Text der Anfrage enthält Folgendes:
grant_typeist „refresh_token“.refresh_tokenist der Wert des Aktualisierungstokens.
- Der
AuthorizationHeader ist "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (verwenden Sie genau diesen Wert). - Der Anfragetyp ist
POST.
Mit SAML auf die Edge API zugreifen
Sie können Tools wie curl oder das Apigee-Dienstprogramm acurl
verwenden, um
auf die Edge API zuzugreifen.
Mit curl rufen Sie die Edge API auf und übergeben das Zugriffstoken im
Authorization: Bearer Header, wie im folgenden Beispiel gezeigt:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Mit acurl müssen Sie den Header Authorization nicht angeben. Beispiel:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
In diesen Beispielen wird ein Edge API-Endpunkt aufgerufen, der Details zur angegebenen Organisation abruft. Eine vollständige Liste der Edge API-Endpunkte finden Sie in der Apigee Edge API-Referenz.
Weitere Methoden zum Aufrufen der API, einschließlich Möglichkeiten, Ihr Token auf dem neuesten Stand zu halten , finden Sie unter Mit OAuth2 auf die Edge API zugreifen.
Maschinennutzer in SAML-Zonen
Mit den Dienstprogrammen acurl und get_token können Sie den automatisierten Zugriff
auf die Edge APIs für Maschinenutzer in SAML-Zonen per Skript ausführen.
Im folgenden Beispiel wird gezeigt, wie Sie mit get_token ein Zugriffstoken anfordern und dann den Tokenwert einem curl Aufruf hinzufügen:
USER=me@example.comPASS=not-that-secretTOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Wenn Sie im obigen Beispiel den Wert von -m auf einen leeren String setzen, werden Maschinenutzer
nicht zur Eingabe eines MFA-Codes aufgefordert. Mit dem Flag --force-basic-auth wird die Standardaufforderung für einen Sicherheitscode überschrieben, die durch Anfragen mit SAML-Zonen ausgelöst wird.
Alternativ können Sie die Tokenanfrage und den curl Aufruf mit dem acurl Dienstprogramm kombinieren.
Beispiel:
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'