VerificationAPIKey politikası

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

Ne?

API Anahtarını Doğrulama politikası, API anahtarlarının çalışma zamanında doğrulanmasını zorunlu kılarak yalnızca Onaylı API anahtarı olan uygulamaların API'lerinize erişmesini sağlayın. Bu politika, API anahtarlarının geçerli olmasını, iptal edilmemiş ve API'nizle ilişkili belirli kaynakları tüketmek için onaylanmıştır. ürünler.

Örnekler

Sorgu parametresindeki anahtar

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

Bu örnekte politika, API anahtarını request.queryparam.apikey request.queryparam.{name} değişkeni değeri, iletilen sorgu parametresinin değeriyle doldurulan standart bir Edge akış değişkenidir yazması gerekir.

Aşağıdaki curl komutu, API anahtarını bir sorgu parametresinde iletir:

curl http://myorg-test.apigee.net/mocktarget?apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls
.

Başlıktaki anahtar

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.header.x-apikey" />
</VerifyAPIKey>

Bu örnekte politika, API anahtarını request.header.x-apikey request.header.{name} değişkeni değeri ile doldurulan standart bir Edge akış değişkenidir. yazması gerekir.

Aşağıdaki cURL, API anahtarının bir üstbilgide nasıl iletileceğini gösterir:

curl "http://myorg-test.apigee.net/mocktarget" -H "x-apikey:IEYRtW2cb7A5Gs54A1wKElECBL65GVls"
.

Değişkendeki anahtar

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="requestAPIKey.key"/>
</VerifyAPIKey>

Politika, anahtarı içeren herhangi bir değişkene başvurabilir. Bu örnekteki politika requestAPIKey.key adlı bir değişkenden API anahtarını çıkarır.

Bu değişkenin nasıl doldurulacağı size bağlıdır. Örneğin, requestAPIKey.key anahtar kelimesini bir sorgu parametresinden doldurmak için değişkenler politikası gösterildiği gibi myKey olarak adlandırılmıştır aşağıda bulabilirsiniz:

<ExtractVariables async="false" continueOnError="false" enabled="true" name="SetAPIKeyVar">
    <Source>request</Source>
    <QueryParam name="myKey">
        <Pattern ignoreCase="true">{key}</Pattern>
    </QueryParam>
    <VariablePrefix>requestAPIKey</VariablePrefix>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Politika akışı değişkenlerine erişim

<AssignMessage async="false" continueOnError="false" enabled="true" name="accessverifyvars">
    <AssignVariable>
        <Name>devFirstName</Name>
        <Ref>verifyapikey.verify-api-key.developer.firstName</Ref>
        <Value>ErrorOnCopy</Value>
    </AssignVariable>
    <AssignVariable>
        <Name>devLastName</Name>
        <Ref>verifyapikey.verify-api-key.developer.lastName</Ref>
        <Value>ErrorOnCopy</Value>
    </AssignVariable>
    <AssignVariable>
        <Name>devEmail</Name>
        <Ref>verifyapikey.verify-api-key.developer.email</Ref>
        <Value>ErrorOnCopy</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Edge, Verify API Anahtarını yürütürken bir akış değişkeni grubunu otomatik olarak doldurur politikasını uygulayın. Bu değişkenleri, uygulama ve resim gibi bilgilere erişmek için adı, uygulama kimliği ve uygulamayı kaydeden geliştirici veya şirketle ilgili bilgiler. yukarıdaki örnekte, geliştiricinin adına, soyadına ve soyadına erişmek için adı ve e-posta adresini girmeniz gerekir.

Bu değişkenlerin tümü şu şekilde öne çıkar:

verifyapikey.{policy_name}

Bu örnekte API anahtarı doğrulama politikasının adı "verify-api-key"dir. Bu nedenle, şu sayfaya erişerek istekte bulunan geliştiricinin adı: verifyapikey.verify-api-key.developer.firstName. değişkeni

Edge'i Öğrenme


API Anahtarını Doğrulama politikası hakkında

