Azure Service Bus varlıklarına erişmek için Azure Active Directory ile bir uygulamanın kimliğini doğrulama ve yetkilendirme
azure Service Bus, isteklere Service Bus varlıklara (kuyruklar, konular, abonelikler veya filtreler) yetki vermek için Azure Active Directory (Azure AD) kullanılmasını destekler. Azure AD ile, bir Kullanıcı, Grup veya uygulama hizmeti sorumlusu olabilecek bir güvenlik sorumlusu için izinler vermek üzere Azure rol tabanlı erişim denetimi 'ni (Azure RBAC) kullanabilirsiniz. Roller ve rol atamaları hakkında daha fazla bilgi edinmek için bkz. farklı rolleri anlama.
Genel Bakış
bir güvenlik sorumlusu (kullanıcı, grup veya uygulama) bir Service Bus varlığına erişmeyi denediğinde, isteğin yetkilendirilmiş olması gerekir. Azure AD ile bir kaynağa erişim iki adımlı bir işlemdir.
- İlk olarak, güvenlik sorumlusunun kimliği doğrulanır ve bir OAuth 2,0 belirteci döndürülür. Belirteç istemek için kaynak adı
https://servicebus.azure.net. - ardından, belirteç, belirtilen kaynağa erişim yetkisi vermek için Service Bus hizmetine bir isteğin bir 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çermesi gerekir. Bir uygulama bir Azure VM 'si, bir sanal makine ölçek kümesi veya bir Azure Işlev uygulaması gibi bir Azure varlığı içinde çalışıyorsa, kaynaklara erişmek için yönetilen bir kimlik kullanabilir. yönetilen bir kimlik tarafından Service Bus hizmetine yapılan isteklerin nasıl doğrulanabilmesi hakkında bilgi edinmek için bkz. azure kaynakları için Azure Active Directory ve yönetilen kimlikler ile azure Service Bus kaynaklarına erişim kimlik doğrulaması.
Yetkilendirme adımı, güvenlik sorumlusuna bir veya daha fazla Azure rolünün atanmasını gerektirir. azure Service Bus, Service Bus kaynakları için izin kümelerini çevreleyen azure rolleri sağlar. Bir güvenlik sorumlusu 'na atanan roller, sorumlunun sahip olacağı izinleri belirleyebilir. azure rollerini azure Service Bus atama hakkında daha fazla bilgi için bkz. azure için azure yerleşik rolleri Service Bus.
Service Bus istek yapan yerel uygulamalar ve web uygulamaları Azure AD ile de yetki verebilir. bu makalede, bir erişim belirtecinin nasıl isteneceğini ve Service Bus kaynakları için istekleri yetkilendirmek üzere nasıl kullanılacağı gösterilmektedir.
Erişim hakları için Azure rolleri atama
Azure Active Directory (azure AD), azure RBACaracılığıyla güvenli kaynaklara erişim hakları verir. azure Service Bus, Service Bus varlıklara erişmek için kullanılan ortak izin kümelerini çevreleyen azure yerleşik rollerinin bir kümesini tanımlar ve verilere erişmek için özel roller de tanımlayabilir.
Azure AD güvenlik sorumlusuna bir Azure rolü atandığında Azure, bu güvenlik sorumlusu için bu kaynaklara erişim izni verir. erişim, abonelik düzeyi, kaynak grubu veya Service Bus ad alanı kapsamına eklenebilir. Azure AD güvenlik sorumlusu, bir Kullanıcı, Grup, uygulama hizmeti sorumlusu veya Azure kaynakları için yönetilen bir kimlikolabilir.
Azure Service Bus için Azure yerleşik rolleri
azure Service Bus için ad alanlarını ve tüm ilgili kaynakları Azure portal ve azure kaynak yönetimi apı 'si aracılığıyla azure RBAC modeli kullanılarak zaten korunuyor. azure, bir Service Bus ad alanına erişim yetkilendirmek için aşağıdaki azure yerleşik rollerini sağlar:
- Azure Service Bus veri sahibi: Service Bus ad alanına ve varlıklarına veri erişimi sağlar (kuyruklar, konular, abonelikler ve filtreler)
- Azure Service Bus veri gönderici: Service Bus ad alanına ve varlıklarına gönderme erişimi sağlamak için bu rolü kullanın.
- Azure Service Bus veri alıcısı: Service Bus ad alanına ve varlıklarına erişim sağlamak için bu rolü kullanın.
Kaynak kapsamı
Güvenlik sorumlusuna bir Azure rolü atamadan önce, güvenlik sorumlusunun sahip olması gereken erişimin kapsamını saptayın. En iyi uygulamalar, yalnızca en dar olası kapsamı sağlamak için her zaman en iyi seçenektir.
aşağıdaki listede, en dar kapsamdan başlayarak Service Bus kaynaklarına erişimi kapsamındaki düzeyler açıklanmaktadır:
- kuyruk, konu veya abonelik: rol ataması, belirli Service Bus varlığı için geçerlidir. şu anda Azure portal, kullanıcı/grup/yönetilen kimliklerin abonelik düzeyinde Service Bus Azure rollerine atanmasını desteklemez.
- Service Bus ad alanı: rol ataması, ad alanı altındaki tüm Service Bus topolojisini ve onunla ilişkili tüketici grubunu kapsar.
- kaynak grubu: rol atama, kaynak grubu altındaki tüm Service Bus kaynaklarına uygulanır.
- abonelik: rol ataması, abonelikteki tüm kaynak gruplarındaki tüm Service Bus kaynaklara uygulanır.
Not
Azure rol atamalarının yaymanın beş dakika sürebileceğini aklınızda bulundurun.
Yerleşik rollerin nasıl tanımlandığı hakkında daha fazla bilgi için bkz. rol tanımlarını anlama. Azure özel rolleri oluşturma hakkında daha fazla bilgi için bkz. Azure özel roller.
Azure portal kullanarak Azure rolleri atama
Service Bus rollerinden birini, istenen kapsamdaki uygulamanın hizmet sorumlusuna (Service Bus ad alanı, kaynak grubu, abonelik) 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 örneklerletest edebilirsiniz.
Uygulamadan kimlik doğrulaması yapma
Azure AD 'yi Service Bus kullanmanın önemli bir avantajı, kimlik bilgilerinizin artık kodunuzda depolanmasına gerek kalmaz. bunun yerine, Microsoft kimlik platformu bir OAuth 2,0 erişim belirteci isteyebilirsiniz. Azure AD, uygulamayı çalıştıran güvenlik sorumlusunun (bir Kullanıcı, Grup veya hizmet sorumlusu) kimliğini doğrular. Kimlik doğrulaması başarılı olursa, Azure AD uygulamaya erişim belirtecini döndürür ve uygulama Azure Service Bus isteklerini yetkilendirmek için erişim belirtecini kullanabilir.
aşağıdaki bölümlerde, Microsoft kimlik platformu 2,0 ile yerel uygulamanızı veya web uygulamanızı kimlik doğrulaması için nasıl yapılandırabileceğiniz gösterilmektedir. Microsoft kimlik platformu 2,0 hakkında daha fazla bilgi için bkz. Microsoft kimlik platformu (v 2.0) genel bakış.
oauth 2,0 kod verme akışına genel bakış için bkz. oauth 2,0 kod verme akışını kullanarak Azure Active Directory web uygulamalarına erişimi yetkilendirme.
Uygulamanızı bir Azure AD kiracısıyla kaydetme
Service Bus varlıkları yetkilendirmek için azure ad kullanmanın ilk adımı, istemci uygulamanızı Azure portalbir Azure ad kiracısıyla kaydetmekte. İstemci uygulamanızı kaydettiğinizde AD 'ye uygulama hakkında bilgi sağlarsınız. Daha sonra Azure AD, uygulamanızı Azure AD çalışma zamanı ile ilişkilendirmek için kullanabileceğiniz bir istemci KIMLIĞI (uygulama KIMLIĞI olarak da bilinir) sağlar. İstemci KIMLIĞI hakkında daha fazla bilgi edinmek için Azure Active Directory Içindeki uygulama ve hizmet sorumlusu nesneleribölümüne bakın.
Aşağıdaki görüntüler, bir Web uygulamasını kaydetme adımlarını göstermektedir:

