Uygulama kimliği ve erişim yönetimi

Bu makalede, uygulama sahiplerinin ve geliştiricilerin bulutta yerel uygulamalar için kimlik ve erişim yönetimini tasarlamak için kullanabileceği önemli noktalar ve öneriler açıklanmaktadır.

Ekibiniz buluta özel uygulamalar geçirir veya oluşturursa, uygulamalar için kimlik doğrulaması ve erişim gereksinimlerini göz önünde bulundurmanız gerekir. Bu gereksinimler, kullanıcıların uygulamalarda nasıl kimlik doğrulaması gerçekleştirdiğini ve uygulama kaynaklarının bir sql veritabanına eriştiğinde, uygulama kaynaklarının birbirleri için nasıl kimlik doğrulaması gerçekleştirdiğini belirler.

Platform otomasyonu ve DevOps tasarım alanında, uygulama ekibinizin iş yüklerini abonelik aracı geçişini öneririz. Abonelik-satış işleminin bir parçası olarak, uygulama ekibinizin uygun abonelikleri oluşturabilmesi için platform ekibine kimlik ve erişim gereksinimleri sağlaması gerekir. Uygulama sahipleri, tek tek uygulamaların kimlik ve erişim yönetiminden sorumludur. Platform ekibinin sağladığı merkezi hizmetleri kullanarak uygulamalarını yönetmeleri gerekir.

Tasarımla ilgili dikkat edilecek noktalar

Uygulamalarınıza yetkisiz erişim riskini azaltmaya yardımcı olmak için aşağıdaki noktaları tasarımınıza ekleyin.

  • OAuth 2.0, OpenID Bağlan, JSON web belirteçleri (JWTs) ve SAML (Güvenlik Onaylama İşaretleme Dili) gibi çeşitli kimlik doğrulama ve yetkilendirme standartları vardır. Uygulamanız için hangi kimlik doğrulama ve yetkilendirme standartlarının kullanılacağını belirleyin.

  • Platform ekibinden bir uygulama giriş bölgesi istediğinizde, aşağıdaki soruları sorarak uygun abonelikleri oluşturmalarına yardımcı olabilirsiniz:

    • Son kullanıcılar uygulamada nasıl kimlik doğrulaması yapacak ve uygulamaya nasıl erişecek?

    • Uygulamanın kullandığı kaynaklar ve hizmetler için kim rol tabanlı erişim denetimi (RBAC) izinlerine ihtiyaç duyar?

    • Mevcut yerleşik roller hem denetim düzlemi hem de veri düzlemi erişimi için RBAC erişim gereksinimlerini mi kapsıyor yoksa yeni özel roller oluşturmanız mı gerekiyor?

    • Platform ekibi, uygulamayla ilgili sorunlara neden olabilecek herhangi bir uyumluluk ilkesi uyguladı mı?

    • Hangi uygulama bileşenlerinin birbiriyle iletişim kurması gerekiyor?

    • Platform giriş bölgesinde dağıtılan Microsoft Entra Domain Services gibi paylaşılan kaynaklara erişmek için herhangi bir gereksinim var mı?

