Aracılığıyla paylaş


Azure hizmetleri için parolasız bağlantılar

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 dizilerle ilgili güvenlik sorunları

Parolalar ve gizli anahtarlar dikkatli kullanılmalı ve geliştiriciler bunları asla güvenli olmayan bir yere koymamalıdır. 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ğinde, bir depolama hesabı anahtarı kullanarak Azure Depolama'ya nasıl bağlanılacağı gösterilmektedir. 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 yüklemek için genellikle bir kasa kullanırlar ve parola döndürme gereksinimleri ve yordamları 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 içerme" 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üvence altına alınması 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, bu görevler Azure tarafından dahili olarak güvenli bir şekilde işlendiğinden, yönetilen kimlikler için birçok farklı gizli diziyi el ile izlemeniz ve yönetmeniz gerekmez.

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 Spring Apps, Azure Uygulaması 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 doldurur.

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 bir Azure kimlik doğrulama eklentisine kimlik doğrulaması temsilcisi seçme yönergesi taşır, ancak herhangi bir 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 de benzer bir kapsam yakında açılacaktır.


DefaultAzureCredential ile tanışın

Microsoft Entra Kimliği 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 çalışma zamanında hangilerinin 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 aranma DefaultAzureCredential sırası 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.

Uyarı

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 bulabilirsiniz.

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çileceği daha ayrıntılı olarak açıklanmaktadır. Bir .NET uygulaması, bir hizmet istemci sınıfının oluşturucusuna bir örneğini DefaultAzureCredential 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 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.