Not
Uygulamanızı yerel bir uygulama olarak kaydettiğinizde, 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, yeniden yönlendirme URI 'si, belirteçlerin sağlandığı URL 'YI belirttiğinden geçerli bir URI olmalıdır.
uygulamanızı kaydettikten sonra, Ayarlar altında uygulama (istemci) kimliğini görürsünüz:

Bir uygulamayı Azure AD 'ye kaydetme hakkında daha fazla bilgi için bkz. uygulamaları Azure Active Directory tümleştirme.
Önemli
Tenantıd ve ApplicationId' i unutmayın. Uygulamayı çalıştırmak için bu değerlere ihtiyacınız olacak.
İstemci parolası oluşturma
Uygulamanın bir belirteç istenirken kimliğini kanıtlamak için bir istemci parolası gerekir. İstemci parolasını eklemek için aşağıdaki adımları izleyin.
Zaten sayfada değilseniz Azure portal uygulama kaydınız ' ne gidin.
Sol menüdeki sertifikalar & gizli dizileri ' ni seçin.
İstemci gizli dizileri altında yeni bir gizli dizi oluşturmak için yeni istemci parolası ' nı seçin.

Gizli dizi için bir açıklama girin ve istenen süre sonu aralığını seçin ve ardından Ekle' yi seçin.

Yeni Gizliliğin değerini hemen güvenli bir konuma kopyalayın. Fill değeri size yalnızca bir kez görüntülenir.

Service Bus apı izinleri
Uygulamanız bir konsol uygulaması ise, yerel bir uygulamayı kaydetmeniz ve gerekli izinler kümesine Microsoft. SERVICEBUS için API izinleri eklemeniz gerekir. Yerel uygulamalar, Azure AD 'de bir tanımlayıcı görevi gören bir yeniden yönlendirme URI 'si de gerektirir; URI 'nin bir ağ hedefi olması gerekmez. https://servicebus.microsoft.comÖrnek kod bu URI 'yi zaten kullandığından, bu örnek için kullanın.
Service Bus istemcisinin kimliği doğrulanıyor
uygulamanızı kaydettikten ve azure Service Bus veri gönderme/alma izinlerine sahip olduğunuzda, istemci gizli kimlik bilgileriyle istemcinizi kimlik doğrulaması yapabilirsiniz, bu da azure Service Bus karşı istek almanızı sağlar.
belirteçleri alma ile ilgili senaryoların bir 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 kimliğini Azure. Identity kitaplığında tanımlanan bir clientsecretcredentialile 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 lütfen Azure-Service-Bus örnekleri deposundakiRoleBasedAccessControl örneklerine bakın.
Sonraki adımlar
- Azure RBAC hakkında daha fazla bilgi edinmek için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC)nedir?
- azure rol atamalarını Azure PowerShell, azure clı veya REST API ile atamayı ve yönetmeyi öğrenmek için şu makalelere bakın:
Service Bus mesajlaşma hizmeti hakkında daha fazla bilgi edinmek için aşağıdaki konu başlıklarına bakın.