Azure Key Vault ve yönetilen kimlikler

  • Genel bulut kaynaklarının güvenlik ihlalleri genellikle koda veya başka bir metne eklenmiş sızdırılan kimlik bilgilerinden kaynaklanır. Programlı erişim uygulamak ve kimlik bilgisi hırsızlığı riskini azaltmaya yardımcı olmak için yönetilen kimlikleri ve Key Vault'ı kullanabilirsiniz.

  • Uygulamanız veya iş yükünüz kimlik bilgilerini güvenli bir şekilde depolamak için bir hizmet gerektiriyorsa, gizli dizileri, anahtarları ve sertifikaları yönetmek için Key Vault'ı kullanabilirsiniz.

  • Kodunuzda kimlik bilgilerinin olmasını önlemek için Azure VM'leri ile yönetilen kimlikleri kullanarak Microsoft Entra Id kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapabilirsiniz. Daha fazla bilgi için bkz . Erişim belirteci almak için VM'de Azure kaynakları için yönetilen kimlikleri kullanma.

  • Yönetilen kimlikler , uygulamaların ve kaynakların Microsoft Entra Id kimlik doğrulamasını destekleyen kaynaklara bağlanırken kullandığı otomatik olarak yönetilen bir kimlik sorumlusu sağlar. Uygulamalar, kimlik bilgilerini yönetmek zorunda kalmadan Microsoft Entra Id belirteçlerini almak için yönetilen kimlikleri kullanabilir.

    • Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlikleri kullanabilirsiniz.

    • Hizmet sorumlularının ve yönetilen kimliklerin Azure kaynaklarına nasıl erişeceklerini karıştırmak kolaydır. İkisi arasındaki farkı anlamak için bkz . Hizmet sorumlularını kaldırma: Yönetilen kimlikler.

    • Mümkün olduğunda, hizmet sorumlularını ve Microsoft Entra Id uygulama kayıtlarını kullanmak yerine kimlik doğrulamasını desteklemek için yönetilen kimlikleri kullanın. Hizmet sorumluları ve uygulama kayıtları oluşturmak için Uygulama Yönetici istrator veya Uygulama Geliştirici RBAC rollerine sahip olmanız gerekir. Bu ayrıcalıklı roller genellikle platform ekibine veya kimlik ekibine atanır. Platform ekibinin uygulama ekibiniz için hizmet sorumluları ve uygulama kayıtları oluşturma gereksinimini ortadan kaldırmak için yönetilen kimlikleri kullanın.

    • Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için yönetilen kimlikleri kullanabilirsiniz. Ancak, tüm hizmetler diğer hizmetlere erişmek için yönetilen kimlikleri desteklemez. Bazı hizmetler için kimlik bilgilerinin depolanması gerekebilir. Kimlik bilgilerini güvenli bir şekilde depolamalı, kimlik bilgilerini diğer hizmetlerle paylaşmaktan kaçınmalı ve en az ayrıcalık ilkesine uymanız gerekir. Daha fazla bilgi için bkz . Diğer hizmetlere erişmek için yönetilen kimlikleri kullanabilen Azure hizmetleri.

    • Microsoft Entra Id kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için Azure sanal makineleriyle (VM) yönetilen kimlikleri kullanabilirsiniz. Daha fazla bilgi için bkz . Erişim belirteci almak için VM'de Azure kaynakları için yönetilen kimlikleri kullanma.

    • Yönetilen kimliklere sahip kaynakları abonelikler ve bölgeler arasında taşımaya yönelik kısıtlamalar vardır. Örneğin, veri hakimiyeti nedeniyle kaynakların birleştirilmesi, alınması veya yeniden dağıtılması için kaynakları abonelikler veya bölgeler arasında taşıyabilirsiniz.

      Bir Azure kaynağında kullanıcı tarafından atanan veya sistem tarafından atanan kimlikler varsa, kaynağı başka bir Azure aboneliğine veya bölgesine aktaramazsınız. Kaynağı taşımadan önce yönetilen kimlikleri silmeniz gerekir. Taşıma işleminden sonra yönetilen kimlikleri yeniden oluşturmanız ve kaynağa atamanız gerekir. Daha fazla bilgi için bkz. Kaynakları yeni bir kaynak grubuna veya aboneliğe taşıma.

    • Aboneliği bir dizinden diğerine taşırsanız yönetilen kimlikler korunmaz. Kaynağı taşımanız ve ardından yönetilen kimlikleri el ile yeniden oluşturmanız gerekir.

    • Kullanıcı RBAC rol atamalarına benzer şekilde, bir kaynağa yönetilen kimlik erişimi sağlarken en az ayrıcalık ilkesini izleyin.

Dış kullanıcılar

Kaynaklara erişebilmeleri için dış kullanıcıları, müşterileri veya iş ortaklarını ayarlamayı içeren senaryoları değerlendirebilirsiniz. Bu senaryoların Microsoft Entra B2B mi yoksa Azure Active Directory B2C (Azure AD B2C) yapılandırmaları mı içerdiğini belirleyin. Daha fazla bilgi için bkz. Microsoft Entra Dış Kimlik genel bakış.

Tasarım önerileri

Uygulamalarınızın kimliğini ve erişim yönetimini tasarlarken aşağıdaki önerileri göz önünde bulundurun.

OpenID Connect

Uygulama ekibiniz uygulamaları program aracılığıyla dağıtmak için sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarını kullanıyorsa, Azure hizmetlerinizde OpenID Bağlan kimlik doğrulamasını yapılandırın. OpenID Bağlan, Azure hizmetlerinde kimlik doğrulaması yapmak için geçici, kimlik bilgisi olmayan bir belirteç kullanır. Daha fazla bilgi için bkz . İş yükü kimlik federasyonu.

OpenID Bağlan desteklenmiyorsa, bir hizmet sorumlusu oluşturun ve altyapı veya uygulama kodunun dağıtılması için gerekli izinleri atayın. Daha fazla bilgi için hizmet sorumlularını kullanarak Azure dağıtım işlem hattınızın kimliğini doğrulama eğitim modülüne bakın.

Öznitelik tabanlı erişim denetimi

Erişimi daha fazla kısıtlamak ve verilere yetkisiz erişimi önlemek için, öznitelik tabanlı erişim denetimini (ABAC) desteklenen yerlerde (örneğin, Azure Blob Depolama) kullanın.

Sanal makine erişimi

Mümkün olduğunda, Azure sanal makinelerine erişimi denetlemek için Microsoft Entra ID kimliklerini kullanın. Microsoft Entra Koşullu Erişim, denetim günlüğü ve Microsoft Entra çok faktörlü kimlik doğrulamasından (MFA) yararlanarak sanal makinelere erişim sağlamak için yerel kimlik doğrulaması yerine Microsoft Entra Kimliğini kullanın. Bu yapılandırma, saldırganların güvenli olmayan yerel kimlik doğrulama hizmetlerinden yararlanma riskini azaltır. Daha fazla bilgi için bkz . Microsoft Entra ID ve OpenSSH kullanarak Azure'da Linux sanal makinesinde oturum açma ve Parolasız dahil olmak üzere Microsoft Entra Id kullanarak Azure'da bir Windows sanal makinesinde oturum açma.

Microsoft kimlik platformu

  • Geliştiriciler buluta özel bir uygulama oluştururken, uygulamaları için kimlik sağlayıcısı olarak Geliştiriciler için Microsoft kimlik platformu kullanmalıdır. Microsoft kimlik platformu, geliştiricilerin aşağıdakiler gibi çeşitli kimlik türlerinin kimliğini doğrulamak için kullanabileceği standart uyumlu bir OpenID Bağlan kimlik doğrulama hizmeti sağlar:

    • Microsoft Entra Id aracılığıyla sağlanan iş veya okul hesapları

    • Kişisel Microsoft hesapları (Skype, Xbox, Outlook.com)

    • Microsoft Entra Id kullanarak sosyal veya yerel hesaplar

  • Microsoft kimlik platformu en iyi yöntemler ve öneriler denetim listesi, uygulamayı Microsoft kimlik platformu ile etkili bir şekilde tümleştirme konusunda rehberlik sağlar.

Yönetilen kimlikler

  • Kimlik bilgilerini kullanması gerekmeyen Azure kaynakları arasında erişimi etkinleştirmek için yönetilen kimlikleri kullanın.

  • Kimlik bilgilerini veya yönetilen kimlikleri çeşitli ortamlar veya uygulamalar arasında paylaşmamalısınız. Örneğin, aynı uygulama için bile üretim kaynakları ve geliştirme/test kaynakları için kimlik kullanmayın. Üretim verilerini etkileyen güvenliği aşılmış bir test örneği olasılığını azaltmak için uygulamanın her örneği için ayrı kimlik bilgileri oluşturun. Ayrı kimlik bilgileri, artık gerekli olmadığında kimlik bilgilerini iptal etmelerini de kolaylaştırır.

  • Yönetilen kimlikleri büyük ölçekte kullanma gereksinimi olduğunda, her bölgedeki her kaynak türü için kullanıcı tarafından atanan yönetilen kimliği kullanın. Bu yaklaşım kimlik değişim sıklığının önüne geçer. Örneğin, Azure İzleyici Aracısı izlenen Azure VM'lerinde yönetilen bir kimlik gerektirir ve bu da Microsoft Entra Id'nin çok sayıda kimlik oluşturmasına (ve silmesine) neden olabilir. Kullanıcı tarafından atanan yönetilen kimlikleri bir kez oluşturabilir ve bunları birden çok VM arasında paylaşabilirsiniz. Bu öneriyi uygulamak için Azure İlkesi kullanın.

Key Vault

  • Uygulamaların kullandığı gizli dizileri, anahtarları, sertifikaları yönetmek için Key Vault'ı kullanabilirsiniz.

  • Her bölgedeki her uygulama ortamı (geliştirme, üretim öncesi, üretim) için ayrı anahtar kasaları kullanmanız gerekir. RBAC kullanarak gizli dizilere, anahtarlara ve sertifikalara (veri düzlemi işlemleri) ve Key Vault'a (denetim düzlemi) erişimi yönetin. Uygulama gizli dizileri olan anahtar kasalarını uygulama giriş bölgelerine dağıtın.

Microsoft Entra uygulama ara sunucusu

  • Microsoft Entra Id aracılığıyla şirket içi kimlik doğrulamasını uzaktan kullanan uygulamalara erişmek için Microsoft Entra uygulama ara sunucusunu kullanın. Microsoft Entra uygulama ara sunucusu, eski kimlik doğrulama protokollerini kullanan uygulamalar da dahil olmak üzere şirket içi web uygulamalarına güvenli uzaktan erişim sağlar. Microsoft Entra Id'de çoklu oturum açma işleminden sonra kullanıcılar dış URL veya iç uygulama portalı aracılığıyla hem bulut uygulamalarına hem de şirket içi uygulamalara erişebilir.

    • Microsoft Entra uygulama proxy'sini bir Microsoft Entra Id kiracısına tek örnek olarak dağıtabilirsiniz. Yapılandırma için Uygulama Yönetici istrator veya Genel Yönetici istrator ayrıcalıklı Microsoft Entra Id rolleri gerekir. Kuruluşunuzda rol atama modeli olarak abonelik demokratikleştirme kullanılıyorsa, uygulama sahipleri Microsoft Entra uygulama ara sunucusunu yapılandırmak için gerekli izinlere sahip olmayabilir. Bu durumda platform ekibi, uygulama sahibi için Microsoft Entra uygulama ara sunucusunu yapılandırmalıdır.

    • Yeterli izinlere sahip CI/CD dağıtım işlem hatlarını kullanıyorsanız, uygulama sahipleri Microsoft Graph API'sini kullanarak Microsoft Entra uygulama ara sunucusunu yapılandırabilir.

  • Uygulama Kerberos gibi eski protokolleri kullanıyorsa, uygulama giriş bölgesinin Microsoft kimlik platformu aboneliğindeki etki alanı denetleyicilerine ağ bağlantısı olduğundan emin olun.

Sonraki adımlar