Azure API Management ilkelerinde adlandırılmış değerleri kullanma
UYGULANANLAR: Tüm API Management katmanları
API Management ilkeleri , yayımcının yapılandırma aracılığıyla API'nin davranışını değiştirmesine olanak sağlayan güçlü bir sistem özelliğidir. İlkeler, bir API isteği veya yanıtı üzerinde sırayla yürütülen deyimlerin bir koleksiyonudur. İlke deyimleri değişmez metin değerleri, ilke ifadeleri ve adlandırılmış değerler kullanılarak oluşturulabilir.
Adlandırılmış değerler , her API Management örneğindeki ad/değer çiftlerinden oluşan genel bir koleksiyonlardır. Koleksiyondaki öğe sayısına uygulanan bir sınır yoktur. Adlandırılmış değerler, tüm API yapılandırmaları ve ilkeleri genelinde sabit dize değerlerini ve gizli dizileri yönetmek için kullanılabilir.
Değer türleri
Type | Açıklama |
---|---|
Düz | Değişmez değer dizesi veya ilke ifadesi |
Gizli dizi | API Management tarafından şifrelenen değişmez dize veya ilke ifadesi |
Anahtar kasası | Azure anahtar kasasında depolanan gizli dizi tanımlayıcısı. |
Düz değerler veya gizli diziler ilke ifadeleri içerebilir. Örneğin, ifade @(DateTime.Now.ToString())
geçerli tarih ve saati içeren bir dize döndürür.
Adlandırılmış değer öznitelikleri hakkında ayrıntılı bilgi için bkz. API Management REST API başvurusu.
Anahtar kasası gizli dizileri
Gizli dizi değerleri API Management'ta şifrelenmiş dizeler olarak (özel gizli diziler) veya Azure Key Vault'taki gizli dizilere başvurarak depolanabilir.
API Management güvenliğini iyileştirmeye yardımcı olduğundan anahtar kasası gizli dizilerinin kullanılması önerilir:
- Anahtar kasalarında depolanan gizli diziler hizmetler arasında yeniden kullanılabilir
- Gizli dizilere ayrıntılı erişim ilkeleri uygulanabilir
- Anahtar kasasında güncelleştirilen gizli diziler API Management'ta otomatik olarak döndürülür. Anahtar kasasında güncelleştirmeden sonra API Management'taki adlandırılmış bir değer 4 saat içinde güncelleştirilir. Ayrıca Azure portalını veya yönetim REST API'sini kullanarak gizli diziyi el ile yenileyebilirsiniz.
Önkoşullar
- Henüz bir API Management hizmet örneği oluşturmadıysanız bkz . API Management hizmet örneği oluşturma.
Anahtar kasası tümleştirmesi için önkoşullar
Henüz bir anahtar kasanız yoksa bir tane oluşturun. Anahtar kasası oluşturma adımları için bkz . Hızlı Başlangıç: Azure portalını kullanarak anahtar kasası oluşturma.
Anahtar kasasına gizli dizi oluşturmak veya içeri aktarmak için bkz . Hızlı Başlangıç: Azure portalını kullanarak Azure Key Vault'tan gizli dizi ayarlama ve alma.
API Management örneğinde sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği etkinleştirin.
Anahtar kasasına erişimi yapılandırma
Portalda anahtar kasanıza gidin.
Sol menüde Erişim yapılandırması'nı seçin ve yapılandırılan İzin modelini not edin.
İzin modeline bağlı olarak, API Management yönetilen kimliği için bir anahtar kasası erişim ilkesi veya Azure RBAC erişimi yapılandırın.
Anahtar kasası erişim ilkesi eklemek için:
- Sol menüde Erişim ilkeleri'ni seçin.
- Erişim ilkeleri sayfasında + Oluştur'u seçin.
- İzinler sekmesindeki Gizli dizi izinleri'nin altında Al ve Listele'yi ve ardından İleri'yi seçin.
- Sorumlu sekmesinde Sorumluyu seçin, yönetilen kimliğinizin kaynak adını arayın ve İleri'yi seçin. Sistem tarafından atanan bir kimlik kullanıyorsanız, sorumlu API Management örneğinizin adıdır.
- İleri'yi yeniden seçin. Gözden Geçir + oluştur sekmesinde Oluştur'u seçin.
Azure RBAC erişimini yapılandırmak için:
- Sol menüde Erişim denetimi (IAM) öğesini seçin.
- Erişim denetimi (IAM) sayfasında Rol ataması ekle'yi seçin.
- Rol sekmesinde Key Vault Sertifika Kullanıcısı'nı seçin.
- Üyeler sekmesinde Yönetilen kimlik>+ Üye seç'i seçin.
- Yönetilen kimliği seçin sayfasında, API Management örneğiniz ile ilişkilendirilmiş sistem tarafından atanan yönetilen kimliği veya kullanıcı tarafından atanan yönetilen kimliği seçin ve ardından Seç'i seçin.
- Gözden geçir + ata'yı seçin.
Key Vault güvenlik duvarı gereksinimleri
Anahtar kasanızda Key Vault güvenlik duvarı etkinleştirildiyse ek gereksinimler şunlardır:
Anahtar kasasına erişmek için API Management örneğinin sistem tarafından atanan yönetilen kimliğini kullanmanız gerekir.
Key Vault güvenlik duvarında Güvenilen Microsoft Hizmetleri'nin bu güvenlik duvarını atlamasına izin ver seçeneğini etkinleştirin.
Azure API Management'a eklemek üzere bir sertifika veya gizli dizi seçerken yerel istemci IP adresinizin anahtar kasasına geçici olarak erişmesine izin verildiğinden emin olun. Daha fazla bilgi için bkz . Azure Key Vault ağ ayarlarını yapılandırma.
Yapılandırmayı tamamladıktan sonra, anahtar kasası güvenlik duvarında istemci adresinizi engelleyebilirsiniz.
Sanal ağ gereksinimleri
API Management örneği bir sanal ağda dağıtıldıysa, aşağıdaki ağ ayarlarını da yapılandırın:
- API Management alt ağındaki Azure Key Vault'a hizmet uç noktasını etkinleştirin.
- AzureKeyVault ve AzureActiveDirectory hizmet etiketlerine giden trafiğe izin vermek için bir ağ güvenlik grubu (NSG) kuralı yapılandırın.
Ayrıntılar için bkz . Sanal ağda Azure API Management'ı ayarlarken ağ yapılandırması.
Adlandırılmış değer ekleme veya düzenleme
API Management'a anahtar kasası gizli dizisi ekleme
Bkz . Anahtar kasası tümleştirmesi için önkoşullar.
Önemli
API Management örneğinize bir anahtar kasası gizli dizisi eklerken, anahtar kasasından gizli dizileri listeleme izniniz olmalıdır.
Dikkat
API Management'ta anahtar kasası gizli dizisini kullanırken, anahtar kasasına erişmek için kullanılan gizli diziyi, anahtar kasasını veya yönetilen kimliği silmemeye dikkat edin.
API'ler'in altında Adlandırılmış değerler>+Ekle'yi seçin.
Bir Ad tanımlayıcısı girin ve ilkelerde özelliğe başvurmak için kullanılan bir Görünen ad girin.
Değer türü'nde Anahtar kasası'na tıklayın.
Anahtar kasası gizli dizisinin tanımlayıcısını girin (sürüm olmadan) veya anahtar kasasından gizli dizi seçmek için Seç'i seçin.
Önemli
Kendiniz bir anahtar kasası gizli dizi tanımlayıcısı girerseniz, sürüm bilgilerinin olmadığından emin olun. Aksi takdirde, anahtar kasasındaki bir güncelleştirmeden sonra gizli dizi API Management'ta otomatik olarak döndürülmeyecektir.
İstemci kimliği'nde sistem tarafından atanan veya mevcut kullanıcı tarafından atanan yönetilen kimliği seçin. API Management hizmetinizde yönetilen kimlikleri eklemeyi veya değiştirmeyi öğrenin.
Not
Kimlik, anahtar kasasından gizli dizileri almak ve listelemek için izinlere ihtiyaç duyar. Anahtar kasasına erişimi henüz yapılandırmadıysanız API Management, kimliği gerekli izinlerle otomatik olarak yapılandırabilmesini ister.
Adlandırılmış değerlerinizi düzenlemenize yardımcı olması için isteğe bağlı bir veya daha fazla etiket ekleyin, ardından Kaydet'i seçin.
Oluştur'u belirleyin.
API Management'a düz veya gizli dizi değeri ekleme
- Azure portalında API Management örneğine gidin.
- API'ler'in altında Adlandırılmış değerler>+Ekle'yi seçin.
- Bir Ad tanımlayıcısı girin ve ilkelerde özelliğe başvurmak için kullanılan bir Görünen ad girin.
- Değer türü'nde Düz veya Gizli Dizi'yi seçin.
- Değer alanına bir dize veya ilke ifadesi girin.
- Adlandırılmış değerlerinizi düzenlemenize yardımcı olması için isteğe bağlı bir veya daha fazla etiket ekleyin, ardından Kaydet'i seçin.
- Oluştur'u belirleyin.
Adlandırılmış değer oluşturulduktan sonra adı seçerek düzenleyebilirsiniz. Görünen adı değiştirirseniz, adlandırılmış değere başvuran tüm ilkeler yeni görünen adı kullanacak şekilde otomatik olarak güncelleştirilir.
Adlandırılmış değer kullanma
Bu bölümdeki örneklerde aşağıdaki tabloda gösterilen adlandırılmış değerler kullanılır.
Veri Akışı Adı | Değer | Gizli dizi |
---|---|---|
ContosoHeader | TrackingId |
False |
ContosoHeaderValue | •••••••••••••••••••••• | True |
ExpressionProperty | @(DateTime.Now.ToString()) |
False |
ContosoHeaderValue2 | This is a header value. |
False |
İlkede adlandırılmış bir değer kullanmak için, görünen adını aşağıdaki örnekte gösterildiği gibi gibi gibi {{ContosoHeader}}
bir çift küme ayracı içine yerleştirin:
<set-header name="{{ContosoHeader}}" exists-action="override">
<value>{{ContosoHeaderValue}}</value>
</set-header>
Bu örnekte, ContosoHeader
bir ilkedeki set-header
üst bilginin adı olarak kullanılır ve ContosoHeaderValue
bu üst bilginin değeri olarak kullanılır. Bu ilke, API Management ağ geçidine {{ContosoHeader}}
yönelik bir istek veya yanıt sırasında değerlendirildiğinde ve {{ContosoHeaderValue}}
ilgili değerleriyle değiştirildiğinde.
Adlandırılmış değerler, önceki örnekte gösterildiği gibi tam öznitelik veya öğe değerleri olarak kullanılabilir, ancak aşağıdaki örnekte gösterildiği gibi değişmez metin ifadesinin bir bölümüne de eklenebilir veya birleştirilebilir:
<set-header name = "CustomHeader{{ContosoHeader}}" ...>
Adlandırılmış değerler ilke ifadeleri de içerebilir. Aşağıdaki örnekte ifade ExpressionProperty
kullanılmıştır.
<set-header name="CustomHeader" exists-action="override">
<value>{{ExpressionProperty}}</value>
</set-header>
Bu ilke değerlendirildiğinde değeri {{ExpressionProperty}}
ile @(DateTime.Now.ToString())
değiştirilir. Değer bir ilke ifadesi olduğundan, ifade değerlendirilir ve ilke yürütülmeye devam eder.
Bunu Azure portalında veya geliştirici portalında, kapsamda adlandırılmış değerler içeren bir ilkeye sahip bir işlemi çağırarak test edebilirsiniz. Aşağıdaki örnekte, adlandırılmış değerlere sahip önceki iki örnek set-header
ilkeyle bir işlem çağrılır. Yanıtın adlandırılmış değerlerle ilkeler kullanılarak yapılandırılmış iki özel üst bilgi içerdiğine dikkat edin.
Adlandırılmış değerlere sahip önceki iki örnek ilkeyi içeren bir çağrının giden API izlemesine bakarsanız, adlandırılmış değerlerin eklendiği iki set-header
ilkeyi ve ilke ifadesini içeren adlandırılmış değer için ilke ifadesi değerlendirmesini görebilirsiniz.
Dize ilişkilendirmesi adlandırılmış değerlerle de kullanılabilir.
<set-header name="CustomHeader" exists-action="override">
<value>@($"The URL encoded value is {System.Net.WebUtility.UrlEncode("{{ContosoHeaderValue2}}")}")</value>
</set-header>
için CustomHeader
değeri olacaktır The URL encoded value is This+is+a+header+value.
.
Dikkat
İlke Azure Key Vault'taki bir gizli diziye başvuruda bulunursa, anahtar kasasından alınan değer API isteği izleme için etkinleştirilmiş aboneliklere erişimi olan kullanıcılar tarafından görülebilir.
Adlandırılmış değerler ilke ifadeleri içerebilir ancak diğer adlandırılmış değerleri içeremez. Adlandırılmış değer başvurusu içeren metin gibi Text: {{MyProperty}}
bir değer için kullanılıyorsa, bu başvuru çözümlenmez ve değiştirilmez.
Adlandırılmış değeri silme
Adlandırılmış değeri silmek için adı seçin ve ardından bağlam menüsünden (...) Sil'i seçin.
Önemli
Adlandırılmış değere herhangi bir API Management ilkesi tarafından başvurulursa, adlandırılmış değeri kullanan tüm ilkelerden kaldırana kadar silemezsiniz.
Sonraki adımlar
- İlkelerle çalışma hakkında daha fazla bilgi edinin