<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Um eine API-Schlüsselvalidierung für eine API einzurichten, hängen Sie eine Richtlinie des Typs "VerifyAPIKey" (API-Schlüssel prüfen) an. Die Die einzige erforderliche Einstellung für die Richtlinie „API-Schlüssel überprüfen“ ist der erwartete Speicherort des API-Schlüssels in der Clientanfrage. Der API-Proxy prüft den von Ihnen angegebenen Speicherort und extrahiert den API-Schlüssel. Wenn der API-Schlüssel am erwarteten Speicherort nicht vorhanden ist, wird ein Fehler ausgegeben und die Anfrage abgelehnt. API-Schlüssel können in einem Abfrageparameter, in einem Formularparameter oder in einem HTTP-Header enthalten sein.
Beispiel: Die Richtlinienkonfiguration unten definiert den erwarteten Schlüsselstandort als Abfrageparameter mit dem Namen apikey
. Einer erfolgreichen Anfrage muss der API-Schlüssel als Abfrageparameter angehängt sein, z. B. ?apikey=Y7yeiuhcbKJHD790
.
Erstellen Sie folgende Richtlinie, um API-Schlüssel zu prüfen:
<VerifyAPIKey name="APIKeyValidation"> <APIKey ref="request.queryparam.apikey"/> </VerifyAPIKey>
Diese Richtlinie kann an beliebige APIs angehängt werden, die Sie schützen möchten.
Eine umfassende Dokumentation dieses Richtlinientyps findet sich unter API-Schlüsselrichtlinie prüfen.
API-Proxys übergeben automatisch alle vorhandenen HTTP-Header und Abfrageparameter. in der Anfrage. Daher wird empfohlen, den API-Schlüssel nach der Prüfung aus der Nachricht zu entfernen, damit er nicht an den Back-End-Dienst übertragen wird. Dazu können Sie eine Richtlinie des Typs "AssignMessage" in folgender Weise verwenden:
<AssignMessage name="StripApiKey"> <DisplayName>Remove Query Param</DisplayName> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"></AssignTo> </AssignMessage>
Richtlinienbindung
Die Richtlinien müssen als Verarbeitungsschritte an einen API-Proxy-Ablauf angehängt werden. Durch Anwenden der Richtlinie auf den PreFlow der Anfrage werden API-Schlüssel für jede Anfrage überprüft, die der API-Proxy von einer Clientanwendung empfängt. Nach der Bestätigung wird der API-Schlüssel aus der ausgehenden Anfrage entfernt.
Hängen Sie die Richtlinien an den ProxyEndpoint des zu schützenden API-Proxys an:
<ProxyEndpoint name="default"> <PreFlow> <Request> <Step><Name>APIKeyValidation</Name></Step> <Step><Name>StripApiKey</Name></Step> </Request> </PreFlow>
Nachdem Sie die Richtlinie angehängt haben, stellen Sie den API-Proxy bereit.
Anfrage mit einem gültigen API-Schlüssel senden
Als Administrator in Ihrer Organisation können Sie den API-Schlüssel einer beliebigen App so abrufen:
$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password
Das für diesen Aufruf zurückgegebene App-Profil enthält den Consumer-Key (API-Schlüssel) und das Secret. Der Consumer-Key-Wert ist der Wert, den Sie in Ihrer Anfrage an die geschützte API für den API-Schlüssel nutzen.
Beispiel: Eine Anfrage, die keinen API-Schlüssel enthält, führt zu einem Autorisierungsfehler.
$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282
Die Fehlermeldung weist darauf hin, dass die Richtlinie nach einem API-Schlüssel gesucht, aber keinen gültigen Schlüssel gefunden hat:
OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey
Wenn der Consumer-Key für die Anwendung als Abfrageparameter enthalten ist, ist das erwartete Ergebnis die erfolgreiche Autorisierung:
$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"
Als Ergebnis wird eine Antwort des Wetterdienstes erwartet.
Das Ändern des Werts des API-Schlüssels in der Anfrage führt zu einem Autorisierungsfehler:
$ curl http://{org_name}-test.apigee.net/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"
Ergebnisse in:
OAuth Failure : Consumer Key is Invalid
Beachten Sie, dass Sie als Administrator für Ihre Organisation den Consumer-Key für jede in einer Organisation registrierte Anwendung abrufen können:
$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password