Bir geliştirici Edge'e uygulama kaydettiğinde Edge otomatik olarak bir tüketici anahtarı oluşturur ve gizli çift olabilir. Uygulamanın tüketici anahtarı ve gizli anahtarı çiftini Edge kullanıcı arayüzünde görebilir veya bunlara erişebilirsiniz .

Uygulama kaydı sırasında geliştirici, aşağıdakileri yapmak için bir veya daha fazla API ürünü seçer: API ürünü, kaynak koleksiyonudur. API proxy'leri aracılığıyla erişilebilir. Geliştirici daha sonra API anahtarını (tüketici anahtarı) uygulamayla ilişkilendirilen bir API ürünündeki bir API'ye yapılan her istek. Daha fazla bilgi için Yayınlama özeti bölümüne bakın.

API anahtarları, kimlik doğrulama jetonları olarak veya OAuth erişimi elde etmek için kullanılabilir. jeton. OAuth'ta API anahtarları "istemci kimliği" olarak adlandırılır. Adlar birbirlerinin yerine kullanılabilir. Daha fazla bilgi için OAuth home (OAuth ana sayfası) sayfasına göz atın.

Edge, API Anahtarını Doğrulama politikasını yürütürken bir akış değişkeni grubunu otomatik olarak doldurur. Akış bölümüne bakın değişkenleri inceleyin.

Öğe Referansı

Bu politikada yapılandırabileceğiniz öğeler ve özellikler aşağıda verilmiştir:

<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key-1">
    <DisplayName>Custom label used in UI</DisplayName>
    <APIKey ref="variable_containing_api_key"/>
</VerifyAPIKey>

&lt;VerifyAPIKey&gt; özellikler

Aşağıdaki örnekte <VerifyAPIKey> etiketindeki özellikler gösterilmektedir:

<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key-1">

Aşağıdaki tabloda tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
name

Politikanın dahili adı. name özelliğinin değeri Harf, sayı, boşluk, kısa çizgi, alt çizgi ve nokta içermelidir. Bu değer, 255 karakteri aşmalıdır.

İsteğe bağlı olarak, politikayı<DisplayName> yönetim arayüzü proxy düzenleyicisinde farklı bir doğal dil adı kullanabilir.

Yok Zorunlu
continueOnError

Bir politika başarısız olduğunda hata döndürmesi için false olarak ayarlayın. Bu beklenen bir durumdur çoğu politika için geçerli olur.

Akış yürütmenin bir politikadan sonra bile devam etmesi için true olarak ayarlayın başarısız olur.

false İsteğe bağlı
enabled

Politikayı uygulamak için true olarak ayarlayın.

Politikayı devre dışı bırakmak için false değerine ayarlayın. Bu politika, bir akışa bağlı kalsa bile uygulanır.

true İsteğe bağlı
async

Bu özelliğin desteği sonlandırıldı.

false Kullanımdan kaldırıldı

&lt;DisplayName&gt; öğe

Politikayı name özelliğine ek olarak farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.

<DisplayName>Policy Display Name</DisplayName>
Varsayılan

Yok

Bu öğeyi çıkarırsanız politikanın name özelliğinin değeri: kullanılır.

Varlık İsteğe bağlı
Tür Dize

&lt;APIKey&gt; öğe

Bu öğe, API anahtarını içeren akış değişkenini belirtir. Genellikle istemci, API anahtarını gönderir sorgu parametresinde, HTTP üstbilgisinde veya form parametresinde olmalıdır. Örneğin, anahtar bir üstbilgide gönderilirse anahtar, x-apikey adlı değişkende bulunur: request.header.x-apikey

Varsayılan Yok
Varlık Zorunlu
Tür Dize

Özellikler

Aşağıdaki tabloda <APIKey> öğesinin özellikleri açıklanmaktadır

Özellik Açıklama Varsayılan Varlık
referans

API anahtarını içeren değişkene referans. Yalnızca bir konuma izin verilir .

Yok Zorunlu

Örnekler

Bu örneklerde anahtar, parametrelerde ve x-apikey adlı bir başlıkta iletilir.

Sorgu parametresi olarak:

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.queryparam.x-apikey"/>
</VerifyAPIKey>

