API anahtarı doğrulamasını ayarlama

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Doğrulama API Anahtarını Doğrula türünde bir politika ekleyerek API için API anahtarı doğrulamasını ayarlayabilirsiniz. İlgili içeriği oluşturmak için kullanılan Yalnızca API Anahtarını Doğrula politikası için gerekli ayar, gerekir. API proxy'si, belirttiğiniz konumu kontrol eder ve API anahtarını çıkarır. API anahtarı beklenen konumda yoksa bir hata verilir ve istek reddedilir. API anahtarları bir sorgu parametresinde, form parametresinde veya HTTP kullanabilirsiniz.

Örneğin, aşağıdaki politika yapılandırması, beklenen anahtar konumunu sorgu olarak tanımlar apikey adlı parametre kullanılır. Başarılı bir istek, API anahtarını sorgu olarak sunmalıdır parametresi isteğe eklenir (örneğin, ?apikey=Y7yeiuhcbKJHD790).

API anahtarlarını doğrulamak için aşağıdaki politikayı oluşturun:

<VerifyAPIKey name="APIKeyValidation">
  <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

Bu politika, korumanız gereken herhangi bir API'ye eklenebilir.

Bu politika türüyle ilgili kapsamlı belgeleri politika referans konusunda bulabilirsiniz. API Anahtarını Doğrulama politikasına tabidir.

API proxy'leri mevcut tüm HTTP başlıklarını ve sorgu parametrelerini otomatik olarak iletir karar verebilirsiniz. Bu nedenle, API anahtarı doğrulandıktan sonra API anahtarının arka uç hizmetine kablo üzerinden gönderilmemesi için mesajı göstermeniz gerekir. Bu işlemi yapabilirsiniz. aşağıdaki gibiassignMessage türünde bir politika kullanarak:

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

Politika eki

Politikalar, işleme adımları olarak bir API proxy Akışı'na eklenmelidir. Politikayı uygulayarak için bir API proxy'si tarafından alınan her istekte API anahtarları doğrulanır. istemci uygulaması. Doğrulamanın ardından, API anahtarı giden istekten çıkarılır.

Politikaları, korunacak API proxy'sinin ProxyEndpoint bölümüne aşağıdaki şekilde ekleyin:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>APIKeyValidation</Name></Step>
      <Step><Name>StripApiKey</Name></Step>
    </Request>
  </PreFlow>

Politikayı ekledikten sonra API proxy'sini dağıtın.

Geçerli bir API anahtarıyla istek gönderme

Kuruluşunuzun yöneticisi olarak, herhangi bir uygulamanın API anahtarını aşağıdaki şekilde alabilirsiniz:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password 
.

Bu çağrı için döndürülen uygulama profili, tüketici anahtarını (API anahtarı) ve sırrı sağlar. Tüketici anahtarı değeri, korumalı alana isteğinizde API anahtarı için kullandığınız değerdir API'ye gidin.

Örneğin, API anahtarı içermeyen bir istek, yetkilendirmeyle sonuçlanır başarısız olur.

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

Hata mesajı, politikanın bir API anahtarı olup olmadığını kontrol ettiğini ancak geçerli bir anahtar bulamadığını gösterir. anahtar:

OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey

Uygulamanın tüketici anahtarı bir sorgu parametresi olarak eklendiğinde beklenen sonuç başarılı yetkilendirme:

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"

Beklenen sonuç, hava durumu hizmetinden başarılı bir yanıt alınmasıdır.

İstekteki API anahtarı değerinin değiştirilmesi, yetkilendirmeyle sonuçlanır hata:

$ curl http://{org_name}-test.apigee.net/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"

Sonuçların alınacağı konum:

OAuth Failure : Consumer Key is Invalid

Kuruluşunuzun yöneticisi olarak tüm uygulamaların tüketici anahtarını alabileceğinizi unutmayın. bir kuruluşta kayıtlı:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password