Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Sie können OAuth 2.0-Zugriffstokens mithilfe der Richtlinie RevokeOAuthV2 nach Endnutzer-ID, Anwendungs-IDs oder nach beidem widerrufen. "Endnutzer" bezeichnet den Nutzer der Anwendung, die die API aufruft.
Wann Sie die Nutzer-ID in einem Zugriffstoken speichern müssen
Nutzer-IDs sind standardmäßig nicht in Zugriffstokens enthalten. Manchmal ist es aber hilfreich, die Nutzer-ID in einem Zugriffstoken zu speichern. Beispiele:
- Ein Feature für Ihre Website oder App, damit Nutzer sehen können, welche Drittanbieter-Apps sie autorisiert haben und den Zugriff auf diese Apps bei Bedarf widerrufen können.
- Ein Feature, mit dem ein autorisierter Nutzer alle Zugriffstokens widerrufen kann, die mit einer bestimmten Entwickleranwendung verknüpft sind.
Informationen zu OAuth-Zugriffstokens
Ein von Apigee generiertes OAuth 2.0-Zugriffstoken hat standardmäßig das folgende Format:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Wichtige Hinweise:
- Das Feld application_name enthält die UUID der Anwendung, die mit dem Token verknüpft ist. Wenn Sie den Widerruf von OAuth 2.0-Zugriffstokens nach Anwendungs-ID aktivieren, gilt dies für die von Ihnen verwendete Anwendungs-ID.
- Das Feld access_token enthält den Wert des OAuth 2.0-Zugriffstokens.
- Im Standard-OAuth-Zugriffstoken gibt es kein Feld für die Endnutzer-ID.
Um OAuth 2.0-Zugriffstoken nach Endnutzer-ID zu widerrufen, müssen Sie in der OAuth 2.0-Richtlinie die Nutzer-ID in das Token aufnehmen. Wenn Sie die Richtlinie so konfiguriert haben, dass die Endnutzer-ID im Token enthalten ist, wird sie wie unten dargestellt als Feld app_enduser
angezeigt:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
Richtlinien konfigurieren
Um Tokens nach Nutzer-ID zu widerrufen, müssen Sie zuerst die OAuth 2.0-Richtlinie konfigurieren, um dem Zugriffstoken die Nutzer-ID hinzuzufügen. Nach der Aufnahme von Endnutzer-IDs in Zugriffstokens können Sie Tokens nach Endnutzer-ID widerrufen.
Um die Richtlinie für das Einfügen der Endnutzer-ID in ein Zugriffstoken zu konfigurieren, müssen Sie die Eingabevariable angeben, die die Endnutzer-ID enthält. Zur Festlegung der Variable verwenden Sie das Tag <AppEndUser>
:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
Im Folgenden ist eine RevokeOAuthV2
-Beispielrichtlinie aufgeführt, die für den Widerruf durch EndUserId
konfiguriert ist:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <EndUserId ref="request.header.appuserID"></EndUserId> <Cascade>false</Cascade> </RevokeOAuthV2>
Weitere Informationen finden Sie unter OAuth V2-Richtlinie widerrufen.
Mit dem folgenden Beispielbefehl wird ein Token generiert und die Nutzer-ID im Header appuserID
übergeben:
curl -H "appuserID:6ZG094fgnjNf02EK" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Authorization: Basic c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ" \ -X POST "https://apitest.acme.com/oauth/token" \ -d "grant_type=client_credentials"
Sie können die Informationen als Teil einer Anfrage auch auf andere Weise übergeben. Alternativ haben Sie folgende Möglichkeiten:
- Eine Formularparametervariable verwenden: request.formparam.appuserID
- Eine Ablaufvariable mit der Endnutzer-ID verwenden