HTTP üst bilgisi olarak:

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.header.x-apikey"/>
</VerifyAPIKey>

HTTP form parametresi olarak:

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.formparam.x-apikey"/>
</VerifyAPIKey>

Şemalar

Akış değişkenleri

Geçerli bir API anahtarında API Anahtarını Doğrulama politikası zorunlu kılındığında Edge bir dizi akışı doldurur değişkenlerine karşılık gelir. Bu değişkenler, akışta daha sonra yürütülen politikalarda veya kodda kullanılabilir. Genellikle API anahtarının uygulama adı, anahtarını veya API anahtarının özel özelliklerini yetkilendirmek için kullanılan API ürünü.

Politika, aşağıdakiler dahil birkaç farklı akış değişkeni türünü doldurur:

  • Genel
  • Uygulama
  • Geliştirici
  • Şirket
  • Analiz

Her akış değişkeni türünün farklı bir öneki vardır. Bunlar hariç tüm değişkenler skalerdir dizi olarak belirtilir.

Genel akış değişkenleri

Aşağıdaki tabloda API Anahtarını Doğrulama politikası tarafından doldurulan genel akış değişkenleri listelenmektedir. Bu değişkenlerin tümü şu şekilde öne çıkar:

verifyapikey.{policy_name}

Örneğin: verifyapikey.{policy_name}.client_id

Kullanılabilir değişkenler şunlardır:

Değişken Açıklama
client_id İstekte bulunan uygulama tarafından sağlanan tüketici anahtarı (API anahtarı veya uygulama anahtarı olarak da bilinir).
client_secret Tüketici anahtarıyla ilişkilendirilmiş tüketici sırrı.
redirection_uris İstekteki yönlendirme URI'leri.
developer.app.id

İstekte bulunan geliştirici uygulamasının kimliği.

developer.app.name İstekte bulunan geliştirici uygulamasının uygulama adı.
developer.id

İstekte bulunan uygulamanın sahibi olarak kayıtlı geliştiricinin kimliği.

developer.{custom_attrib_name} Uygulama anahtarı profilinden elde edilen tüm özel özellikler.
DisplayName Politikanın <DisplayName> değeri özelliğini gönderin.
failed "true" (doğru) olarak ayarlayın anahtar doğrulaması başarısız olduğunda.
{custom_app_attrib} Uygulama profilinden elde edilen herhangi bir özel özellik. Özel alanın adını özelliğini gönderin.
apiproduct.name* İsteği doğrulamak için kullanılan API ürününün adı.
apiproduct.{custom_attrib_name}* API ürün profilinden türetilen herhangi bir özel özellik.
apiproduct.developer.quota.limit* API ürününde ayarlanan kota sınırı (varsa).
apiproduct.developer.quota.interval* API ürününde ayarlanan kota aralığı (varsa).
apiproduct.developer.quota.timeunit* API ürününde ayarlanan kota zaman birimi (varsa).
* API ürünleri aşağıdaki koşulları karşılıyorsa API ürün değişkenleri otomatik olarak doldurulur: güvenilir ortam, proxy'ler ve kaynaklarla (ör. proxy.pathsuffix). API ürünlerini ayarlama talimatları için ucunu kullanma management API'yi kullanarak API'leri yayınlayın.

Uygulama akışı değişkenleri

Uygulama hakkında bilgi içeren aşağıdaki akış değişkenleri politika tarafından doldurulur. Bu değişkenlerin tümü şu şekilde öne çıkar:

verifyapikey.{policy_name}.app.

Örneğin:

verifyapikey.{policy_name}.app.name

Kullanılabilir değişkenler şunlardır:

