API anahtarı doğrulamasını ayarlama

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Doğrulama API Anahtarı türünde bir politika ekleyerek API'ler için API anahtarı doğrulamasını ayarlayabilirsiniz. Doğrulama API Anahtarı politikası için gerekli tek ayar, API anahtarının istemci isteğindeki beklenen konumudur. API proxy'si, belirttiğiniz konumu kontrol eder ve API anahtarını çıkarır. API anahtarı beklenen konumda mevcut değilse bir hata verilir ve istek reddedilir. API anahtarları bir sorgu parametresinde, form parametresinde veya HTTP üst bilgisinde bulunabilir.

Örneğin, aşağıdaki politika yapılandırması beklenen anahtar konumunu apikey adlı bir sorgu parametresi olarak tanımlar. Başarılı bir istek, API anahtarını isteğe eklenen bir sorgu parametresi olarak sunmalıdır (ö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 tüm API'lere eklenebilir.

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

API proxy'leri, istekte bulunan tüm HTTP üst bilgilerini ve sorgu parametrelerini otomatik olarak geçirir. Bu nedenle, API anahtarı doğrulandıktan sonra, API anahtarının kablo üzerinden arka uç hizmetine gönderilmemesi için anahtarın mesajdan çıkarılması önerilir. Bunu, şu tür bir Ata: türünde bir politika kullanarak yapabilirsiniz:

<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 API proxy Akışı'na eklenmelidir. Politika PreFlow isteğine uygulandığında API anahtarları, API proxy'si tarafından bir istemci uygulamasından alınan her istekte doğrulanır. Doğrulamanın ardından API anahtarı, giden istekten çıkarılır.

Politikaları aşağıdaki şekilde korunacak API proxy'sinin ProxyEndpoint'ine 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şunuzda bir yönetici 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 gizli anahtarı sağlar. Tüketici anahtarı değeri, korunan API isteğinizde API anahtarı için kullandığınız değerdir.

Örneğin, API anahtarı içermeyen bir istek yetkilendirme hatasıyla sonuçlanır.

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

Hata mesajı, politikanın bir API anahtarı için kontrol edildiğini ancak geçerli bir anahtar bulamadığını belirtir:

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ı bir yetkilendirme olur:

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

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

İstekteki API anahtarı değerinin değerinin değiştirilmesi, yetkilendirme hatasına neden olur:

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

Sonuçlar:

OAuth Failure : Consumer Key is Invalid

Kuruluşunuzun yöneticisi olarak, kuruluşta kayıtlı herhangi bir uygulamanın tüketici anahtarını alabileceğinizi unutmayın:

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