Edge for Private Cloud Version 4.16.09
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 Anwendung, die mit dem Token verknüpft ist. 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 OAuth 2.0-Zugriffstokens.
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 die Werte in {curly geschweifte Klammern} durch die organisationsspezifischen Werte:
> curl -H "Content-type:text/xml" -X POST \ https://<ms-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 {userEmail}:{mypassword}
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://<ms-ip>:8080/v1/organizations/{org_name}/oauth2
Die Rolle orgadmin sollte bereits die erforderlichen Berechtigungen haben. Für die opsadmin für die Ressource /oauth2 festgelegt, sollten die Berechtigungen wie folgt 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-Ressource.
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 mit dem folgenden cURL-Befehl der Rolle opsadmin die Berechtigungen get und put für die Ressource /oauth2 zu. Ersetzen Sie die Werte in {geschweifte Klammern} durch Ihre organisationsspezifischen Werte:
> curl -X POST -H 'Content-type:application/xml' \ http://<ms-ip>:8080/v1/organizations/{org}/userroles/opsadmin/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>' \ -u {USEREMAIL}:{PWD}
Verwenden Sie den folgenden cURL-Befehl, um die Berechtigungen get und put für die Ressource /oauth2 für andere Rollen zu widerrufen als orgadmin und opsadmin. Ersetzen Sie die Werte in {curly geschweifte Klammern} durch die organisationsspezifischen Werte:
> curl -X DELETE -H 'Content-type:application/xml' \ http://<msip>:8080/v1/organizations/{org-name}/userroles/{roles}/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions></Permissions> </ResourcePermission>' \ -u {USEREMAIL}:{PWD}
Schritt 3: Festlegen Eigenschaft oauth_max_search_limit
Achten Sie darauf, dass das conf_keymanagement_oauth_max_search_limit in /<inst_dir>/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:
> /<inst_rt>/apigee/apigee-service/bin/apigee-service edge-management-server restart > /<inst_rt>/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 gedruckte Hinzufügen des <AppEndUser>-Tags, das die 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 das OAuth 2.0-Zugriffstoken generieren, indem Sie Die Nutzer-ID als appuserID Überschrift:
> 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 hat die appuserID wird als Anfrageheader übergeben. Es gibt verschiedene Möglichkeiten, Informationen als Teil einer Anfrage zu übergeben. Alternativ haben Sie folgende Möglichkeiten:
- Eine Formularparametervariable verwenden: request.formparam.appuserID
- Eine Ablaufvariable mit der Endnutzer-ID verwenden