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>
<VerifyAPIKey> ö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ı. İ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> öğ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 <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>