Değişken Açıklama
name Uygulamanın adı.
id Uygulamanın kimliği.
accessType Apigee tarafından kullanılmıyor.
callbackUrl Uygulamanın geri çağırma URL'si. Genellikle yalnızca OAuth için kullanılır.
DisplayName Uygulamanın görünen adı.
status Uygulama durumu (ör. "onaylandı") "iptal edildi".
apiproducts Uygulamayla ilişkilendirilmiş API ürünlerinin listesini içeren bir dizi.
appFamily Uygulamayı içeren herhangi bir uygulama ailesi veya "varsayılan".
appParentStatus Uygulamanın üst öğesinin durumu (ör. "etkin") veya 'etkin değil'
appType Uygulama türü ("Şirket") veya "Geliştirici".
appParentId Üst uygulamanın kimliği.
created_at Uygulamanın oluşturulduğu tarih/saat damgası.
created_by Uygulamayı oluşturan geliştiricinin e-posta adresi.
last_modified_at Uygulamanın en son güncellendiği tarih/saat damgası.
last_modified_by Uygulamayı en son güncelleyen geliştiricinin e-posta adresi.
{app_custom_attributes} Herhangi bir özel uygulama özelliği. Özel özelliğin adını belirtin.

Geliştirici akışı değişkenleri

Geliştirici hakkında bilgi içeren aşağıdaki akış değişkenleri politikası. Bu değişkenlerin tümü şu şekilde öne çıkar:

verifyapikey.{policy_name}.developer
.

Örneğin:

verifyapikey.{policy_name}.developer.id

Kullanılabilir değişkenler şunlardır:

Değişken Açıklama
id {org_name}@@{developer_id} değerini döndürür
userName Geliştiricinin kullanıcı adı.
firstName Geliştiricinin adı.
lastName Geliştiricinin soyadı.
email Geliştiricinin e-posta adresi.
status Geliştiricinin durumu (etkin, etkin değil veyalogin_lock).
apps Geliştiriciyle ilişkilendirilen bir uygulama dizisi.
created_at Geliştiricinin oluşturulduğu tarih/saat damgası.
created_by Geliştiriciyi oluşturan kullanıcının e-posta adresi.
last_modified_at Geliştiricinin en son değiştirildiği tarih/saat damgası.
last_modified_by Geliştiriciyi değiştiren kullanıcının e-posta adresi.
{developer_custom_attributes} Herhangi bir özel geliştirici özelliği. Özel özelliğin adını belirtin.
Company Geliştiriciyle ilişkili şirketin adı (varsa).

Şirket akışı değişkenleri

Şirket hakkında bilgi içeren aşağıdaki akış değişkenleri politikası. Bu değişkenlerin tümü şu şekilde öne çıkar:

verifyapikey.{policy_name}.company
.

Örneğin:

verifyapikey.{policy_name}.company.name

Kullanılabilir değişkenler şunlardır:

Değişken Açıklama
name Şirketin adı.
displayName Şirketin görünen adı.
id

Şirket kimliği.

apps Şirket uygulamalarının listesini içeren bir dizi.
appOwnerStatus
Uygulama sahibinin durumu (etkin, etkin değil veyalogin_lock).
created_at Şirketin oluşturulduğu tarih/saat damgası.
created_by Şirketi oluşturan kullanıcının e-posta adresi.
last_modified_at Şirketin en son değiştirildiği tarih/saat damgası.
last_modified_by Şirkette son değişiklik yapan kullanıcının e-posta adresi.
{company_custom_attributes} Herhangi bir özel şirket özelliği. Özel özelliğin adını belirtin.

Analytics değişkenleri

API Anahtarını Doğrula politikası kullanıldığında aşağıdaki değişkenler Analytics'te otomatik olarak doldurulur geçerli bir API anahtarı için zorunlu kılınır. Bu değişkenler yalnızca Verify API Key (API Anahtarı Doğrula) tarafından doldurulur politikası ve OAuth politikaları.

Değişkenler ve değerler, elde edilecek faydaları ölçmek için Analytics raporları oluşturmak üzere boyut olarak kullanılabilir. geliştiriciler ve uygulamalar tarafından tüketim kalıplarına dair görünürlük sağlar.

  • apiproduct.name
  • developer.app.name
  • client_id
  • developer.id

Hata referansı

Bu bölümde, bu politika bir hatayı tetiklediğinde döndürülen hata kodları ve hata mesajlarının yanı sıra Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Hata kuralları geliştirirken bu bilgilerin farkında olmanız önemlidir. hoşuma gitmesi için bir fırsattır. Daha fazla bilgi için Bilmeniz gerekenler Politika hataları ve Kullanım sorun.

