<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
OAuth hat sich als führendes Autorisierungsprotokoll für APIs erwiesen. Die Version die in diesem Thema ausführlich behandelt werden, finden Sie im OAuth 2.0-Spezifikation.
OAuth ist ein Protokoll, mit dem Endnutzer einer App Folgendes autorisieren können: Apps, die in ihrem Namen handeln dürfen. Dazu müssen Apps Zugriffsrechte Tokens von API-Anbietern Der API-Anbieter authentifiziert die Seite der Anwendung Nutzeranmeldedaten, stellt sicher, dass der Nutzer die App autorisiert hat, und gibt dann ein Zugriffstoken aus in der App. Wenn die App eine geschützte API verbraucht, prüft Apigee Edge das Zugriffstoken, um sicherzustellen, ob sie gültig und nicht abgelaufen ist. Als API-Anbieter müssen Sie Endpunkte verfügbar machen über die Apps Zugriffstokens erhalten können.
Um Ihnen den Einstieg in OAuth zu erleichtern, bietet Apigee Edge ermöglicht das Konfigurieren und Erzwingen von OAuth mithilfe von Richtlinien, ohne dass Sie sich darum kümmern müssen. Code schreiben. In diesem Thema erfahren Sie, wie Sie Ihre APIs schützen, Zugriff erhalten und erfahren, wie Sie mit diesen Zugriffstokens auf geschützte APIs zugreifen.
Die standardmäßige OAuth-Konfiguration für Ihr Organisation
Der Einfachheit halber sind alle Organisationen, die Apigee Edge verwenden, mit einem Satz von OAuth 2.0 vorkonfiguriert. Endpunkte, auf denen der Berechtigungstyp der Clientanmeldedaten implementiert ist. Der Kunde Der Anmeldedaten-Berechtigungstyp definiert ein Verfahren für die Ausstellung von Zugriffstokens im Austausch für App- Anmeldedaten Diese App-Anmeldedaten sind einfach das Consumer-Key-Secret-Paar, das Apigee Edge-Probleme für jede Anwendung, die in einer Organisation registriert ist. „Clientanmeldedaten“ bezieht sich auf das Consumer-Secret-Paar selbst.
Weitere Informationen zum Ausstellen von Anmeldedaten für Anwendungen, die Edge Developer Services verwenden, finden Sie unter Apps registrieren und Schlüssel verwalten
Aus diesem Grund ist es relativ einfach, Ihr API-Sicherheitsschema aus dem API-Schlüssel Validierung der OAuth-Clientanmeldedaten. Beide Schemas verwenden denselben Consumer-Key und -Secret, um die Client-App zu validieren. Der Unterschied ist, dass Clientanmeldedaten eine zusätzliche Ebene da Sie ein Zugriffstoken bei Bedarf ganz einfach widerrufen können, ohne es den Consumer-Key der App. Für die Arbeit mit den standardmäßigen OAuth-Endpunkten können Sie einen beliebigen Consumer-Key verwenden und das Secret, das für die App in Ihrer Organisation generiert wird, um Zugriffstokens aus dem Token abzurufen Endpunkt. Sie können sogar Clientanmeldedaten für Anwendungen aktivieren, die bereits Consumer-Schlüssel und secrets.)
Die vollständige Spezifikation für die Erteilung der Clientanmeldedaten finden Sie unter OAuth 2.0 Spezifikation.
API mit einer Richtlinie schützen
Bevor Sie Zugriffstokens verwenden können, müssen Sie Ihre APIs für die Validierung des OAuth-Zugriffs konfigurieren. Token zur Laufzeit erhalten. Zu diesem Zweckkonfigurieren Sie einen API-Proxy, Zugriffstokens validieren. Das bedeutet, dass jedes Mal, wenn eine App eine Anfrage an eine Ihrer APIs verwenden, muss die Anwendung zusammen mit der API-Anfrage ein gültiges Zugriffstoken anzeigen. Apigee Edge kümmert sich um die Komplexität beim Generieren, Speichern und Validieren der Zugriffstokens. die präsentiert werden.
Sie können die OAuth-Überprüfung ganz einfach zu einer API hinzufügen, wenn Sie einen neuen API-Proxy. Wenn Sie einen neuen API-Proxy erstellen, können Sie Features hinzufügen. Als wie unten dargestellt, können Sie eine Überprüfung von OAuth 2.0-Zugriffstokens hinzufügen, indem Sie das Optionsfeld auswählen. neben Secure with OAuth v2.0 Access Tokens (Mit OAuth v2.0-Zugriffstoken sichern). Wenn Sie diese Option auswählen, werden zwei Richtlinien werden an den neu erstellten API-Proxy angehängt, eine zur Überprüfung von Zugriffstokens und eine weitere Richtlinie. um das Zugriffstoken nach der Verifizierung zu entfernen.
Wenn Sie die Option Secure with OAuth v2.0 Access Tokens (Mit OAuth v2.0-Zugriffstoken sichern) auswählen, wird das Kästchen Publish API Product (API-Produkt veröffentlichen) ausgewählt. ausgewählt. Klicken Sie dieses Kästchen an, wenn beim Erstellen der neuen API automatisch ein Produkt generiert werden soll Proxy. Das automatisch generierte Produkt wird mit einer Verknüpfung mit dem neuen API-Proxy erstellt. Wenn Sie bereits Produkt vorhanden ist, mit dem Sie diese neue API verknüpfen möchten, löschen Sie diese damit Sie kein unnötiges Produkt erstellen. Informationen zu Produkten finden Sie unter Was ist ein API-Produkt?
Wenn Sie die Zugriffstoken-Überprüfung für den API-Proxy aktivieren müssen bereits vorhanden ist, müssen Sie nur eine Richtlinie vom Typ OAuthV2 an die die Sie schützen möchten. Für OAuthV2-Richtlinien wird ein Vorgang angegeben. Bei Bedarf zum Validieren von Zugriffstokens verwenden Sie den Vorgang VerifyAccessToken. (Andere Arten von Vorgängen, GenerateAccessToken und GenerateRefreshToken werden vom OAuthV2-Richtlinientyp unterstützt. Sie erfahren mehr über diese Vorgänge, wenn Sie OAuth-Endpunkte.)
Richtlinie „VerifyOAuthTokens“ vom Typ OAuthV2
Eine Beispielrichtlinie zum Validieren von Zugriffstokens sieht so aus. (Die Einstellungen sind wie in der Tabelle unten erläutert.)
<OAuthV2 name="VerifyOAuthTokens"> <Operation>VerifyAccessToken</Operation> </OAuthV2>
Richtlinieneinstellungen
Name | Beschreibung | Standard | Erforderlich? |
---|---|---|---|
OAuthV2 |
Richtlinientyp | ||
name |
Der Name der Richtlinie, auf den im API-Proxy-Endpunkt verwiesen wird Konfiguration. | – | Ja |
Operation |
Der von der OAuthV2-Richtlinie auszuführende Vorgang. Indem Sie „VerifyAccessToken“ angeben, konfigurieren Sie die Richtlinie so, dass Anfragen nach Zugriffstokens und der Zugriff Das Token ist gültig, nicht abgelaufen und darf die angeforderte API-Ressource nutzen (URI) enthält. Für diese Prüfung wird in der Richtlinie das API-Produkt ausgelesen, für das die App freigegeben ist consume.) | – | Ja |
Rufen Sie zum Erstellen dieser Richtlinie auf der Verwaltungsoberfläche APIs > API Proxys.
Wählen Sie aus der Liste der API-Proxys weatherapi aus.
Wählen Sie in der Übersicht für die Weatherapi die Option Develop (Entwickeln) aus. Ansicht.
Wähle im Dropdown-Menü Neue Richtlinie > OAuth 2.0
Nachdem Sie die OAuth v2.0-Richtlinie ausgewählt haben, erscheint das Konfigurationsmenü New Policy (Neue Richtlinie) angezeigt wird.
Geben Sie der Richtlinie einen aussagekräftigen Namen und wählen Sie Richtlinie anhängen aus. Flow PreFlow und Request als Einstellungen für den Richtlinienanhang.
Wählen Sie Add (Hinzufügen) aus. Die Richtlinie wird erstellt und an die Anfrage der weatherapi angehängt. PreFlow.
Nachdem du die Richtlinie hinzugefügt hast, wird die unten stehende PreFlow-Konfiguration der Anfrage im Designer.
Wenn Sie lokal in einem Texteditor oder einer IDE arbeiten, hängen Sie die Richtlinie an den Anfrage-PreFlow des API-Proxys, den Sie schützen möchten:
<PreFlow> <Request> <Step><Name>VerifyOAuthTokens</Name></Step> </Request> </PreFlow>
Durch das Anhängen der Richtlinie an die PreFlow-Anfrage stellen Sie sicher, dass die Richtlinie immer erzwungen wird für alle Anfragenachrichten.
Sie haben jetzt eine API mit OAuth 2.0-Clientanmeldedaten gesichert. Im nächsten Schritt lernen Sie, um ein Zugriffstoken zu erhalten und auf die sichere API zuzugreifen.
Mit einem Zugriffstoken auf ein geschütztes Ressource
Nachdem die weatherapi nun mit OAuth 2.0 gesichert ist, müssen Apps Zugriffstokens bereitstellen, um die API zu nutzen. die API verwenden. Für den Zugriff auf eine geschützte Ressource stellt die Anwendung in der Anfrage ein Zugriffstoken als „Autorisierung“ HTTP-Header:
$ curl -H "Authorization: Bearer ylSkZIjbdWybfs4fUQe9BqP0LH5Z" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282
Da der API eine OAuthV2-Richtlinie zugeordnet ist, überprüft Apigee Edge, ob das Zugriffstoken ist gültig und gewährt dann Zugriff auf die API und gibt den Wetterbericht an die App zurück. der die Anfrage gestellt hat.
Aber wie erhalten Apps Zugriffstokens? Dies wird im nächsten Abschnitt behandelt.
Austausch von Anmeldedaten für ein Zugriffstoken
Apps erhalten Zugriffstokens, indem sie ihre Consumer-Key/Secret-Paare an das Token übergeben. Endpunkt. Der Tokenendpunkt wird im API-Proxy konfiguriert, der als oauth enthält. Apps müssen also die API aufrufen, die von der oauth API bereitgestellt wird. Proxy verwenden, um ein Zugriffstoken abzurufen. Nachdem die Anwendung über ein Zugriffstoken verfügt, kann sie die weatherapi aufrufen. So lange, bis das Zugriffstoken abläuft oder widerrufen wird.
Jetzt müssen Sie sich als App-Entwickler vorstellen. Sie sollten die Methode weatherapi, sodass Sie ein Zugriffstoken für Ihre Anwendung benötigen. Als Erstes müssen Sie ein Consumer-Key-Secret-Paar (auch als API- Schlüssel oder einen App-Schlüssel).
Sie können einen Consumer-Key und ein Consumer-Secret erhalten, indem Sie eine App in Ihrer Organisation bei Apigee registrieren Edge
Sie können alle Anwendungen in Ihrer Organisation in der Verwaltungs-UI von Apigee Edge ansehen.
Die Liste der Apps, die in Ihrer Organisation registriert sind, wird angezeigt.
Werden keine Apps angezeigt, erfahren Sie im Thema Apps registrieren und API verwalten Schlüssel)
Wählen Sie eine App aus der Liste aus, um das zugehörige detaillierte Profil aufzurufen.
Beachten Sie in der Detailansicht der ausgewählten App die Felder für Consumer Key (Consumer-Key). und Consumer Secret (Consumer-Secret). Diese beiden Werte sind die client Anmeldedaten, mit denen Sie ein OAuth-Zugriffstoken abrufen.
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps \ -u myname:mypass
Dieser Aufruf gibt eine Liste der Anwendungen nach App-ID zurück.
[ "da496fae-2a04-4a5c-b2d0-709278a6f9db", "50e3e831-175b-4a05-8fb6-05a54701af6e" ]
Sie können das Profil einer App durch einen einfachen GET-Aufruf mit der App-ID abrufen:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \ -u myname:mypass
Beispiel:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/da496fae-2a04-4a5c-b2d0-709278a6f9db \ -u myname:mypass
Der API-Aufruf gibt das Profil der von Ihnen angegebenen App zurück. Ein Anwendungsprofil für weatherapp hat die folgende JSON-Darstellung:
{ "accessType" : "read", "apiProducts" : [ ], "appFamily" : "default", "appId" : "da496fae-2a04-4a5c-b2d0-709278a6f9db", "attributes" : [ ], "callbackUrl" : "http://weatherapp.com", "createdAt" : 1380290158713, "createdBy" : "noreply_admin@apigee.com", "credentials" : [ { "apiProducts" : [ { "apiproduct" : "PremiumWeatherAPI", "status" : "approved" } ], "attributes" : [ ], "consumerKey" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K", "consumerSecret" : "hAr4Gn0gA9vAyvI4", "expiresAt" : -1, "issuedAt" : 1380290161417, "scopes" : [ ], "status" : "approved" } ], "developerId" : "5w95xGkpnjzJDBT4", "lastModifiedAt" : 1380290158713, "lastModifiedBy" : "noreply_admin@apigee.com", "name" : "weatherapp", "scopes" : [ ], "status" : "approved" }
Notieren Sie sich die Werte für consumerKey
und consumerSecret
. Sie verwenden diese
Anmeldedaten, um ein Zugriffstoken zu erhalten, indem diese als Anmeldedaten für die Basisauthentifizierung in
wie unten dargestellt eine HTTP-Anfrage. Der Berechtigungstyp wird in der Anfrage als Abfrageparameter dargestellt.
(Achten Sie darauf, den Wert der Variablen {org_name} entsprechend dem Namen Ihrer Organisation zu ändern.
auf Apigee Edge.)
Anfrage zum Abrufen eines Zugriffstokens erstellen
Ersetzen Sie in der folgenden Anfrage den Wert von consumerKey
durch
client_id
. Ersetzen Sie den Wert der zugehörigen consumerSecret
durch
client_secret
.
$ curl https://{org_name}-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials -X POST -d 'client_id=bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K&client_secret=hAr4Gn0gA9vAyvI4'
API Services überprüft den Consumer-Key und das Consumer-Secret und generiert dann eine Antwort, die den Zugriffstoken für diese Anwendung:
{ "issued_at" : "1380892555397", "application_name" : "957aa73f-25c2-4ead-8021-adc01f0d2c6b", "scope" : "", "status" : "approved", "api_product_list" : "[oauth-test]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "client_id" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K", "access_token" : "ylSkZIjbdWybfs4fUQe9BqP0LH5Z", "organization_name" : "rqa", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
Beachten Sie den Wert access_token
in der Antwort oben. Dies ist das Zugriffstoken,
die die App nutzt, um Laufzeitzugriff auf geschützte Ressourcen zu erhalten. Das Zugriffstoken für diese Anwendung ist
ylSkZIjbdWybfs4fUQe9BqP0LH5Z
Sie haben jetzt ein gültiges Zugriffstoken mit der ID ylSkZIjbdWybfs4fUQe9BqP0LH5Z
, das verwendet werden kann
auf geschützte APIs.
Mit der OAuth-Standardkonfiguration arbeiten
Jede Organisation (auch eine kostenlose Testorganisation) auf Apigee Edge wird mit einem OAuth-Token bereitgestellt. Endpunkt. Der Endpunkt ist mit Richtlinien im API-Proxy vorkonfiguriert, der als oauth enthält. Sie können den Tokenendpunkt verwenden, sobald Sie ein Konto erstellt haben für Apigee Edge.
Der standardmäßige OAuth-Endpunkt stellt den folgenden Endpunkt-URI bereit:
/oauth/client_credential/accesstoken
Veröffentlichen Sie diesen URI für Entwickler, die Zugriffstokens abrufen müssen. App-Entwickler konfigurieren Apps so konfigurieren, dass sie diesen Endpunkt aufrufen und ihre Consumer-Key-Secret-Paare angeben, um Zugriff zu erhalten Tokens.
Der Standard-Token-Endpunkt der Clientanmeldedaten wird über das Netzwerk unter der folgenden URL bereitgestellt:
https://{org_name}-{env_name}.apigee.net/oauth/client_credential/accesstoken
Wenn der Name Ihrer Organisation beispielsweise "apimakers" ist, lautet die URL:
https://apimakers-test.apigee.net/oauth/client_credential/accesstoken
Dies ist die URL, die Entwickler aufrufen, um Zugriffstokens abzurufen.
Dreibeinige OAuth-Konfigurationen
Dreibeinige OAuth-Konfigurationen (Autorisierungscode, Implizite und Passworterteilung API-Anbieter), müssen Sie als API-Anbieter App-Endnutzer authentifizieren. Da alle Nutzer werden in der Organisation auf unterschiedliche Weise authentifiziert; Richtlinienanpassungen oder Code sind erforderlich um OAuth in Ihren Nutzerspeicher zu integrieren. So können z. B. alle Nutzer Verzeichnis, in einem LDAP oder in einem anderen Nutzerspeicher. Um das dreibeinige OAuth zu ermöglichen, eine Prüfung des Nutzerspeichers in den gesamten OAuth-Ablauf integrieren.
<ph type="x-smartling-placeholder">OAuth 1.0a
Weitere Informationen zur OAuth 1.0a-Richtlinie finden Sie in der OAuth 1.0a-Richtlinie.
Hilfe
Weitere Informationen finden Sie unter Apigee. Kundensupport.