Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens nach Endnutzer-ID, App-ID oder beidem aktivieren

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

In diesem Abschnitt wird beschrieben, wie Sie das Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens aktivieren, indem Sie Endnutzer-ID, App-ID oder beides. Die Endnutzer-ID-Funktion erfordert eine spezielle Einrichtung, wie in diesem . "Endnutzer" bezeichnet den Nutzer der Anwendung, die die API aufruft.

Wann sollte der Endnutzer-ID-Zugriff aktiviert werden?

Manchmal ist es sinnvoll, die Nutzer-ID in einem Zugriffstoken zu speichern. Zugriff auf Endnutzer-ID aktivieren wenn es einen geeigneten Anwendungsfall dafür gibt. Beispiel:

  • 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

Anwendungs-IDs werden automatisch einem OAuth-Zugriffstoken hinzugefügt. Wenn Sie das Token aktivieren, wie unten beschrieben, können Sie Zugriffstokens anhand der App-ID widerrufen.

Zum Abrufen und Widerrufen von OAuth 2.0-Zugriffstokens nach Endnutzer-ID muss eine Endnutzer-ID vorhanden sein in den Zugriffstokens. Das folgende Verfahren beschreibt, wie eine Endnutzer-ID zu einer vorhandenen Token.

Wenn Edge ein OAuth 2.0-Zugriffstoken generiert, hat das Token standardmäßig das folgende Format: unten:

{
 "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 Abruf und Widerruf aktivieren von OAuth 2.0-Zugriffstokens nach App-ID sortiert haben, ist dies die von Ihnen verwendete App-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 Abruf- und Widerruf von OAuth 2.0-Zugriffstokens nach Endnutzer-ID, müssen Sie die OAuth 2.0-Richtlinie konfigurieren. um die User-ID in das Token aufzunehmen, wie im folgenden Verfahren beschrieben. Wenn Sie nur OAuth 2.0-Zugriffstokens nach App-ID abrufen und widerrufen möchten, ist es nicht erforderlich, Endnutzer-ID zugreifen können.

Sie übergeben die Endnutzer-ID an den Endpunkt der Tokenerstellung. Sie können die Endnutzer-ID als Suchparameter, Formularparameter oder in einer Kopfzeile erstellen (wie später in diesem Thema erläutert). Nachdem Sie Edge so konfiguriert haben, dass der Endnutzer einbezogen wird ID im Token. Sie ist als Feld app_enduser enthalten, wie unten gezeigt:

{
 "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"
}

Informationen darüber, wie die API-Aufrufe ausgeführt werden, die diese Vorgänge zum Abrufen und Widerrufen ausführen, finden Sie in den folgenden Smart Docs:

Zugriff auf OAuth 2.0-Tokens durch Nutzer-ID und App-ID

Wie Sie den Zugriff auf OAuth 2.0-Tokens nach Nutzer-ID und App-ID aktivieren, hängt von Ihrer Bereitstellung ab Rand:

  • Cloudbasierte Bereitstellung

    Eine cloudbasierte Bereitstellung von Edge bedeutet, dass der größte Teil der Konfiguration von Apigee übernommen wird. Ich sind nur für die Konfiguration der OAuth 2.0-Richtlinie verantwortlich, um die Nutzer-ID zum Zugriff hinzuzufügen. Token. Weitere Informationen finden Sie unten.

  • Edge für die private Cloud-Bereitstellung

    In Apigee Edge for Private Cloud (lokal) sind Sie vollständig verantwortlich für Konfiguration. Weitere Informationen finden Sie unter Vorgänge und Konfiguration.

  • Apigee Hybrid

    Der Zugriff auf OAuth 2.0-Tokens nach Nutzer-ID ist standardmäßig aktiviert. Ich sind nur für die Konfiguration der OAuth 2.0-Richtlinie verantwortlich, um die Nutzer-ID zum Zugriff hinzuzufügen. Token. Weitere Informationen finden Sie unten in Schritt 5 des Verfahrens.

Zugriff in der Cloud ermöglichen

Schritt 1: Eine Organisation zur Unterstützung dieses Features aktivieren

Dieses Feature muss für jede Organisation aktiviert werden, die dieses Feature unterstützen soll.

Wenden Sie sich an den Apigee Edge-Support, damit dieser Ihre Organisation aktualisiert.

Schritt 2: oauth2-Ressourcenberechtigungen für die Rollen opsadmin und orgadmin bereitstellen

Nur die Rollen orgadmin und opsadmin sollten Berechtigungen zum Abrufen (get) und Widerrufen (put) dieser Aufrufe für die oauth2-Ressource entsprechend der Endnutzer-ID oder App-ID erhalten.

Mit dem Get Permission for a Resource API-Aufruf sehen Sie, welche Rollen die Berechtigungen get und put für die Ressource oauth2 haben.

Wenn Sie Berechtigungen hinzufügen oder entfernen müssen, wenden Sie sich an den Apigee Edge-Support. die Aktualisierungen durchführen lassen.

Schritt 3: Vorhandene OAuth 2.0-Zugriffstokens in die Cassandra-Knoten kopieren

Durchgeführt vom Apigee-Support: In dieser Aufgabe werden Kopien von vorhandenem OAuth 2.0- Zugriffstokens in betroffenen Organisationen werden kopiert und in Ihre Cassandra-Knoten gespeichert. Dieser Vorgang wird auf den Cassandra-Knoten für jeden Ihrer Apigee Edge-Pods ausgeführt. Dadurch kann das API-Aufrufe für alle vorhandenen OAuth 2.0-Zugriffstokens abrufen und widerrufen neu generiert.

Schritt 4: Das Attribut "oauth_max_search_limit" zum Verwaltungsserver und Nachrichtenprozessor hinzufügen

In dieser Aufgabe werden die keymanagement.properties-Dateien für Ihren Verwaltungsserver und Message Processor wird um diese Eigenschaft aktualisiert: oauth_max_search_limit = 100. 100 ist der von Apigee empfohlene Wert, kann aber nach Belieben festgelegt werden.

Wenden Sie sich an den Apigee Edge-Support, um diese Hinzufügung vorzunehmen.

Schritt 5: OAuth 2.0-Richtlinie konfigurieren, um Zugriffstokens zu generieren, die Endnutzer-IDs enthalten

Konfigurieren Sie die OAuth 2.0-Richtlinie zum Generieren von Zugriffstokens, um die Endnutzer-ID in den Token. Indem Sie Endnutzer-IDs in Zugriffstokens aufnehmen, können Sie Abrufe und anhand der 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. Verwenden Sie das &lt;AppEndUser&gt;-Tag, um den Parameter .

Die folgende OAuth 2.0-Richtlinie mit dem Namen GenerateAccessTokenClient generiert ein OAuth 2.0-Zugriffstoken. Beachten Sie das fett gedruckte Hinzufügen des &lt;AppEndUser&gt;-Tags:

<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>

Sie können dann den folgenden cURL-Befehl verwenden, um das OAuth 2.0-Zugriffstoken zu 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=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'

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