Çalışma zamanı hataları

Bu hatalar, politika yürütüldüğünde ortaya çıkabilir.

Hata kodu HTTP durumu Neden
keymanagement.service.CompanyStatusNotActive 401 Geliştirici Uygulaması ile ilişkilendirilmiş ve kullandığınız API anahtarına sahip Şirket'in bir etkin değil durumu. Bir Şirketin durumu etkin değil olarak ayarlandığında, ilgili Şirket ile ilişkili geliştiriciler veya uygulamalardır. Bir kuruluş yöneticisi Şirketin durumunu değiştirebilir yönetim API'sini kullanarak. Durumu Ayarlama bir şirkettir.
keymanagement.service.DeveloperStatusNotActive 401

Kullandığınız API anahtarına sahip geliştirici uygulamasını oluşturan geliştirici, etkin değil. Uygulama Geliştirici'nin durumu etkin değil olarak ayarlandığında, tüm Geliştirici Uygulamaları otomatik olarak devre dışı bırakılır. Uygun izinlere sahip bir yönetici kullanıcı (Kuruluş Yöneticisi gibi) bir geliştiricinin durumunu aşağıdaki konumlarda değiştirebilir: yöntemler:

keymanagement.service.invalid_client-app_not_approved 401 API anahtarıyla ilişkilendirilmiş Geliştirici Uygulaması iptal edildi. İptal edilen bir uygulama API ürünlerine erişemez ve Apigee Edge tarafından yönetilen hiçbir API'yi çağıramaz. Kuruluş yöneticisi şunları yapabilir: yönetim API'sini kullanarak bir geliştirici uygulamasının durumunu değiştirme Bkz. Geliştirici Uygulamasını Onaylayın veya İptal Edin.
oauth.v2.FailedToResolveAPIKey 401 Politika, API anahtarını politikanın &lt;APIKey&gt; öğesi. Bu hata, değişkeni mevcut değil (çözümlenemiyor).
oauth.v2.InvalidApiKey 401 Edge, bir API anahtarını aldı ancak bu anahtar geçersiz. Edge, anahtarı içinde arattığında istekte gönderilenle tam olarak eşleşmelidir. API işe yaradıysa anahtarın yeniden oluşturulmadığından emin olun. Anahtar yeniden oluşturulduysa eski anahtarı kullanmaya çalışırsanız bu hatayı alabilirsiniz. Ayrıntılar için Uygulamaları kaydetme ve API'yi yönetme tuşlar.
oauth.v2.InvalidApiKeyForGivenResource 401 Edge, bir API anahtarını aldı ve bu anahtar geçerliydi; ancak, Geliştirici Uygulaması'nda bir Ürün üzerinden API proxy'nizle ilişkili onaylanmış anahtar.

Dağıtım hataları

Bu politikayı içeren bir proxy dağıttığınızda bu hatalar oluşabilir.

Hata adı Neden
SpecifyValueOrRefApiKey <APIKey> öğesinde değer veya anahtar belirtilmemiş.

Hata değişkenleri

Bu değişkenler, çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Bilmeniz gerekenler hakkında daha fazla bilgi edinin.

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelendiği gibi hatanın adıdır. Hata adı, hata kodunun son kısmıdır. fault.name Matches "FailedToResolveAPIKey"
oauthV2.policy_name.failed policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. oauthV2.VK-VerifyAPIKey.failed = true

Örnek hata yanıtları

{  
   "fault":{  
      "faultstring":"Invalid ApiKey",
      "detail":{  
         "errorcode":"oauth.v2.InvalidApiKey"
      }
   }
}
{  
   "fault":{  
      "detail":{  
         "errorcode":"keymanagement.service.DeveloperStatusNotActive"
      },
      "faultstring":"Developer Status is not Active"
   }
}

Örnek hata kuralı

<FaultRule name="FailedToResolveAPIKey">
    <Step>
        <Name>AM-FailedToResolveAPIKey</Name>
    </Step>
    <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>

İlgili konular