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ı
Bu makale, API Management'ta kullanıcıların yönetilen API'lere erişiminin güvenliğini sağlamanıza yardımcı olan zengin, esnek bir özellik kümesine giriş niteliğindedir.
API Management'ta API kimlik doğrulaması ve yetkilendirme, istemci uygulamalarının API Management ağ geçidine ve arka uç API'lerine uçtan uca iletişiminin güvenliğini sağlamayı içerir. Birçok müşteri ortamı için tercih edilen API yetkilendirme protokolü OAuth 2.0'dır. API Management, istemci ile API Management ağ geçidi arasında, ağ geçidi ile arka uç API'si arasında veya her ikisi de bağımsız olarak OAuth 2.0 yetkilendirmesini destekler.
API Management, OAuth 2.0'ı destekleyen veya API'ler için OAuth 2.0 yetkilendirmesi mümkün olmadığında yararlı olan diğer istemci tarafı ve hizmet tarafı kimlik doğrulaması ve yetkilendirme mekanizmalarını destekler. Bu seçenekler arasından seçim yapmanız kuruluşunuzun API ortamının olgunluğuna, güvenlik ve uyumluluk gereksinimlerinize ve kuruluşunuzun yaygın API tehditlerini azaltma yaklaşımına bağlıdır.
Important
Kullanıcıların API'lere erişiminin güvenliğini sağlamak, API Management ortamınızın güvenliğini sağlamak için dikkat edilmesi gereken birçok önemli noktadan biridir. Daha fazla bilgi için bkz. API Management için Azure güvenlik temeli.
Note
Diğer API Management bileşenleri, kullanıcı erişiminin güvenliğini sağlamak ve kısıtlamak için ayrı mekanizmalara sahiptir:
- API Management örneğini Azure denetim düzlemi üzerinden yönetmek için API Management, Microsoft Entra ID ve Azure rol tabanlı erişim denetimi (RBAC) üzerine dayanır.
- API Management geliştirici portalı, güvenli kullanıcı kaydolma ve oturum açma işlemlerini kolaylaştırmak için çeşitli seçenekleri destekler.
Kimlik doğrulaması ve yetkilendirme
API'lere erişim bağlamında kimlik doğrulaması ve yetkilendirmenin kısa bir açıklaması aşağıdadır:
Kimlik doğrulaması: API'ye erişen bir kullanıcı veya uygulamanın kimliğini doğrulama işlemi. Kimlik doğrulaması, kullanıcı adı ve parola, sertifika gibi kimlik bilgileri veya çoklu oturum açma (SSO) veya diğer yöntemler aracılığıyla yapılabilir.
Yetkilendirme: Kullanıcının veya uygulamanın belirli bir API'ye erişim izni olup olmadığını belirleme işlemi, genellikle OAuth 2.0 gibi belirteç tabanlı bir protokol aracılığıyla.
Note
Kimlik doğrulaması ve yetkilendirmeyi desteklemek için, kimlik doğrulaması veya yetkilendirme için kullandığınız kimlik bilgilerini veya belirteçleri korumak üzere TLS kullanarak API'lere erişimi de güvenli bir şekilde sağlamanız gerekir.
OAuth 2.0 kavramları
OAuth 2.0 , web API'leri gibi kaynaklara erişimin güvenliğini sağlamak için yaygın olarak kullanılan standart bir yetkilendirme çerçevesidir. OAuth 2.0, bir istemci uygulamasının kullanıcı adına kaynaklar üzerinde gerçekleştirebileceği eylemleri kullanıcının kimlik bilgilerini paylaşmadan kısıtlar. OAuth 2.0 bir kimlik doğrulama protokolü olmasa da, genellikle kullanıcı kimlik doğrulaması ve SSO işlevselliği sağlayarak OAuth 2.0'ı genişleten OpenID Connect (OIDC) ile kullanılır.
OAuth akışı
bir istemci uygulaması TLS ve OAuth 2.0 kullanılarak güvenliği sağlanan bir istekle API'yi çağırdığında ne olur? Aşağıda kısaltılmış bir örnek akış verilmiştir:
İstemci (çağıran uygulama veya taşıyıcı) kimlik bilgilerini kullanarak bir kimlik sağlayıcısına kimlik doğrulaması yapar.
İstemci, kimlik sağlayıcısının yetkilendirme sunucusundan sınırlı bir erişim belirteci (JSON web belirteci veya JWT) alır.
Kimlik sağlayıcısı (örneğin, Microsoft Entra ID) belirteç verendir ve belirteç bir hedef kitle talebi içerir, bu da bir kaynak sunucusuna (örneğin, bir arka uç API'sine veya API Management ağ geçidine) erişim yetkisi verir.
İstemci API'yi çağırır ve erişim belirtecini sunar; örneğin, yetkilendirme üst bilgisinde.
Kaynak sunucusu erişim belirtecini doğrular. Doğrulama, verenin ve hedef kitle taleplerinin beklenen değerleri içerdiğini denetlemeyi içeren karmaşık bir işlemdir.
Belirteç doğrulama ölçütlerine göre arka uç API'sinin kaynaklarına erişim verilir.
İstemci uygulamasının ve senaryoların türüne bağlı olarak, belirteçleri istemek ve yönetmek için farklı yetkilendirme akışları gerekir. Örneğin, yetkilendirme kodu akışı ve verme türü genellikle web API'lerini çağıran uygulamalarda kullanılır. Microsoft Entra Id'de OAuth akışları ve uygulama senaryoları hakkında daha fazla bilgi edinin.
API Management'ta OAuth 2.0 yetkilendirme senaryoları
Senaryo 1 - İstemci uygulaması doğrudan arka uca yetkilendirme
Yaygın yetkilendirme senaryolarından biri, çağıran uygulamanın doğrudan arka uç API'sine erişim istemesi ve ağ geçidine bir yetkilendirme üst bilgisinde OAuth 2.0 belirteci sunmasıdır. Azure API Management daha sonra çağıran ve arka uç API'si arasında "saydam" bir proxy işlevi görür ve belirteci değiştirmeden arka uça geçirir. Erişim belirtecinin kapsamı, çağıran uygulama ile arka uç API'sinin arasındadır.
Aşağıdaki görüntüde Microsoft Entra Id'nin yetkilendirme sağlayıcısı olduğu bir örnek gösterilmektedir. İstemci uygulaması tek sayfalı bir uygulama (SPA) olabilir.
HTTP isteğiyle birlikte gönderilen erişim belirteci arka uç API'sine yönelik olsa da, API Management yine de derinlemesine bir savunma yaklaşımına izin verir. Örneğin JWT'yi doğrulamak için ilkeleri yapılandırın ve hedeflenen arka uç API'sinde geçerli olmayan bir belirteç veya belirteç olmadan gelen istekleri reddedin. Api Management'ı, belirteçten ayıklanan diğer ilgi alanı taleplerini denetlemek için de yapılandırabilirsiniz.
Note
OAuth 2.0 ile Azure API Management aracılığıyla kullanıma sunulan bir API'nin güvenliğini bu şekilde sağlarsanız, API Management'ı bir Azure portalı veya geliştirici portalı test konsolu kullanıcısı adına test amacıyla geçerli bir belirteç oluşturacak şekilde yapılandırabilirsiniz. API Management örneğinize bir OAuth 2.0 sunucusu eklemeniz ve API'de OAuth 2.0 yetkilendirme ayarlarını etkinleştirmeniz gerekir. Daha fazla bilgi için bkz . OAuth 2.0 kullanıcı yetkilendirmesini yapılandırarak geliştirici portalının test konsolunu yetkilendirme.
Example:
Tip
Özel olarak API erişiminin Microsoft Entra ID kullanılarak korunduğu durumda, belirteç doğrulaması için validate-azure-ad-token ilkesini yapılandırabilirsiniz.
Senaryo 2 - İstemci uygulaması API Management'ı yetkilendirir
Bu senaryoda API Management hizmeti API adına hareket eder ve çağıran uygulama API Management örneğine erişim isteğinde bulunur. Erişim belirtecinin kapsamı, çağıran uygulama ile API Management ağ geçidi arasındadır. API Management'ta, ağ geçidi isteği arka uca geçirmeden önce belirteci doğrulamak için bir ilke (validate-jwt veya validate-azure-ad-token) yapılandırın. Ayrı bir mekanizma genellikle ağ geçidi ile arka uç API'si arasındaki bağlantının güvenliğini sağlar.
Aşağıdaki örnekte, Microsoft Entra Id yine yetkilendirme sağlayıcısıdır ve karşılıklı TLS (mTLS) kimlik doğrulaması ağ geçidi ile arka uç arasındaki bağlantının güvenliğini sağlar.
Bunu yapmanın farklı nedenleri vardır. Örneğin:
Arka uç, OAuth'u destekleyecek şekilde güncelleştirilmeyen eski bir API'dir
Önce jetonu doğrulamak için API Management'ı yapılandırmanız gerekir (yayımcıyı ve kullanıcı kitlesi iddialarını en azından denetleme). Doğrulamadan sonra, KARŞıLıKLı TLS (mTLS) kimlik doğrulaması gibi API Management'tan gelen bağlantıların güvenliğini sağlamak için kullanılabilen çeşitli seçeneklerden birini kullanın. Bu makalenin devamındaki Hizmet tarafı seçeneklerine bakın.
Arka ucun gerektirdiği bağlamı arayandan oluşturmak mümkün değildir
API Management, tokenı başarıyla doğruladıktan sonra, kendi bağlamını veya çağıran uygulamadan türetilen bir bağlamı kullanarak arka uç API'si için bir erişim belirteci alması gerekir. Bu senaryo aşağıdakilerden biri kullanılarak gerçekleştirilebilir:
Yapılandırılmış bir kimlik sağlayıcısından arka uç API'sinde geçerli olan bir ileriye doğru erişim belirteci almak için send-request gibi özel bir ilke.
API Management kaynağının sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğindeki belirteci arka uç API'sine geçirerek API Management örneğinin kendi kimliği.
Kuruluş, standartlaştırılmış yetkilendirme yaklaşımını benimsemek istiyor
API arka uçlarındaki kimlik doğrulama ve yetkilendirme mekanizmalarından bağımsız olarak, kuruluşlar ön uçta standartlaştırılmış yetkilendirme yaklaşımı için OAuth 2.0'da yakınsama yapmayı tercih edebilir. API Management'ın ağ geçidi, kuruluşun arka uçları geliştikçe tutarlı yetkilendirme yapılandırmasını ve API tüketicileri için ortak bir deneyimi etkinleştirebilir.
Senaryo 3: API Yönetimi arka ucu yetkilendirir
Yönetilen bağlantılarla (eski adı yetkilendirmeler), API Management'ta kimlik bilgileri yöneticisini kullanarak LinkedIn, GitHub veya diğer OAuth 2.0 uyumlu arka uçlar gibi bir veya daha fazla arka uç veya örneğin SaaS hizmetine erişim yetkisi verirsiniz. Bu senaryoda, bir kullanıcı veya istemci uygulaması, kimlik sağlayıcısı veya diğer istemci tarafı seçenekleri kullanılarak ağ geçidi erişimi denetlenerek API Management ağ geçidine bir istekte bulunur. Ardından, ilke yapılandırması aracılığıyla kullanıcı veya istemci uygulaması API Management'a arka uç kimlik doğrulaması ve yetkilendirme yetkisi verir.
Aşağıdaki örnekte, istemci ile ağ geçidi arasında bir abonelik anahtarı kullanılır ve GitHub arka uç API'sinin kimlik bilgisi sağlayıcısıdır.
Bir kimlik bilgisi sağlayıcısı bağlantısıyla API Management, OAuth 2.0 akışında API erişimi için belirteçleri alır ve yeniler. Bağlantılar, belirteç yönetimini birden çok senaryoda basitleştirir, örneğin:
- Bir istemci uygulamasının GraphQL çözümleyicilerini kullanarak birden çok alanı çözümlemek için birden çok SaaS arka ucuna yetkilendirmesi gerekebilir.
- Kullanıcılar kimlik sağlayıcılarından SSO tarafından API Management'ta kimlik doğrulaması yapar, ancak ortak bir kuruluş hesabı kullanarak bir arka uç SaaS sağlayıcısına (LinkedIn gibi) yetkilendirme yapar.
- bir istemci uygulamasının (veya botun) kimliği doğrulanmış bir kullanıcı adına arka uç güvenli çevrimiçi kaynaklarına erişmesi gerekir (örneğin, e-postaları denetleme veya sipariş verme).
Examples:
- Kimlik bilgisi yöneticisini yapılandırma - Microsoft Graph API
- Kimlik bilgisi yöneticisini yapılandırma - GitHub API'si
- Kimlik bilgisi yöneticisini yapılandırma - arka uç API'lerine kullanıcı tarafından devredilen erişim
API'lerin güvenliğini sağlamak için diğer seçenekler
Yetkilendirme tercih edilir ve OAuth 2.0 API'ler için güçlü yetkilendirmeyi etkinleştirmenin baskın yöntemi haline gelmiş olsa da API Management, istemci ve ağ geçidi (istemci tarafı) veya ağ geçidi ile arka uç (hizmet tarafı) arasında erişimi güvenli hale getirmek veya kısıtlamak için başka birçok mekanizma sağlar. Kuruluşun gereksinimlerine bağlı olarak, bunları OAuth 2.0'ı desteklemek için kullanabilirsiniz. Alternatif olarak, çağıran uygulamalar veya arka uç API'leri eskiyse veya henüz OAuth 2.0'ı desteklemiyorsa bunları bağımsız olarak yapılandırın.
İstemci tarafı seçenekleri
| Mechanism | Description | Considerations |
|---|---|---|
| mTLS | Bağlantı istemcisi tarafından sunulan sertifikayı doğrula ve sertifika özelliklerini API Management'ta yönetilen bir sertifikaya göre kontrol et. | Sertifika bir anahtar kasasında depolanabilir. |
| Arayan IP'lerini kısıtlama | Belirli IP adreslerinden veya adres aralıklarından gelen çağrılara filtre uygulama (izin verme/reddetme). | Belirli kullanıcılara veya kuruluşlara veya yukarı akış hizmetlerinden gelen trafiğe erişimi kısıtlamak için kullanın. |
| Abonelik anahtarı | API Management aboneliğine göre erişimi bir veya daha fazla API ile sınırlama | Başka bir kimlik doğrulama veya yetkilendirme yöntemine ek olarak abonelik (API) anahtarı kullanmanızı öneririz. Tek başına, abonelik anahtarı güçlü bir kimlik doğrulaması biçimi değildir, ancak abonelik anahtarını kullanmak belirli senaryolarda yararlı olabilir; örneğin, tek tek müşterilerin API kullanımını izleme veya belirli API ürünlerine erişim verme. |
Tip
Derinlemesine savunma için, API Management örneğinden önce bir web uygulama güvenlik duvarı dağıtmanızı kesinlikle öneririz. Örneğin, Azure Application Gateway veya Azure Front Door kullanın.
Hizmet tarafı seçenekleri
| Mechanism | Description | Considerations |
|---|---|---|
| Yönetilen kimlik doğrulaması | Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlikle arka uç API'sinde kimlik doğrulaması yapın. | Microsoft Entra Id'den belirteç alarak korumalı arka uç kaynağına kapsamlı erişim için önerilir. |
| Sertifika kimlik doğrulaması | İstemci sertifikası kullanarak arka uç API'sinde kimlik doğrulaması yapın. | Sertifika anahtar kasasında depolanabilir. |
| Temel kimlik doğrulaması | Yetkilendirme üstbilgisi aracılığıyla gönderilen kullanıcı adı ve parola ile arka plan API'sinde kimlik doğrulaması yapın. | Daha güvenli kimlik doğrulama seçenekleri (örneğin, yönetilen kimlik, sertifikalar, kimlik bilgileri yöneticisi) bulunuyorsa caydırılır. Seçilirse, gizli bilgiler bir anahtar kasasında korunarak kimlik bilgilerini belirtmek için adlandırılmış değerleri kullanın. |
İlgili içerik
- Microsoft kimlik platformunda kimlik doğrulaması ve yetkilendirme hakkında daha fazla bilgi edinin.
- API Management kullanarak OWASP API güvenlik tehditlerini azaltmayı öğrenin.
- Kapsamlı bir API güvenlik stratejisi oluşturmayı öğrenin.