Azure Service Bus ile yerel veya paylaşılan erişim anahtarı kimlik doğrulamayı devre dışı bırakma

Azure Service Bus kaynaklarında kimlik doğrulaması yapmak için iki yöntem kullanabilirsiniz:

  • Microsoft Entra Kimlik
  • Paylaşılan Erişim İmzaları (SAS)

Microsoft Entra ID, paylaşılan erişim imzaları (SAS) üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Microsoft Entra Id kullanarak kodunuzda belirteçleri depolamanız gerekmez ve bu da olası güvenlik açıklarını azaltır. Mümkün olduğunda Azure Service Bus uygulamalarınızla Microsoft Entra Id kullanın.

Bu makalede SAS anahtarı kimlik doğrulamasını (veya yerel kimlik doğrulamasını) devre dışı bırakma ve kimlik doğrulaması için yalnızca Microsoft Entra Id kullanma açıklanmaktadır.

Yerel kimlik doğrulama neden devre dışı bırakılasın?

Yerel (SAS anahtarı) kimlik doğrulamasını devre dışı bırakmak, Service Bus ad alanınızın güvenliğini çeşitli yollarla güçlendirir:

  • Statik kimlik bilgilerini ortadan kaldırır. SAS anahtarları, uzun ömürlü paylaşılan gizli bilgilerdir. Anahtar sızıntısı olursa, siz anahtarı el ile döndürene kadar bu anahtara sahip olan herkes ad alanınıza erişebilir. Microsoft Entra Id, otomatik olarak yenilenen kısa süreli belirteçler kullanır.
  • Ayrıntılı erişim denetimini etkinleştirir. SAS ilkeleri, ad alanı veya varlık düzeyinde geniş haklar (Gönder, Dinle, Yönet) verir. Microsoft Entra rol tabanlı erişim denetimi (RBAC), tek tek kullanıcılara, gruplara, Azure Service Bus Data Senderhizmet sorumlularına veya yönetilen kimliklere belirli rolleri (Azure Service Bus Data Receiver, , Azure Service Bus Data Owner) atamanızı sağlar.
  • Bir denetim izi sağlar. Microsoft Entra kimlik doğrulama olayları Microsoft Entra oturum açma günlüklerinde görünür. SAS anahtarı kullanımı, benzer kimlik düzeyi denetim kayıtları oluşturmaz.
  • Koşullu erişimi destekler. Microsoft Entra Id kullanarak, çok faktörlü kimlik doğrulaması, güvenilir cihaz gereksinimleri ve konum kısıtlamaları gibi ilkeleri zorunlu kılabilirsiniz. Bunların hiçbiri SAS anahtarları kullanılarak kullanılamaz.

Tip

Yerel kimlik doğrulamasını devre dışı bırakmadan önce, Microsoft Entra Id kullanarak tüm uygulamaları kimlik doğrulaması için güncelleştirin. Bu makalenin devamındaki geçiş adımları bölümüne bakın.

Yerel kimlik doğrulamasını devre dışı bırakmak için portalı kullanma

Bu bölümde, yerel kimlik doğrulamasını devre dışı bırakmak için Azure portalını kullanmayı öğreneceksiniz.

  1. Azure portalında Service Bus ad alanınıza gidin.

  2. Genel Bakış sayfasının Temel Parçalar bölümünde Yerel Kimlik Doğrulaması için Etkinleştirildi'yi seçin.

    Yerel Kimlik Doğrulaması Etkin olarak ayarlanmış bir Service Bus ad alanının Genel Bakış sayfasını gösteren ekran görüntüsü.

  3. Yerel Kimlik Doğrulaması sayfasında Devre Dışı'yı ve ardından Tamam'ı seçin.

    Yerel Kimlik Doğrulaması sayfasındaki Devre Dışı seçeneğini gösteren ekran görüntüsü.

Yerel kimlik doğrulamasını devre dışı bırakmak için şablon kullanma

Aşağıdaki şablonlarda gösterildiği gibi disableLocalAuth özelliğini true olarak ayarlayarak Service Bus ad alanı için yerel kimlik doğrulamayı devre dışı bırakabilirsiniz.

@description('Name of the Service Bus namespace')
param namespaceName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: namespaceName
  location: location
  sku: {
    name: 'Standard'
    tier: 'Standard'
  }
  properties: {
    disableLocalAuth: true
  }
}

Yerel kimlik doğrulamasını devre dışı bırakmak için Azure CLI veya PowerShell kullanma

Ayrıca, mevcut bir ad alanı için komut satırı araçlarını kullanarak yerel kimlik doğrulamasını devre dışı bırakabilirsiniz.

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth true

Yerel kimlik doğrulamasını yeniden etkinleştirmek için:

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth false

Özelliğini denetleyerek disableLocalAuth geçerli durumu doğrulayabilirsiniz:

az servicebus namespace show \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --query disableLocalAuth

Azure İlkesi ile uygulama

Kiracı genelinde veya abonelik genelinde uygulama için yerleşik Azure İlkesi Service Bus ad alanlarının yerel kimlik doğrulama yöntemlerinin devre dışı bırakılması sağlanmalıdır (ilke kimliği: cfb11c26-f069-4c14-8e36-56c394dae5af).

