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.
Azure Service Bus, Service Bus varlıklarına (kuyruklar, konular, abonelikler veya filtreler) yönelik istekleri yetkilendirmek için Microsoft Entra Id kullanılmasını destekler. Microsoft Entra Id ile azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak bir güvenlik sorumlusuna izin vekleyebilirsiniz. Güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet ilkesi veya Azure kaynakları için yönetilen kimlik olabilir.
Microsoft Entra ID'yi Azure Service Bus ile kullanmanın temel avantajlarından biri, kimlik bilgilerinizi artık kodda depolamanıza gerek olmadığıdır. Bunun yerine, Microsoft kimlik platformundan bir OAuth 2.0 erişim belirteci isteyebilirsiniz. Kimlik doğrulaması başarılı olursa, Microsoft Entra Id uygulamaya bir erişim belirteci döndürür. Daha sonra uygulama, Service Bus kaynaklarına yönelik istekleri yetkilendirmek için erişim belirtecini kullanabilir.
Service Bus ad alanı için yerel veya paylaşılan erişim imzası (SAS) anahtarı kimlik doğrulamasını devre dışı bırakabilir ve yalnızca Microsoft Entra kimlik doğrulamasına izin vekleyebilirsiniz. Adım adım yönergeler için bkz . Yerel kimlik doğrulamasını devre dışı bırakma.
Genel bakış
Bir güvenlik sorumlusu (kullanıcı, grup veya uygulama) bir Service Bus varlığına erişmeye çalıştığında, isteğin yetkilendirilmiş olması gerekir. Microsoft Entra Id ile kaynağa erişim iki adımlı bir işlemdir:
- Güvenlik sorumlusunun kimliği doğrulanır ve bir OAuth 2.0 belirteci döndürülür. Token istemek için kullanılacak kaynak adı
https://servicebus.azure.net. - Jeton, belirtilen kaynağa erişim yetkisi sağlamak için Service Bus hizmetine yapılan bir isteğin parçası olarak geçirilir.
Kimlik doğrulama adımı, bir uygulama isteğinin çalışma zamanında bir OAuth 2.0 erişim belirteci içermesini gerektirir. Bir uygulama Azure sanal makinesi, sanal makine ölçek kümesi veya işlev uygulaması gibi bir Azure varlığı içinde çalışıyorsa, kaynaklara erişmek için yönetilen kimlik kullanabilir. Yönetilen kimliğin Service Bus hizmetinde yaptığı isteklerin kimliğini doğrulamayı öğrenmek için bkz. Azure Service Bus ile yönetilen kimlikleri kullanma.
Yetkilendirme adımı, güvenlik sorumlusuna bir veya daha fazla Azure rolü atamasını gerektirir. Service Bus, Service Bus kaynakları için izin kümelerini kapsayan Azure rolleri sağlar. Bir güvenlik sorumlusuna atanan roller, sorumlunun Service Bus kaynakları üzerinde sahip olduğu izinleri belirler. Service Bus'a Azure rolleri atama hakkında daha fazla bilgi edinmek için bkz. Azure Service Bus için Azure yerleşik rolleri.
Service Bus'a istekte bulunan yerel uygulamalar ve web uygulamaları da Microsoft Entra Id ile yetkilendirilebilir. Bu makalede, erişim belirteci isteme ve Service Bus kaynaklarına yönelik istekleri yetkilendirmek için bu belirteci kullanma işlemleri gösterilir.
Azure Service Bus için Azure yerleşik rolleri
Microsoft Entra, Azure RBAC aracılığıyla güvenli kaynaklara erişim haklarını yetkiler. Azure Service Bus, Service Bus varlıklarına erişmek için kullanılan yaygın izin kümelerini kapsayan bir dizi Azure yerleşik rolü tanımlar. Verilere erişmek için özel roller de tanımlayabilirsiniz.
Microsoft Entra güvenlik sorumlusuna bir Azure rolü atandığında, Azure bu güvenlik sorumlusu için bu kaynaklara erişim verir. Erişimin kapsamı abonelik, kaynak grubu, Service Bus ad alanı veya varlık (kuyruk, konu veya abonelik) düzeyinde olabilir. Microsoft Entra güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet sorumlusu veya Azure kaynakları için yönetilen kimlik olabilir.
Azure Service Bus için Azure RBAC modeli, Azure portalı ve Azure kaynak yönetimi API'sini kullanarak ad alanlarının ve tüm ilgili kaynakların yönetiminin korunmasına yardımcı olur. Azure, Service Bus ad alanına erişim yetkisi vermek için aşağıdaki yerleşik rolleri sağlar:
- Azure Service Bus Veri Sahibi: Service Bus kaynaklarına tam erişim vermek için bu rolü kullanın.
- Azure Service Bus Veri Göndereni: Service Bus ad alanına ve varlıklarına erişim göndermek için bu rolü kullanın.
- Azure Service Bus Veri Alıcısı: Service Bus ad alanına ve varlıklarına erişim vermek için bu rolü kullanın.
Kaynak kapsamı
Güvenlik sorumlusuna Azure rolü atamadan önce, güvenlik sorumlusunun sahip olması gereken erişim kapsamını belirleyin. En iyi yöntemler, yalnızca mümkün olan en dar kapsamı vermenin her zaman en iyi yöntem olduğunu belirler.
Aşağıdaki listede, en dar kapsamla başlayarak Service Bus kaynaklarına erişimi kapsam olarak kullanabileceğiniz düzeyler açıklanmaktadır:
Kuyruk, konu veya abonelik: Rol ataması belirli Service Bus varlığı için geçerlidir. Azure portalı şu anda abonelik düzeyinde Service Bus Azure rollerine kullanıcı, grup veya yönetilen kimlik atamayı desteklememektedir.
Service Bus ad alanı: Rol ataması, ad alanı altındaki Service Bus topolojisinin tamamına ve onunla ilişkilendirilmiş kuyruk veya konu aboneliğine yayılır.
Kaynak grubu: Rol ataması, kaynak grubu altındaki tüm Service Bus kaynaklarına uygulanır.
Azure aboneliği: Rol ataması, abonelikteki tüm kaynak gruplarındaki tüm Service Bus kaynakları için geçerlidir.
Azure rol atamalarının yayılması beş dakika kadar sürebilir.
Yerleşik rollerin nasıl tanımlandığı hakkında daha fazla bilgi için bkz. Azure rol tanımlarını anlama. Azure özel rolleri oluşturma hakkında bilgi için bkz . Azure özel rolleri.
Uygulamadan kimlik doğrulaması
Microsoft Entra ID'yi Service Bus ile kullanmanın temel avantajlarından biri, kimlik bilgilerinizin artık kodunuzda depolanması gerekmediğinden kaynaklanır. Bunun yerine, Microsoft kimlik platformundan bir OAuth 2.0 erişim belirteci isteyebilirsiniz.
Microsoft Entra, uygulamayı çalıştıran güvenlik sorumlusunun (kullanıcı, grup, hizmet sorumlusu veya Azure kaynakları için yönetilen kimlik) kimliğini doğrular. Kimlik doğrulaması başarılı olursa, Microsoft Entra Id uygulamaya erişim belirtecini döndürür. Uygulama daha sonra Service Bus'a yönelik istekleri yetkilendirmek için erişim belirtecini kullanabilir.
Aşağıdaki bölümlerde, yerel uygulamanızı veya web uygulamanızı Microsoft kimlik platformu 2.0 ile kimlik doğrulaması için yapılandırma adımları gösterilmektedir. Platform hakkında daha fazla bilgi için bkz. Microsoft kimlik platformu nedir?.
OAuth 2.0 kod verme akışına genel bakış için bkz. Microsoft kimlik platformu ve OAuth 2.0 yetkilendirme kodu akışı.
Uygulamanızı bir Microsoft Entra tenant ile kaydedin
Service Bus varlıklarını yetkilendirmek için Microsoft Entra Id kullanmanın ilk adımı, istemci uygulamanızı Azure portalından bir Microsoft Entra kiracısına kaydetmektir. İstemci uygulamanızı kaydettiğinizde, uygulama hakkındaki bilgileri Active Directory'ye sağlamanız gerekir. Microsoft Entra Id daha sonra uygulamanızı Microsoft Entra çalışma zamanıyla ilişkilendirmek için kullanabileceğiniz bir istemci kimliği (uygulama kimliği olarak da adlandırılır) sağlar. İstemci kimliği hakkında daha fazla bilgi edinmek için Microsoft Entra ID'de uygulama ve hizmet ilkesi nesnelerine bakın.
Uygulamanızı Microsoft Entra Id'ye kaydetmek için Microsoft Entra Id'ye uygulama kaydetme makalesindeki adımları izleyin.
Not
Uygulamanızı yerel uygulama olarak kaydederseniz, yeniden yönlendirme URI'si için geçerli bir URI belirtebilirsiniz. Yerel uygulamalar için bu değerin gerçek bir URL olması gerekmez. Web uygulamaları için, belirteçlerin sağlandığı URL'yi belirttiğinden yeniden yönlendirme URI'si geçerli bir URI olmalıdır.
Uygulamanızı kaydettikten sonra, Ayarlar altında Uygulama (istemci) Kimliği ve Dizin (kiracı) Kimliği görüntülenir. Bu değerleri not edin. Uygulamayı çalıştırmak için bunlara ihtiyacınız olacaktır.
İstemci sırrı oluşturma
Uygulamanın bir belirteç talep ederken kimliğini kanıtlayabilmesi için bir istemci sırrı gerekir. İstemci sırrını eklemek için şu adımları izleyin:
Henüz sayfada değilseniz Azure portalında uygulama kaydınıza gidin.
Soldaki menüde Sertifikalar ve gizli diziler seçin.
İstemci gizli anahtarlar altında, yeni bir anahtar oluşturmak için Yeni istemci gizli anahtar seçeneğini seçin.
Gizli bilgi için bir açıklama girin, son tarih aralığını seçin ve ardından Ekle'yi seçin.
Yeni gizli anahtarın değerini hemen güvenli bir konuma kopyalayın. Tam değer yalnızca bir kez görünür.
Service Bus API'sine izin ekleme
Uygulamanız bir konsol uygulamasıysa, yerel bir uygulamayı kaydetmeniz ve gerekli izinler kümesine api Microsoft.ServiceBus izinleri eklemeniz gerekir.
Yerel uygulamalar, tanımlayıcı işlevi görecek Microsoft Entra Id'de bir yeniden yönlendirme URI'sine de ihtiyaç duyar. URI'nin bir ağ hedefi olması gerekmez. Örnek kod zaten bu URI'yi kullandığından bu örnek için kullanın https://servicebus.microsoft.com .
Azure portal aracılığıyla Azure rollerinin atanma
Service Bus rollerinden birini uygulamanın hizmet sorumlusuna istenen kapsamda (varlık, Service Bus ad alanı, kaynak grubu veya Azure aboneliği) atayın. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.
Rolü ve kapsamını tanımladıktan sonra bu davranışı GitHub'da örnekle test edebilirsiniz.
Service Bus istemcisinin kimlik doğrulaması
Uygulamanızı kaydettikten ve Azure Service Bus'ta veri gönderme/alma izinleri verdikten sonra istemci gizli anahtarı kimlik bilgileriyle istemcinizin kimliğini doğrulayabilirsiniz. Bu kimlik doğrulaması, Azure Service Bus'a yönelik isteklerde bulunmanızı sağlar.
Belirteç alma işleminin desteklendiği senaryoların listesi için .NET GitHub deposu için Microsoft Kimlik Doğrulama Kitaplığı'nın (MSAL)Senaryolar bölümüne bakın.
En son Azure.Messaging.ServiceBus kitaplığını kullanarak, ServiceBusClient'ın kimliğini Azure.Identity kitaplığında tanımlanan ClientSecretCredential ile doğrulayabilirsiniz.
TokenCredential credential = new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>");
var client = new ServiceBusClient("<fully_qualified_namespace>", credential);
Eski .NET paketlerini kullanıyorsanız GitHub'da Service Bus için Azure RBAC örneklerine bakın.
İlgili içerik
Azure RBAC hakkında daha fazla bilgi edinmek için bkz . Azure rol tabanlı erişim denetimi (Azure RBAC) nedir?.
Azure PowerShell, Azure CLI veya REST API kullanarak Azure rol atamalarını atamayı ve yönetmeyi öğrenmek için şu makalelere bakın:
Service Bus mesajlaşması hakkında daha fazla bilgi edinmek için şu makalelere bakın: