In diesem Dokument wird beschrieben, wie Sie das Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens Endnutzer-ID, App-ID oder beides.
Anwendungs-IDs werden automatisch einem OAuth-Zugriffstoken hinzugefügt. Daher ist es nach der Verwendung des wie Sie den Tokenzugriff für eine Organisation aktivieren, können Sie nach App-ID auf Tokens zugreifen.
Zum Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens nach Endnutzer-ID muss eine Endnutzer-ID vorhanden sein im Zugriffstoken. Das folgende Verfahren beschreibt, wie Sie eine Endnutzer-ID zu einem vorhandenen Token hinzufügen oder auf neue Tokens.
Wenn Edge ein OAuth 2.0-Zugriffstoken generiert, hat das Token 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", "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", "refresh_count" : "0" }
Wichtige Hinweise:
- Das Feld
application_name
enthält die UUID der mit dem Token verknüpften App. Wenn Sie den Abruf und Widerruf aktivieren der OAuth 2.0-Zugriffstokens nach App-ID. Dies ist die von Ihnen verwendete App-ID. - Das Feld
access_token
enthält den Wert des Zugriffstokens für OAuth 2.0.
Konfigurieren Sie die OAuth 2.0-Richtlinie, um die Nutzer-ID wie unten beschrieben in das Token aufzunehmen.
Die Endbenutzer-ID ist die Zeichenfolge, die Edge als Entwickler-ID verwendet, nicht die E-Mail-Adresse des Entwicklers Adresse. Sie können die Entwickler-ID anhand der E-Mail-Adresse des Entwicklers ermitteln, indem Sie die Developer API-Aufruf.
Nachdem Sie Edge so konfiguriert haben, dass die Endbenutzer-ID in das Token aufgenommen wird, wird sie als die app_enduser ein:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "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", "refresh_count" : "0" }
APIs zum Abrufen und Widerrufen OAuth 2.0-Zugriffstokens nach Nutzer-ID und App-ID
Verwenden Sie die folgenden APIs, um auf OAuth-Tokens nach Nutzer-ID, App-ID oder beidem zuzugreifen:
- OAuth 2.0 herunterladen Zugriffstoken nach Endnutzer-ID oder App-ID
- OAuth 2.0 widerrufen Zugriffstoken nach Endnutzer-ID oder App-ID
Verfahren zum Aktivieren des Tokenzugriffs
Gehen Sie wie folgt vor, um das Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens zu aktivieren: Endnutzer-ID und App-ID.
Schritt 1: Unterstützung für Tokenzugriff für eine Organisation aktivieren
Sie müssen den Tokenzugriff für jede Organisation separat aktivieren. Rufen Sie die PUT API unten für jede Organisation, für die das Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens aktiviert werden soll Endnutzer-ID oder App-ID abgerufen werden.
Der Nutzer, der den folgenden Aufruf tätigt, muss die Rolle orgadmin haben oder
opsadmin
für die Organisation. Ersetzen Sie values durch Ihre organisationsspezifische
Werte:
curl -H "Content-type:text/xml" -X POST \ https://management_server_IP;:8080/v1/organizations/org_name \ -d '<Organization name="org_name"> <Properties> <Property name="features.isOAuthRevokeEnabled">true</Property> <Property name="features.isOAuth2TokenSearchEnabled">true</Property> </Properties> </Organization>' \ -u USER_EMAIL:PASSWORD
Schritt 2: Berechtigungen für die Rolle „OpsAdmin“ in der Organisation festlegen
Nur die Rollen orgadmin
und opsadmin
in einer Organisation
sollte Berechtigungen zum Abrufen (HTTP GET) und Widerruf (HTTP PUT) von OAuth 2.0-Tokens erhalten
basierend auf der User-ID oder der App-ID. Um den Zugriff zu steuern, legen Sie für die Ressource "/oauth2" die Berechtigungen "get" und "put" fest für
für ein Unternehmen. Diese Ressource hat eine URL im folgenden Format:
https://management_server_IP:8080/v1/organizations/org_name/oauth2
Die Rolle orgadmin
sollte bereits die erforderlichen Berechtigungen haben. Für die
opsadmin
für die /oauth2-Ressource haben, sollten die Berechtigungen so aussehen:
dies:
<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>
Sie können die Methode Get
Berechtigung für einen Single Resource API-Aufruf, um zu sehen, welche Rollen Berechtigungen für den
/oauth2
.
Basierend auf der Antwort können Sie die Schaltfläche Add Berechtigungen für Ressource für eine Rolle und Löschen der Berechtigung für Ressourcen-API-Aufrufe, um notwendige Anpassungen an /oauth2 vorzunehmen Ressourcenberechtigungen.
Weisen Sie die Rolle opsadmin
mit dem folgenden curl
-Befehl zu.
Berechtigungen get
und put
für die Ressource /oauth2
. Ersetzen
den values durch Ihre organisationsspezifischen Werte:
curl -X POST -H 'Content-type:application/xml' \ http://management_server_IP:8080/v1/organizations/org_name/userroles/opsadmin/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>' \ -u USEREMAIL:PASSWORD
Mit dem folgenden curl
-Befehl widerrufen Sie get
und put
.
Berechtigungen für die Ressource /oauth2
von anderen Rollen als
orgadmin
und opsadmin
. Ersetzen Sie values durch Ihren
organisationsspezifische Werte:
curl -X DELETE -H 'Content-type:application/xml' \ http://management_server_IP:8080/v1/organizations/org_name/userroles/roles/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions></Permissions> </ResourcePermission>' \ -u USEREMAIL:PASSWORD
Schritt 3: Festlegen Eigenschaft oauth_max_search_limit
Achten Sie darauf, dass die conf_keymanagement_oauth_max_search_limit
Unterkunft in /opt/apigee/customer/application/management-server.properties
Datei auf 100 eingestellt ist:
conf_keymanagement_oauth_max_search_limit = 100
Falls diese Datei nicht vorhanden ist, erstellen Sie sie.
Dieses Attribut legt die Seitengröße fest, die beim Abrufen von Tokens verwendet wird. Apigee empfiehlt einen Wert von 100, aber Sie können ihn nach Belieben festlegen.
Bei einer Neuinstallation sollte die Eigenschaft bereits auf 100 festgelegt sein. Wenn Sie die Einstellung dieser Eigenschaft haben, starten Sie den Verwaltungsserver und den Message Processor mit der Methode Befehle:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Schritt 4: OAuth 2.0-Richtlinie konfigurieren, die Tokens generiert, um die Endnutzer-ID einzubeziehen
OAuth 2.0-Richtlinie konfigurieren, die zum Generieren von Zugriffstokens verwendet wird, um die Endnutzer-ID einzuschließen in das Token. Durch Hinzufügen von Endnutzer-IDs in das Zugriffstoken können Sie Tokens abrufen und widerrufen, indem Sie ID.
Um die Richtlinie so zu konfigurieren, dass eine Endnutzer-ID in ein Zugriffstoken aufgenommen wird, erstellt die Anfrage, muss das Zugriffstoken die Endnutzer-ID enthalten und Sie müssen die Eingabevariable angeben, die enthält die Endnutzer-ID.
Die OAuth 2.0-Richtlinie unten mit dem Namen „GenerateAccessTokenClient“ generiert einen OAuth 2.0-Zugriff.
Token. Beachten Sie das fett formatierte <AppEndUser>
-Tag, mit dem
Variable mit der Endnutzer-ID:
<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>
Anschließend können Sie mit dem folgenden curl
-Befehl den OAuth 2.0-Zugriff generieren.
Token mit der Nutzer-ID als appuserID
-Header übergeben:
curl -H "appuserID:6ZG094fgnjNf02EK" \ https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials \ -X POST -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNXFmP&client_secret=gk5K5lIp943AY4'
In diesem Beispiel wird appuserID
als Anfrageheader übergeben. Sie können die Prüfung bestehen
Informationen im Rahmen einer Anforderung
auf viele verschiedene Arten zu erhalten. Sie haben beispielsweise folgende Möglichkeiten:
- Verwenden Sie eine Variable für Formularparameter:
request.formparam.appuserID
- Eine Ablaufvariable mit der Endnutzer-ID verwenden