Bu ilke, Service Bus ad alanlarını değerlendirir ve disableLocalAuth ayarlanmış veya ayarlanmamış olan tüm ad alanlarını false olarak işaretler. Bunu yönetim grubu, abonelik veya kaynak grubu düzeyinde atayabilirsiniz.

İlke etkileri

İlkeyi atadığınızda, zorlama gereksinimlerinizle eşleşen bir efekt seçin:

Etki Davranış
Denetim (varsayılan) Yerel kimlik doğrulaması etkinleştirilmiş mevcut ad alanları uyumluluk panosunda uyumsuz olarak görünür. Yeni ad alanlarına hala izin verilir.
Reddet Yerel kimlik doğrulaması etkinleştirilmiş herhangi bir ad alanının oluşturulmasını veya güncelleştirilmesini engeller. Yeni kaynaklar için uyumluluğu zorunlu kılmak için bu etkiyi kullanın.

İlkeyi uygula

  1. Azure portalındaPolitika>Tanımlarına gidin.
  2. Service Bus ad alanlarının aramalarında yerel kimlik doğrulama yöntemleri devre dışı bırakılmalıdır.
  3. İlke tanımını seçin, ardından Ata'yı seçin.
  4. Kapsamı (yönetim grubu, abonelik veya kaynak grubu) seçin.
  5. Parametreler sekmesinde, istediğiniz efekti seçin (Denetim veya Reddetme).
  6. Gözden geçir + oluştur'u ve ardından Oluştur'u seçin.

Atamadan sonra, uyumlu olmayan ad alanları Politika>Uyumluluk bölümünde görünür. Güncelleştirilmesi gereken ad alanları için bir düzeltme görevi oluşturabilirsiniz.

Yerel kimlik doğrulamasını devre dışı bırakmak için Azure ilkesinin ekran görüntüsü.

SAS'den Microsoft Entra Id'ye geçiş

Yerel kimlik doğrulamasını devre dışı bırakmadan önce Service Bus ad alanınıza bağlanan tüm uygulamaları bağlantı dizeleri veya SAS belirteçleri yerine Microsoft Entra Id kullanacak şekilde güncelleştirin. Aşağıdaki adımları izleyin:

1. Adım: RBAC rolleri atama

Erişim gerektiren her kimliğe (kullanıcı, hizmet sorumlusu veya yönetilen kimlik) uygun Azure Service Bus veri rolünü atayın:

Rol İzin
Azure Service Bus Data Sender Kuyruklara ve konulara ileti gönderme
Azure Service Bus Data Receiver Kuyruklardan ve aboneliklerden ileti alma
Azure Service Bus Data Owner Tam erişim (varlıkları gönderme, alma, yönetme)

Rolleri Azure portalı, Azure CLI veya Azure PowerShell aracılığıyla atayabilirsiniz. Ayrıntılı yönergeler için bkz. Azure portalını kullanarak Azure rolleri atama.

2. Adım: Uygulama kodunu güncelleştirme

Bağlantı dizesi tabanlı kimlik doğrulamasını Azure Identity kütüphanesinden DefaultAzureCredential (veya başka bir Microsoft Entra kimlik bilgisi) ile değiştirin. Aşağıdaki örneklerde her dil için değişiklik gösterilmektedir:

// Before (connection string):
await using ServiceBusClient client = new("<connection-string>");

// After (Microsoft Entra ID):
await using ServiceBusClient client = new(
    "<your-namespace>.servicebus.windows.net",
    new DefaultAzureCredential());

Her SDK hakkında daha fazla ayrıntı için bkz:

3. Adım: Her iki kimlik doğrulama yönteminin de etkin olduğu test

Yerel kimlik doğrulaması hala etkinken güncelleştirilmiş uygulamanızı dağıtın. Aşağıdakileri doğrulayın:

  • İletileri başarıyla gönderip alırsınız.
  • Uygulama günlükleri Microsoft Entra jeton alımını (SAS değil) gösterir.
  • Kimlik doğrulamasıyla ilgili hiçbir hata görünmüyor.

4. Adım: Yerel kimlik doğrulamayı devre dışı bırakma

Tüm uygulamaların Microsoft Entra Id ile çalıştığını onayladıktan sonra, bu makalenin önceki bölümlerinde açıklanan yöntemlerden herhangi birini (portal, CLI, PowerShell veya şablon) kullanarak yerel kimlik doğrulamasını devre dışı bırakın.

5. Adım: SAS ilkelerini temizleme (isteğe bağlı)

Yerel kimlik doğrulamasını devre dışı bırakdıktan sonra, ad alanında var olan SAS ilkeleri kalır ancak işlevsel belirteçler oluşturmak için kullanılamaz. Bunları yerinde bırakabilir veya daha temiz bir yapılandırma için kaldırabilirsiniz. Kullanılmayan ilkelerin kaldırılması, birisi yanlışlıkla yerel kimlik doğrulamasını yeniden etkinleştirirse saldırı yüzeyini azaltır.

Microsoft Entra Id ve SAS kimlik doğrulaması hakkında bilgi edinmek için aşağıdaki makalelere bakın: