Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Ne
API Anahtarı Doğrula politikası, çalışma zamanında API anahtarlarının doğrulanmasını zorunlu kılar ve yalnızca onaylı API anahtarları olan uygulamaların API'lerinize erişmesine izin verir. Bu politika, API anahtarlarının geçerli olmasını, iptal edilmemesini ve API ürünlerinizle ilişkili belirli kaynakları tüketmesi için onaylanmasını sağlar.
Sana Özel
Sorgu parametresindeki anahtar
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.queryparam.apikey" /> </VerifyAPIKey>
Bu örnekte politika, API anahtarını request.queryparam.apikey
adlı bir akış değişkeninde bulmayı bekler. request.queryparam.{name}
değişkeni, istemci isteğinde geçirilen bir sorgu parametresinin değeriyle doldurulan standart bir Edge akış değişkenidir.
Aşağıdaki curl
komutu, API anahtarını bir sorgu parametresinde aktarır:
curl http://myorg-test.apigee.net/mocktarget?apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls
Başlıktaki not
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.header.x-apikey" /> </VerifyAPIKey>
Bu örnekte politika, API anahtarını request.header.x-apikey
adlı bir akış değişkeninde bulmayı bekler. request.header.{name}
değişkeni, istemci isteğinde geçirilen bir başlığın değeriyle doldurulan standart bir Edge akış değişkenidir.
Aşağıdaki cURL'de, API anahtarının bir üstbilgi içinde nasıl iletileceği gösterilmektedir:
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, API anahtarını requestAPIKey.key adlı bir değişkenden çıkarır.
Bu değişkenin nasıl doldurulacağı size bağlıdır. Örneğin, requestAPIKey.key öğesini aşağıda gösterildiği gibi myKey adlı bir sorgu parametresinden doldurmak için Değişkenleri Ayıklama 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>
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, geçerli bir API anahtarı için API Anahtarını Doğrula politikasını yürütürken bir akış değişkeni grubunu otomatik olarak doldurur. Uygulama adı, uygulama kimliği ve uygulamayı kaydeden geliştirici veya şirket hakkındaki bilgilere erişmek için bu değişkenleri kullanabilirsiniz. Yukarıdaki örnekte, API Anahtarı'nı doğruladıktan sonra geliştiricinin adına, soyadına ve e-posta adresine erişmek için Mesaj Ata politikasını kullanırsınız.
Bu değişkenlerin tümüne şu ön ek eklenir:
verifyapikey.{policy_name}
Bu örnekte, API anahtarı politikasının adı "verify-api-key"dir. Dolayısıyla, verifyapikey.verify-api-key.developer.firstName.
değişkenine erişerek istekte bulunan geliştiricinin adına referans verirsiniz
Edge'i öğrenin
API Anahtarını Doğrulama politikası hakkında
Geliştirici, Edge'e uygulama kaydettiğinde Edge otomatik olarak tüketici anahtarı ve gizli anahtar çifti oluşturur. Uygulamanın tüketici anahtarı ve gizli anahtarı çiftini Edge kullanıcı arayüzünde görebilir veya bu öğelere 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. Burada API ürünü, API proxy'leri üzerinden erişilebilen kaynaklardan oluşan bir koleksiyondur. Geliştirici, daha sonra API anahtarını (tüketici anahtarı) uygulamayla ilişkili bir API ürünündeki API'lere yapılan her isteğin parçası olarak iletir. Daha fazla bilgi için Yayınlama özeti bölümüne bakın.
API anahtarları kimlik doğrulama jetonu olarak veya OAuth erişim jetonları almak için kullanılabilir. OAuth'ta API anahtarları "istemci kimliği" olarak adlandırılır. Adlar birbirinin yerine kullanılabilir. Daha fazla bilgi için OAuth ana sayfası sayfasına göz atın.
Edge, API Anahtarını Doğrula politikasını yürütürken bir akış değişkeni grubunu 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ı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için |
Yok | Gerekli |
continueOnError |
Bir politika başarısız olduğunda hata döndürülmesi için Bir politika başarısız olduktan sonra bile akış yürütülmesinin 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 özellik kullanımdan kaldırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğesi
Politikayı, yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için name
özelliğine ek olarak kullanın.
<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 parametresi, HTTP üst bilgisi veya form parametresi içinde gönderir. Örneğin, anahtar x-apikey
adlı bir başlıkta gönderilirse anahtar şu değişkende bulunur: request.header.x-apikey
Varsayılan | Yok |
---|---|
Varlık | Gerekli |
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. Politika başına yalnızca bir konuma izin verilir. |
Yok | Gerekli |
Örnekler
Bu örneklerde anahtar, parametrelerde ve x-apikey
adlı bir başlıkta iletilir.
Bir 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 form parametresi olarak:
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.formparam.x-apikey"/> </VerifyAPIKey>
Şemalar
Akış değişkenleri
Geçerli bir API anahtarında bir API Anahtarını Doğrulama politikası zorunlu kılındığında, Edge bir akış değişkeni grubunu doldurur. Bu değişkenler, akışın daha sonraki aşamalarında yürütülen politikalar veya kod tarafından kullanılabilir. Bunlar genellikle API anahtarının uygulama adı, anahtarı yetkilendirmek için kullanılan API ürünü veya API anahtarının özel özellikleri gibi özelliklerine göre özel işleme gerçekleştirmek için kullanılır.
Politika, aşağıdakiler de dahil olmak üzere birkaç farklı akış değişkeni türünü doldurur:
- Genel
- Uygulama
- Geliştirici
- Şirket
- Analizler
Her bir akış değişkeni türünün farklı bir ön eki vardır. Özellikle dizi olarak belirtilenler dışında tüm değişkenler skaler değerlerdir.
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üne şu ön ek eklenir:
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şkilendirilen tüketici sırrı. |
redirection_uris |
İstekteki tüm 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 türetilen tüm özel özellikler. |
DisplayName |
Politikanın <DisplayName> özelliğinin değeri. |
failed |
API anahtarı doğrulaması başarısız olduğunda değeri "true" (doğru) olarak ayarlayın. |
{custom_app_attrib} |
Uygulama profilinden türetilen herhangi bir özel özellik. Ö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 herhangi bir özel özellik. |
apiproduct.developer.quota.limit* |
API ürünü için ayarlanan kota sınırı (varsa). |
apiproduct.developer.quota.interval* |
Varsa API ürününde ayarlanan kota aralığı. |
apiproduct.developer.quota.timeunit* |
API ürününde ayarlanan kota zaman birimi (varsa). |
* API ürünleri geçerli ortam, proxy'ler ve kaynaklarla (proxy.pathsuffix türetildi) yapılandırılmışsa API ürün değişkenleri otomatik olarak doldurulur. API ürünlerini ayarlamak için API'leri yayınlamak için Edge Management API'yi kullanma bölümüne bakı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üne şu ön ek eklenir:
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 |
Uygulamanın durumu (ör. "onaylandı" veya "iptal edildi"). |
apiproducts |
Uygulamayla ilişkilendirilen 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ü (ö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ı 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üne şu ön ek eklenir:
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şkilendirilmiş uygulamalar 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 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şkilendirilen şirketin adı (varsa). |
Ş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üne şu ön ek eklenir:
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 etkin, etkin değil veyalogin_lock olarak durumu.
|
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 son değiştirildiği tarih/saat damgası. |
last_modified_by |
Şirketi 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 bir API Anahtarını Doğrulama politikası zorunlu kılındığında aşağıdaki değişkenler Analytics'te otomatik olarak doldurulur. Bu değişkenler yalnızca API Anahtarını Doğrulama politikası ve OAuth politikaları tarafından doldurulur.
Değişkenler ve değerler, geliştiriciler ve uygulamalar tarafından tüketilen tüketim kalıpları hakkında görünürlük sağlamak amacıyla Analytics raporları oluşturmak için 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 Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir.
Hata kodu | HTTP durumu | Neden |
---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | Kullandığınız API anahtarına sahip Geliştirici Uygulaması ile ilişkilendirilmiş Şirket, etkin değil durumunda. Bir Şirket'in durumu etkin değil olarak ayarlandığında, söz konusu Şirket ile ilişkili geliştiricilere veya uygulamalara erişemezsiniz. Kuruluş yöneticisi, Management API'yi kullanarak bir Şirketin durumunu değiştirebilir. Şirketin Durumunu Belirleme başlıklı makaleyi inceleyin. |
keymanagement.service.DeveloperStatusNotActive |
401 |
Kullandığınız API anahtarına sahip Geliştirici Uygulaması'nı oluşturan geliştirici, etkin değil durumunda. Bir Uygulama Geliştiricinin durumu etkin değil olarak ayarlandığında, geliştirici tarafından oluşturulan tüm Geliştirici Uygulamaları devre dışı bırakılır. Uygun izinlere sahip bir yönetici kullanıcı (ör. Kuruluş Yöneticisi) bir geliştiricinin durumunu aşağıdaki şekillerde değiştirebilir:
|
keymanagement.service.invalid_client-app_not_approved |
401 | API anahtarıyla ilişkilendirilmiş Geliştirici Uygulaması iptal edildi. İptal edilen bir uygulama hiçbir API ürününe erişemez ve Apigee Edge tarafından yönetilen herhangi bir API'yi çağıramaz. Bir kuruluş yöneticisi, Management API'yi kullanarak Geliştirici Uygulamasının durumunu değiştirebilir. Geliştirici Uygulamasını Onaylama veya İptal Etme bölümüne bakın. |
oauth.v2.FailedToResolveAPIKey |
401 | Politika, API anahtarını politikanın <APIKey> öğesinde belirtilen bir değişkende bulmayı bekler. Bu hata, beklenen değişken mevcut olmadığında (çözümemediğinde) ortaya çıkar. |
oauth.v2.InvalidApiKey |
401 | Edge tarafından bir API anahtarı alındı, ancak bu anahtar geçersiz. Edge, veritabanında anahtarı aradığında istekte gönderilen ile tam olarak eşleşmelidir. API daha önce çalışıyorsa anahtarın yeniden oluşturulmadığından emin olun. Anahtar yeniden oluşturulduysa eski anahtarı kullanmaya çalışırsanız bu hatayı görürsünüz. Ayrıntılar için Uygulamaları kaydetme ve API anahtarlarını yönetme konusuna bakın. |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Edge tarafından alınan bir API anahtarı geçerli. Ancak, Geliştirici Uygulaması'ndaki, bir Ürün üzerinden API proxy'nizle ilişkilendirilmiş onaylanmış bir anahtarla eşleşmiyor. |
Dağıtım hataları
Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.
Hata adı | Neden |
---|---|
SpecifyValueOrRefApiKey |
<APIKey> öğesinde değer veya anahtar belirtilmemiş. |
Hata değişkenleri
Bu değişkenler, bir çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.
Değişkenler | Konum | Örnek |
---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen 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" } }
Hata kuralı örneği
<FaultRule name="FailedToResolveAPIKey"> <Step> <Name>AM-FailedToResolveAPIKey</Name> </Step> <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition> </FaultRule>