Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
UYGULANANLAR: Tüm API Management katmanları
Azure API Management'ta abonelikler, API tüketicilerinin bir API Management örneği aracılığıyla yayımlanan API'lere erişmesinin en yaygın yoludur. Bu makalede kavramla ilgili genel bir bakış sunulmaktadır.
Not
API Management aboneliği, bir abonelik anahtarı kullanılarak API Management aracılığıyla API'leri çağırmak için özel olarak kullanılır. Azure aboneliğiyle aynı değildir.
Abonelikler nedir?
API Management aracılığıyla API'leri yayımlayarak, abonelik anahtarlarını kullanarak API erişiminin güvenliğini kolayca sağlayabilirsiniz. Yayımlanan API'leri kullanması gereken geliştiriciler, bu API'leri çağırırken HTTP isteklerine geçerli bir abonelik anahtarı eklemelidir. Geçerli bir abonelik anahtarı olmadan çağrılar:
- API Management ağ geçidi tarafından hemen reddedilir.
- Arka uç hizmetlerine iletilmez.
API'lere erişmek için geliştiricilerin bir aboneliğe ve abonelik anahtarına ihtiyacı olur. Abonelik, iki abonelik anahtarı için adlandırılmış bir kapsayıcıdır.
Ayrıca
- Geliştiriciler API yayımcılarının onayına gerek kalmadan abonelik alabilir.
- API yayımcıları doğrudan API tüketicileri için abonelik oluşturabilir.
İpucu
API Management, aşağıdaki örnekler de dahil olmak üzere API'lere erişimin güvenliğini sağlamaya yönelik diğer mekanizmaları da destekler:
Abonelik anahtarlarını yönetme
Anahtarları düzenli olarak yeniden oluşturmak yaygın bir güvenlik önlemidir. Abonelik anahtarı gerektiren çoğu Azure hizmeti gibi API Management da anahtarları çiftler halinde oluşturur. Hizmeti kullanan her uygulama A anahtarındanB tuşuna geçebilir ve A anahtarını en az kesintiyle yeniden oluşturabilir ve tam tersi de geçerlidir.
Anahtarları yeniden oluşturmak yerine, Azure API Management Aboneliği - Azure REST API'sini Oluştur veya Güncelleştir'i çağırarak belirli anahtarları ayarlayabilirsiniz. Özellikle HTTP isteği gövdesinde properties.primaryKey ve/veya properties.secondaryKey ayarlayın.
Not
- API Management, abonelik anahtarlarının yaşam döngüsünü yönetmek için son kullanma tarihlerini ayarlama veya anahtarları otomatik olarak döndürme gibi yerleşik özellikler sağlamaz. Azure PowerShell veya Azure SDK'ları gibi araçları kullanarak bu işlemleri otomatikleştirmek için iş akışları geliştirebilirsiniz.
- API'lere sınırlı süreli erişimi zorlamak için API yayımcıları abonelik anahtarlarıyla ilkeleri kullanabilir veya belirteç tabanlı kimlik doğrulaması gibi yerleşik süre sonu sağlayan bir mekanizma kullanabilir.
Aboneliklerin kapsamı
Abonelikleri çeşitli kapsamlarla ilişkilendirebilirsiniz: ürün, tüm API'ler veya tek bir API.
Bir ürün için abonelikler
Geleneksel olarak API Management'taki abonelikleri tek bir ürün kapsamıyla ilişkilendirirsiniz. Geliştiriciler:
- Geliştirici portalında ürün listesini bulun.
- Kullanmak istedikleri ürünler için abonelik istekleri gönderin.
- Otomatik olarak veya API yayımcıları tarafından onaylanan aboneliklerdeki anahtarları kullanarak üründeki API'lere erişin.
Şu anda geliştirici portalı yalnızca Kullanıcı Profili bölümünde ürün kapsamı aboneliklerini gösterir.
Tüm API'ler veya tek bir API için abonelikler
Aşağıdakilerden herhangi biri için erişim izni veren anahtarlar da oluşturabilirsiniz:
- Tek bir API veya
- Bir API Yönetimi örneği içindeki tüm API'ler.
Bu gibi durumlarda, önce bir ürün oluşturmanız ve buna API eklemeniz gerekmez.
Tüm erişimli abonelik
Her API Management örneği, tüm API'lere erişim sağlayan yerleşik bir tüm erişim aboneliğiyle birlikte gelir. Hizmet kapsamlı bu abonelik, hizmet sahiplerinin test konsolundaki API'leri test etmelerini ve hatalarını ayıklamalarını kolaylaştırır.
Uyarı
Tümü erişimli abonelik, API Management örneğindeki her API'ye erişim sağlar. Bu aboneliği yalnızca yetkili kullanıcılar kullanmalıdır. Bu aboneliği hiçbir zaman rutin API erişimi için kullanmayın veya istemci uygulamalarına tüm erişimli abonelik anahtarını eklemeyin.
Not
API kapsamlı bir abonelik, tüm API'ler aboneliği veya yerleşik tüm erişimli abonelik kullanıyorsanız, ürün kapsamında yapılandırılan ilkeler bu abonelikten gelen isteklere uygulanmaz.
Tek başına abonelikler
API Management, geliştirici hesabıyla ilişkilendirilmeyen tek başına aboneliklere de izin verir. Bu özellik, bir aboneliği paylaşan çeşitli geliştiriciler veya ekipler gibi senaryolarda kullanışlıdır.
Sahip atamadan abonelik oluşturmak tek başına abonelik olmasını sağlar. Geliştiricilere ve ekibinizin geri kalanına tek başına abonelik anahtarına erişim vermek için:
- Abonelik anahtarını el ile paylaşın.
- Abonelik anahtarını ekibinizin kullanımına açmak için özel bir sistem kullanın.
Not
API Management'taki abonelikleri Doğrudan Microsoft Entra Id güvenlik gruplarına atayamazsınız. Bir gruptaki birden çok kullanıcıya abonelik erişimi sağlamak için tek başına bir abonelik oluşturun ve abonelik anahtarlarını grup üyelerine dağıtın veya kimlik doğrulaması için Microsoft Entra Id ile tümleştirin ve grup üyeliğine göre API erişimini denetlemek için ilkeler kullanın.
Azure portalında abonelik oluşturma ve yönetme
API yayımcıları (yöneticiler veya uygun izinlere sahip geliştiriciler), API Management örneğinde oturum açarak doğrudan Azure portalında abonelik oluşturabilir . API tüketicileri Azure portalı üzerinden abonelik oluşturamaz; genellikle geliştirici portalı üzerinden abonelik ister veya API yayımcılarından alır.
Portalda bir abonelik oluşturduğunuzda abonelik Etkin durumda olur ve bu da abonenin geçerli bir abonelik anahtarı kullanarak ilişkili API'yi çağırabileceği anlamına gelir. Aboneliğin durumunu gerektiği gibi değiştirebilirsiniz. Örneğin, API erişimini önlemek için herhangi bir aboneliği (yerleşik tüm erişim aboneliği dahil) askıya alabilir, iptal edebilir veya silebilirsiniz.
Abonelik anahtarı kullanma
Aboneler API Management abonelik anahtarını iki şekilde kullanabilir:
- geçerli bir abonelik anahtarının değerini geçirerek isteğe Ocp-Apim-Subscription-Key HTTP üst bilgisini ekleyin.
- URL'ye abonelik anahtarı sorgu parametresini ve geçerli bir değeri ekleyin. Sorgu parametresi, yalnızca başlık var olmadığında kontrol edilir.
İpucu
Ocp-Apim-Subscription-Key , abonelik anahtarı üst bilgisinin varsayılan adıdır ve abonelik anahtarı sorgu parametresinin varsayılan adıdır. İsterseniz, her API'nin ayarlarında bu adları değiştirebilirsiniz. Örneğin, portalda bu adları bir API'nin Ayarlar sekmesinde güncelleştirin.
Not
bir istek üst bilgisine veya sorgu parametresine eklendiğinde, abonelik anahtarı varsayılan olarak arka uça geçirilir ve arka uç izleme günlüklerinde veya diğer sistemlerde gösterilebilir. Bu veriler hassassa, abonelik anahtarı üst bilgisini () veya sorgu parametresini (inboundset-header ) kaldırmak için bölümün set-query-parameter sonunda bir ilke yapılandırabilirsiniz.
API veya ürün erişimi için abonelik gereksinimini etkinleştirme veya devre dışı bırakma
Varsayılan olarak BIR API oluşturduğunuzda, API erişimi için bir abonelik anahtarı gerekir. Benzer şekilde, bir ürün oluşturduğunuzda, ürüne eklediğiniz herhangi bir API'ye erişmek için varsayılan olarak bir abonelik anahtarı gerekir. Belirli senaryolarda, API yayımcısı abonelik gereksinimi olmadan bir ürünü veya belirli bir API'yi genel kullanıma yayımlamak isteyebilir. Yayımcı belirli API'lere güvenli olmayan (anonim) erişimi etkinleştirmeyi seçebilse de, istemci erişimini güvenli hale getirmek için başka bir mekanizma yapılandırmanız önerilir.
Dikkat
Abonelik gerektirmeyen bir ürünü veya API'yi yapılandırırken dikkatli olun. Bu yapılandırma çok izin verebilir ve bir API'yi belirli API güvenlik tehditlerine karşı daha savunmasız hale getirebilir.
Not
Açık ürünlerde Abonelik gerekli ayarı devre dışı bırakılır; bu da kullanıcıların abone olmaları gerekmeyecek anlamına gelir. Bu nedenle, açık ürünler geliştirici portalının Ürünler sayfasında görünmez.
API veya ürün oluştururken veya daha sonraki bir sürümde abonelik gereksinimini devre dışı bırakabilirsiniz.
Portalı kullanarak abonelik gereksinimini devre dışı bırakmak için:
- Ürün gereksinimini devre dışı bırak - ÜrününAyarlar sayfasında Abonelik gerektirir'i devre dışı bırakın.
- API gereksinimini devre dışı bırakma - API'nin Ayarlar sayfasında Abonelik gerekli'yi devre dışı bırakın.
Abonelik gereksinimi devre dışı bırakıldıktan sonra, seçilen API'ye veya API'lere abonelik anahtarı olmadan erişilebilir.
API Management abonelik anahtarlarıyla veya abonelik anahtarları olmadan istekleri nasıl işler?
Abonelik anahtarı olan API isteği
API Management, abonelik anahtarı olan bir istemciden API isteği aldığında isteği şu kurallara göre işler:
Anahtarın geçerli olup olmadığını ve şu şekilde tanımlanan etkin bir abonelikle ilişkili olup olmadığını denetler:
- API'ye yönelik bir abonelik.
- Kapsamı API'ye atanmış bir ürüne göre belirlenmiş bir abonelik.
- Kapsamı tüm API'ler olan bir abonelik.
- Hizmet kapsamlı abonelik (tüm erişim aboneliğine dahil).
Anahtar uygun kapsamdaki etkin bir abonelik için geçerliyse, API Management erişim verir. İlke tanımının bu kapsamdaki yapılandırmasına bağlı olarak ilkeleri uygular.
Anahtar geçerli değilse ancak abonelik ( açık bir ürün) gerektirmeden API'yi içeren bir ürün varsa, API Management anahtarı yoksayar ve isteği abonelik anahtarı olmadan API isteği olarak işler (aşağıdaki bölüme bakın).
Aksi takdirde API Management erişimi reddeder (401 Erişim reddedildi hatası).
Abonelik anahtarı olmadan API isteği
API Management, abonelik anahtarı olmayan bir istemciden API isteği aldığında isteği şu kurallara göre işler:
- API'yi içeren ancak abonelik ( açık ürün) gerektirmeyen bir ürünün varlığını denetler. Açık ürün varsa, API Management isteği açık ürün için yapılandırılan API'ler, ilkeler ve erişim kuralları bağlamında işler. Bir API en fazla bir açık ürünle ilişkilendirilebilir.
- API'yi içeren açık bir ürün bulunamazsa API Management, API'nin abonelik gerekip gerekmediğini denetler. Bir abonelik gerekli değilse, API Management isteği API ve işlemin bağlamında yanıtlar.
- Yapılandırılmış ürün veya API bulunmazsa, API Management erişimi reddeder (401 Erişim reddedildi hatası).
Özet tablosu
Aşağıdaki tabloda, ağ geçidinin api isteklerini farklı senaryolarda abonelik anahtarlarıyla veya abonelik anahtarları olmadan nasıl işlediği özetlemektedir. Tabloda, istenmeyen, anonim API erişimini etkinleştirebilecek yapılandırmalar not edilir.
| API'ye atanan tüm ürünler için abonelik gerekir | API için abonelik gerekiyor | Abonelik anahtarıyla API çağrısı | Abonelik anahtarı olmadan API çağrısı | Tipik senaryolar |
|---|---|---|---|---|
| ✔️ | ✔️ | Erişime izin verildi: • Ürün odaklı anahtar • API'ye özgü anahtar • API kapsamlı anahtar • Hizmet-kapsamlı anahtar Erişim reddedildi: • Geçerli ürün veya API kapsamında olmayan diğer anahtarlar |
Erişim reddedildi | Ürün veya API'ye özgü abonelik kullanılarak korumalı API erişimi |
| ✔️ | ❌ | Erişime izin verildi: • Ürün odaklı anahtar • API'ye özgü anahtar • API kapsamlı anahtar • Hizmet-kapsamlı anahtar • Geçerli ürün veya API kapsamında olmayan diğer anahtarlar |
Erişime izin verildi (API bağlamı) | • Ürün kapsamlı abonelikle korumalı API erişimi • API'ye anonim erişim. Anonim erişim amaçlanmamışsa, kimlik doğrulaması ve yetkilendirmeyi zorunlu kılmak için API düzeyinde ilkeler yapılandırın. |
| ❌ 1 | ✔️ | Erişime izin verildi: • Ürün odaklı anahtar • API'ye özgü anahtar • API kapsamlı anahtar • Hizmet-kapsamlı anahtar Erişim reddedildi: • Geçerli ürün veya API kapsamında olmayan diğer anahtarlar |
Erişime izin verildi (açık ürün bağlamı) | • API'ye özgü abonelikle korumalı API erişimi • API'ye anonim erişim. Anonim erişim amaçlanmamışsa, kimlik doğrulaması ve yetkilendirmeyi zorunlu kılmak için ürün ilkeleriyle yapılandırın |
| ❌ 1 | ❌ | Erişime izin verildi: • Ürün odaklı anahtar • API'ye özgü anahtar • API kapsamlı anahtar • Hizmet-kapsamlı anahtar • Geçerli ürün veya API kapsamında olmayan diğer anahtarlar |
Erişime izin verildi (açık ürün bağlamı) | API'ye anonim erişim. Anonim erişim amaçlanmamışsa, kimlik doğrulaması ve yetkilendirmeyi zorunlu kılmak için ürün ilkeleriyle yapılandırın |
1 API ile ilişkili açık bir ürün vardır.
Dikkat edilmesi gereken noktalar
- Ürün bağlamında API erişimi, ürünün yayımlanıp yayımlanmadığıyla aynıdır. Ürünün yayımdan kaldırılması geliştirici portalında gizlenir, ancak yeni veya mevcut abonelik anahtarlarını geçersiz kılmaz.
- API abonelik kimlik doğrulaması gerektirmezse, abonelik anahtarı içeren herhangi bir API isteği, abonelik anahtarı olmayan bir istekle aynı kabul edilir. Abonelik anahtarı gözardı edilir.
- API erişimi "bağlamı", belirli bir kapsamda (örneğin, API veya ürün) uygulanan ilkeler ve erişim denetimleri anlamına gelir.
İlgili içerik
API Management hakkında daha fazla bilgi edinin:
- API Management ilkelerinin farklı kapsamlarda nasıl uygulandığını öğrenin.
- API Management'ta diğer kavramları öğrenin.
- API Management hakkında daha fazla bilgi edinmek için öğreticilerimizi izleyin.
- Sık sorulan sorular için SSS sayfamıza bakın.