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

Ne?
API anahtarını doğrulama politikası, API anahtarlarının çalışma zamanında doğrulanmasını zorunlu kılarak yalnızca onaylanmış API anahtarlarına sahip uygulamaların API'lerinize erişmesine olanak tanır. Bu politika, API anahtarlarının geçerli olmasını, iptal edilmemesini ve API ürünlerinizle ilişkili belirli kaynakları kullanmak için onaylanmasını sağlar.
Örnekler
Sorgu parametresindeki anahtar
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.queryparam.apikey" /> </VerifyAPIKey>
Bu örnekte politika, API anahtarının request.queryparam.apikey
adlı bir akış değişkeninde bulunmasını bekliyor. request.queryparam.{name}
değişkeni, istemci isteğinde iletilen bir sorgu parametresinin değeriyle doldurulan standart bir Edge akışı değişkenidir.
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ın request.header.x-apikey
adlı bir akış değişkeninde bulunmasını bekliyor. request.header.{name}
değişkeni, istemci isteğinde iletilen bir başlığın değeriyle doldurulan standart bir Edge akışı değişkenidir.
Aşağıdaki cURL, API anahtarının üstbilgiye 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 referans verebilir. 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, aşağıdaki örnekte gösterildiği gibi, myKey adlı bir sorgu parametresinden requestAPIKey.key değerini doldurmak için Değişkenleri Ayıkla politikasını kullanabilirsiniz:
<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>
Erişim politikası akışı değişkenleri
<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, geçerli bir API anahtarı için API anahtarını doğrulama politikasını yürütürken bir dizi akış değişkenini otomatik olarak doldurur. Bu değişkenleri kullanarak uygulama adı, uygulama kimliği ve uygulamayı kaydeden geliştirici veya şirketle ilgili bilgilere erişebilirsiniz. Yukarıdaki örnekte, API anahtarı doğrulandıktan sonra geliştiricinin adını, soyadını ve e-posta adresini almak için Mesaj Atama politikasını kullanıyorsunuz.
Bu değişkenlerin tümünün önünde şu önek bulunur:
verifyapikey.{policy_name}
Bu örnekte, API anahtarını doğrulama politikası adı "verify-api-key"dir. Bu nedenle, verifyapikey.verify-api-key.developer.firstName.
değişkenine erişerek isteği yapan geliştiricinin adını referans olarak kullanırsınız.
Edge'i öğrenin
API anahtarını doğrulama politikası hakkında
Bir geliştirici Edge'e uygulama kaydettiğinde Edge otomatik olarak bir tüketici anahtarı ve gizli anahtar çifti oluşturur. Uygulamanın tüketici anahtarı ve gizli çiftini Edge kullanıcı arayüzünde görebilir veya Edge API'den erişebilirsiniz.
Uygulama kaydı sırasında geliştirici, uygulamayla ilişkilendirmek için bir veya daha fazla API ürünü seçer. API ürünü, API proxy'leri aracılığıyla erişilebilen bir kaynak koleksiyonudur. Ardından geliştirici, API anahtarını (tüketici anahtarı) uygulamayla ilişkili bir API ürünündeki API'ye yapılan her isteğin bir parçası olarak iletir. Daha fazla bilgi için Yayınlamaya genel bakış başlıklı makaleyi inceleyin.
API anahtarları, kimlik doğrulama jetonları olarak veya OAuth erişim jetonları almak için kullanılabilir. OAuth'ta API anahtarları "istemci kimliği" olarak adlandırılır. Bu adlar birbirinin yerine kullanılabilir. Daha fazla bilgi için OAuth ana sayfası'na bakın.
Edge, API anahtarını doğrulama politikası yürütülürken bir dizi akış değişkenini otomatik olarak doldurur. Daha fazla bilgi için aşağıdaki Akış değişkenleri bölümüne bakın.
Öğ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>
<VerifyAPIKey> özellikleri
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ı. İsteğe bağlı olarak, politikayı |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmesi için Akış yürütmenin bir politikadan sonra bile devam etmesi için |
false | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
true | İsteğe bağlı |
async |
Bu özelliğin desteği sonlandırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğ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 |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<APIKey> öğesi
Bu öğe, API anahtarını içeren akış değişkenini belirtir. Genellikle istemci, API anahtarını bir sorgu parametresinde, HTTP üstbilgisinde veya form parametresinde gönderir. Örneğin, anahtar x-apikey
adlı bir üstbilgide gönderilirse anahtar şu 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 |
---|---|---|---|
ref |
API anahtarını içeren değişkene yapılan referans. Politika başına yalnızca bir konuma izin verilir. |
Yok | Zorunlu |
Örnekler
Bu örneklerde anahtar, parametreler ve x-apikey
adlı bir başlıkta iletilir.
Sorgu parametresi olarak:
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.queryparam.x-apikey"/> </VerifyAPIKey>
HTTP üstbilgisi olarak:
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.header.x-apikey"/> </VerifyAPIKey>
HTTP formu parametresi olarak:
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.formparam.x-apikey"/> </VerifyAPIKey>
Şemalar
Akış değişkenleri
Geçerli bir API anahtarı üzerinde API anahtarını doğrulama politikası uygulandığında Edge, bir dizi akış değişkenini doldurur. Bu değişkenler, akışta daha sonra yürütülen politikalarda veya kodlarda kullanılabilir. Genellikle, API anahtarının özelliklerine (ör. uygulama adı, anahtarı yetkilendirmek için kullanılan API ürünü veya API anahtarının özel özellikleri) göre özel işleme gerçekleştirmek için kullanılır.
Politika, aşağıdakiler de dahil olmak üzere çeşitli akış değişkeni türlerini doldurur:
- Genel
- Uygulama
- Geliştirici
- Şirket
- Analiz
Her akış değişkeni türünün farklı bir öneki vardır. Diziler olarak belirtilenler hariç tüm değişkenler skalerdir.
Genel akış değişkenleri
Aşağıdaki tabloda, API anahtarını doğrulama politikası tarafından doldurulan genel akış değişkenleri listelenmiştir. Bu değişkenlerin tümünün önünde şu önek bulunur:
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şkili tüketici gizli bilgisi. |
redirection_uris |
İstekteki tüm yönlendirme URI'leri. |
developer.app.id |
İsteği gönderen geliştirici uygulamasının kimliği. |
developer.app.name |
İsteği gönderen geliştirici uygulamasının uygulama adı. |
developer.id |
İstenen uygulamanın sahibi olarak kayıtlı geliştiricinin kimliği. |
developer.{custom_attrib_name} |
Uygulama anahtarı profilinden türetilen tüm özel özellikler |
DisplayName |
Politikanın <DisplayName> özelliğinin değeri. |
failed |
API anahtarı doğrulama başarısız olduğunda "true" olarak ayarlanır. |
{custom_app_attrib} |
Uygulama profilinden türetilen tüm özel özellikler. Özel özelliğin adını belirtin. |
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 tüm özel özellikler. |
apiproduct.developer.quota.limit* |
API ürününde belirlenen kota sınırı (varsa). |
apiproduct.developer.quota.interval* |
API ürününde belirlenen kota aralığı (varsa). |
apiproduct.developer.quota.timeunit* |
API ürününde ayarlanan kota zaman birimi (varsa). |
* API ürünleri geçerli ortam, proxy ve kaynaklarla (proxy.pathsuffix 'dan türetilir) yapılandırılmışsa API ürün değişkenleri otomatik olarak doldurulur. API ürünlerini ayarlama talimatları için API'leri yayınlamak üzere Edge yönetim API'sini kullanma başlıklı makaleyi inceleyin. |
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ünün önünde şu önek bulunur:
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ılmaz. |
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ı" veya "iptal edildi"). |
apiproducts |
Uygulamayla ilişkili API ürünlerinin listesini içeren bir dizi. |
appFamily |
Uygulamayı içeren tüm uygulama aileleri veya "varsayılan". |
appParentStatus |
Uygulamanın üst öğesinin durumu (ör. "etkin" veya "etkin değil") |
appType |
Uygulama türü "Şirket" veya "Geliştirici" olarak. |
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, politika tarafından doldurulur. Bu değişkenlerin tümünün önünde şu önek bulunur:
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 veya login_lock). |
apps |
Geliştiriciyle ilişkili uygulamaların 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} |
Tüm özel geliştirici özellikleri. Özel özelliğin adını belirtin. |
Company |
Geliştiriciyle ilişkili bir şirket varsa bu şirketin adı. |
Şirket akışı değişkenleri
Şirket hakkında bilgi içeren aşağıdaki akış değişkenleri politika tarafından doldurulur. Bu değişkenlerin tümünün önünde şu önek bulunur:
verifyapikey.{policy_name}.company
Örneğin:
verifyapikey.{policy_name}.company.name
Kullanılabilir değişkenler şunlardır:
Değişken | Açıklama |
---|---|
name |
Şirket 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 veya login_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 |
Şirketi en son değiştiren 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
Geçerli bir API anahtarı için API anahtarını doğrulama politikası uygulandığında Analytics'te aşağıdaki değişkenler otomatik olarak doldurulur. Bu değişkenler yalnızca API anahtarını doğrulama politikası ve OAuth politikalarıyla doldurulur.
Değişkenler ve değerler, geliştiriciler ve uygulamalar tarafından tüketim kalıpları hakkında görünürlük elde etmek için Analytics raporları oluşturmada boyut olarak kullanılabilir.
- 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 <APIKey> öğ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>