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.
Uyarı
Parolasız bağlantılar, birden çok Azure hizmetini kapsayan, dilden bağımsız bir özelliktir. Mevcut belgeler birkaç dil ve hizmete odaklansa da, şu anda diğer diller ve hizmetler için ek belgeler oluşturma sürecindeyiz.
Bu makalede parolalarla ilgili güvenlik sorunları açıklanır ve Azure hizmetleri için parolasız bağlantılar tanıtılır.
Parolalar ve gizli bilgilerle ilgili güvenlik zorlukları
Parolaları ve gizli anahtarları kullanırken dikkatli olun. Onları asla güvenli olmayan bir yere yerleştirmeyin. Birçok uygulama kullanıcı adları, parolalar ve erişim anahtarları kullanarak arka uç veritabanına, önbellek, mesajlaşma ve olay hizmetlerine bağlanır. Kötü aktörler kullanıma sunulursa, yaklaşan bir kampanya için oluşturduğunuz satış kataloğu veya özel olması gereken müşteri verileri gibi hassas bilgilere yetkisiz erişim elde etmek için bu kimlik bilgilerini kullanabilir.
Parolaların bir uygulamaya eklenmesi, kod deposu aracılığıyla bulma da dahil olmak üzere birçok nedenden dolayı büyük bir güvenlik riski oluşturur. Birçok geliştirici, uygulamaların bunları farklı ortamlardan yükleyebilmesi için ortam değişkenlerini kullanarak bu tür parolaları dışlar. Ancak bu yaklaşım, riski yalnızca kodun kendisinden yürütme ortamına geçirir. Ortama erişim elde eden herkes parolaları çalabilir ve bu da veri sızdırma riskinizi artırır.
Aşağıdaki kod örneği, depolama hesabı anahtarı kullanarak Azure Depolama bağlanmayı gösterir. Birçok geliştirici, ideal bir çözüm olmasa da geçmişte çalıştıkları seçeneklere tanıdık geldiği için bu çözüme yöneliyor. Uygulamanız şu anda erişim anahtarları kullanıyorsa, parolasız bağlantılara geçmeyi göz önünde bulundurun.
// Connection using secret access keys
BlobServiceClient blobServiceClient = new(
new Uri("https://<storage-account-name>.blob.core.windows.net"),
new StorageSharedKeyCredential("<storage-account-name>", "<your-access-key>"));
Geliştiriciler, bu tür anahtarları veya gizli dizileri güvenli olmayan bir konumda hiçbir zaman açığa çıkarmamak için gayretli olmalıdır. Birçok şirketin, parolaları geliştiricilere, operatörlere veya başka kimseye göstermeden Azure hizmetlerine bağlanmak için katı güvenlik gereksinimleri vardır. Parolaları depolamak ve uygulamalara aktarmak için genellikle bir parola kasası kullanırlar; ayrıca, parolaların düzenli olarak değiştirilmesine yönelik gereksinimler ve prosedürler ekleyerek riski daha da azaltırlar. Bu yaklaşım, sırayla, operasyonel karmaşıklığı artırır ve zaman zaman uygulama bağlantı kesintilerine yol açar.
Parolasız bağlantılar ve Sıfır Güven
Artık parolaları döndürmeye gerek kalmadan Azure tabanlı hizmetlere bağlanmak için uygulamalarınızda parolasız bağlantılar kullanabilirsiniz. Bazı durumlarda, ihtiyacınız olan tek şey yapılandırmadır, yeni kod gerekmez. Sıfır Güven, "asla güvenme, her zaman doğrula ve kimlik bilgisi gerektirmeyen" ilkesine dayanır. Bu ilke, yalnızca kimlik doğrulamasından sonra ve arka uç hizmetlerine erişim izni vermeden önce makinelere veya kullanıcılara güvenerek tüm iletişimlerin güvenliğini sağlama anlamına gelir.
Güvenli, parolasız bağlantılar için önerilen kimlik doğrulama seçeneği, yönetilen kimlikleri ve Azure rol tabanlı erişim denetimini (RBAC) birlikte kullanmaktır. Bu yaklaşımı kullanarak, yönetilen kimlikler için birçok farklı gizli anahtarı manuel olarak takip etmeniz ve yönetmeniz gerekmez; çünkü Azure bu işlemleri arka planda güvenli bir şekilde gerçekleştirir.
Hizmet Bağlayıcısı'nı kullanarak Azure hizmetlerine parolasız bağlantılar yapılandırabilir veya bunları el ile yapılandırabilirsiniz. Hizmet Bağlayıcısı, Azure App Service ve Azure Container Apps gibi uygulama barındırma hizmetlerinde yönetilen kimlikleri etkinleştirir. Service Connector ayrıca yönetilen kimlikleri ve Azure RBAC kullanarak arka uç hizmetlerini parolasız bağlantılarla yapılandırır ve uygulamaları gerekli bağlantı bilgileriyle nemlendirir.
Parolasız bağlantılar için yapılandırılmış bir uygulamanın çalışma ortamını incelerseniz, tam bağlantı dizesini görebilirsiniz. Bağlantı dizesi; örneğin bir veritabanı sunucusu adresi, bir veritabanı adı ve kimlik doğrulamayı bir Azure kimlik doğrulama eklentisine devretmeye yönelik bir yönerge içerir, ancak herhangi bir parola veya gizli bilgi içermez.
Aşağıdaki videoda, örnek olarak Java uygulamaları kullanılarak uygulamalardan Azure hizmetlerine parolasız bağlantılar gösterilmektedir. Diğer diller için de benzer bir kapsam yakında açılacaktır.
DefaultAzureCredential ile tanışın
Microsoft Entra ID ve Rol Tabanlı Erişim denetimi (RBAC) aracılığıyla Azure hizmetlere parolasız bağlantılar uygulamak için Azure Kimlik istemci kitaplıklarından kullanabilirsinizDefaultAzureCredential.
Önemli
Bazı diller, kodunuzda DefaultAzureCredential öğesini açıkça uygulamanızı gerektirirken, bazıları ise altta yatan eklentiler veya sürücüler aracılığıyla DefaultAzureCredential öğesini dahili olarak kullanır.
DefaultAzureCredential birden çok kimlik doğrulama yöntemini destekler ve çalışma zamanında hangi yöntemin kullanılacağını otomatik olarak belirler. Bu yaklaşım, uygulamanızın ortama özgü kod uygulamadan farklı ortamlarda (yerel geliştirme ve üretim) farklı kimlik doğrulama yöntemleri kullanmasını sağlar.
Kimlik bilgilerinin arandığı DefaultAzureCredential sıra ve konumlar diller arasında farklılık gösterir:
Örneğin, .NET yerel olarak çalışırken, genellikle Visual Studio, DefaultAzureCredential Azure CLI veya Azure PowerShell oturum açmak için kullandığınız hesabı kullanarak kimlik doğrulaması yapar. Uygulamayı Azure dağıttığınızda, DefaultAzureCredential Azure App Service gibi ilişkili barındırma hizmetinin yönetilen kimliğini otomatik olarak bulur ve kullanır. Bu geçiş için kod değişikliği yapmanız gerekmez.
Uyarı
Yönetilen kimlik, bir uygulamayı veya hizmeti temsil eden bir güvenlik kimliği sağlar. Azure platformu kimliği yönetir ve gizli bilgileri oluşturmanız veya döndürmeniz gerekmez. Daha fazla bilgi edinmek için genel bakış belgelerine bakın.
Aşağıdaki kod örneği, parolasız bağlantılar kullanarak Service Bus bağlanmayı gösterir. Diğer belgelerde, belirli bir hizmet için bu kuruluma nasıl geçileceği daha ayrıntılı olarak açıklanmaktadır. Bir .NET uygulaması, bir hizmet istemcisi sınıfının oluşturucusuna bir DefaultAzureCredential örneği geçirebilir.
DefaultAzureCredential bu ortamda kullanılabilen kimlik bilgilerini otomatik olarak bulur.
ServiceBusClient serviceBusClient = new(
new Uri("https://<your-service-bus-namespace>.servicebus.windows.net"),
new DefaultAzureCredential());
Ayrıca bakınız
Parolasız bağlantıların daha ayrıntılı bir açıklaması için Birden çok Azure uygulaması ve hizmeti arasında parolasız bağlantıları yapılandırma geliştirici kılavuzuna bakın.