Azure hizmetleri için parolasız bağlantılar
Dekont
Parolasız bağlantılar, birden çok Azure hizmetini kapsayan dilden bağımsız bir özelliktir. Geçerli belgeler birkaç dile ve hizmete odaklansa da, şu anda diğer diller ve hizmetler için ek belgeler oluşturma aşamasındayız.
Bu makalede parolalarla ilgili güvenlik zorlukları açıklanır ve Azure hizmetleri için parolasız bağlantılar tanıtılmaktadır.
Parolalar ve gizli dizilerle ilgili güvenlik zorlukları
Parolalar ve gizli anahtarlar dikkatli kullanılmalı ve geliştiriciler bunları asla güvenli olmayan bir konuma yerleştirmemelidir. 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. Bu kimlik bilgileri 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 kullanılabilir.
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, 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'a bağlanmayı gösterir. Birçok geliştirici, ideal bir çözüm olmasa da geçmişte üzerinde çalıştıkları seçeneklere aşina olduğu için bu çözüme yönelir. Uygulamanız şu anda erişim anahtarları kullanıyorsa parolasız bağlantılara geçiş yapmayı 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 asla kullanıma sunmamak için dikkatli olmalıdır. Birçok şirketin, parolaları geliştiricilere, operatörlere veya başka birine göstermeden Azure hizmetlerine bağlanmak için katı güvenlik gereksinimleri vardır. Genellikle parolaları depolamak ve uygulamalara yüklemek için kasa kullanır ve parola döndürme gereksinimleri ve yordamları ekleyerek riski daha da azaltır. Bu yaklaşım da operasyonel karmaşıklığı artırır ve bazen uygulama bağlantısı 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 tek ihtiyacınız olan yapılandırmadır; yeni kod gerekmez. Sıfır Güven "asla güvenme, her zaman doğrulama ve kimlik bilgisi içermeyen" ilkesini kullanır. Bu, yalnızca kimliği doğruladıktan 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ğlamak 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şımla, yönetilen kimlikler için birçok farklı gizli diziyi el ile izlemeniz ve yönetmeniz gerekmez çünkü bu görevler Azure tarafından dahili olarak güvenli bir şekilde işlenir.
Hizmet Bağlan kullanarak Azure hizmetlerine parolasız bağlantılar yapılandırabilir veya bunları el ile yapılandırabilirsiniz. Hizmet Bağlan veya Azure Spring Apps, Azure Uygulaması Service ve Azure Container Apps gibi uygulama barındırma hizmetlerinde yönetilen kimlikleri etkinleştirir. Service Bağlan or ayrıca yönetilen kimlikleri ve Azure RBAC'yi kullanarak parolasız bağlantılarla arka uç hizmetlerini yapılandırır ve gerekli bağlantı bilgileriyle uygulamaları nemlendirir.
Parolasız bağlantılar için yapılandırılmış bir uygulamanın çalışma ortamını incelerseniz tam bağlantı dizesi görebilirsiniz. bağlantı dizesi bir veritabanı sunucusu adresi, veritabanı adı ve Azure kimlik doğrulama eklentisine kimlik doğrulaması devretme yönergesi taşır, ancak parola veya gizli dizi 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 benzer kapsam yakında sunulacaktır.
DefaultAzureCredential ile tanışın
Microsoft Entra Id ve Rol Tabanlı Erişim denetimi (RBAC) aracılığıyla Azure hizmetlerine parolasız bağlantılar, Azure Identity istemci kitaplıklarından kullanılarak DefaultAzureCredential
uygulanabilir.
Önemli
Bazı dillerin kodlarında açıkça uygulanması DefaultAzureCredential
gerekirken, bazıları ise temel eklentiler veya sürücüler aracılığıyla dahili olarak kullanılır DefaultAzureCredential
.
DefaultAzureCredential
birden çok kimlik doğrulama yöntemini destekler ve hangilerinin çalışma zamanında kullanılması gerektiğini 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 ile yerel olarak çalışırken genellikle geliştiricinin Visual Studio, DefaultAzureCredential
Azure CLI veya Azure PowerShell'de oturum açmak için kullandığı hesabı kullanarak kimlik doğrulaması yapar. Uygulama Azure'a dağıtıldığında, DefaultAzureCredential
Azure Uygulaması Hizmeti 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 gerekmez.
Dekont
Yönetilen kimlik, bir uygulamayı veya hizmeti temsil eden bir güvenlik kimliği sağlar. Kimlik Azure platformu tarafından yönetilir ve gizli dizileri sağlamanızı veya döndürmenizi gerektirmez. Yönetilen kimlikler hakkında daha fazla bilgiyi genel bakış belgelerinde okuyabilirsiniz.
Aşağıdaki kod örneğinde parolasız bağlantılar kullanarak Service Bus'a nasıl bağlandığınız gösterilmektedir. Diğer belgelerde, belirli bir hizmet için bu kuruluma nasıl geçiş yapılacağını daha ayrıntılı olarak açıklanmaktadır. .NET uygulaması bir örneğini DefaultAzureCredential
bir hizmet istemci sınıfının oluşturucusuna geçirebilir. DefaultAzureCredential
, bu ortamda kullanılabilen kimlik bilgilerini otomatik olarak bulur.
ServiceBusClient serviceBusClient = new(
new Uri("https://<your-service-bus-namespace>.blob.core.windows.net"),
new DefaultAzureCredential());
Ayrıca bkz.
Parolasız bağlantıların daha ayrıntılı 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.