Azure kaynak kaynaklarına erişmek için Azure Active Directory kimlik doğrulaması Service Bus doğrulama

Azure kaynakları için yönetilen kimlikler, uygulama kodunuzun çalıştır olduğu dağıtımla ilişkili güvenli bir kimlik oluşturmanıza olanak sağlayan azurelar arası bir özelliktir. Ardından bu kimliği, uygulamanıza gereken belirli Azure kaynaklarına erişmek için özel izinler verilen erişim denetimi rolleriyle ilişkilendirilebilirsiniz.

Yönetilen kimliklerle, Azure platformu bu çalışma zamanı kimliğini yönetir. Erişim anahtarlarını uygulama kodunda veya yapılandırmada, kimliğin kendisi için veya erişmeniz gereken kaynaklar için depolamanız ve korumanız gerekli değildir. Azure Service Bus desteği için yönetilen varlıkları etkinleştirmiş bir Azure App Service uygulamasında veya sanal makinede çalışan bir istemci uygulamasının SAS kurallarını ve anahtarlarını veya diğer erişim belirteçlerini işlemesi gerekli değildir. İstemci uygulamasına yalnızca Service Bus Messaging ad alanının uç nokta adresi gerekir. Uygulama bağlandığında, Service Bus yönetilen varlığın bağlamını bu makalenin sonraki bir örneğinde gösterilen bir işlemde istemciye bağlar. Yönetilen kimlikle ilişkilendirilen Service Bus istemciniz tüm yetkili işlemleri yapabiliriz. Yetkilendirme, yönetilen bir varlığın Service Bus verilmesidir.

Genel Bakış

Bir güvenlik sorumlusu (kullanıcı, grup veya uygulama) bir Service Bus erişmeye çalışırsa, isteğin yetkilendirilmiş olması gerekir. Azure AD ile kaynağa erişim iki adımlı bir işlemdir.

  1. İlk olarak, güvenlik sorumlusu kimliğinin kimliği doğrulanır ve bir OAuth 2.0 belirteci döndürülür. Belirteç isteği için kaynak adı: https://servicebus.azure.net .
  2. Ardından belirteç, belirtilen kaynağa erişimi yetkilendirmek için Service Bus hizmetine yapılan bir isteğin parçası olarak geçiriliyor.

Kimlik doğrulama adımı, bir uygulama isteğinin çalışma zamanında bir OAuth 2.0 erişim belirteci içerdiğini gerektirir. Bir uygulama Azure VM, sanal makine ölçek kümesi veya Azure İşlevi uygulaması gibi bir Azure varlığı içinde çalışıyorsa, kaynaklara erişmek için yönetilen kimlik kullanabilir.

Yetkilendirme adımı, güvenlik sorumlusuna bir veya daha fazla Azure rolü atanmalarını gerektirir. Azure Service Bus kaynakları için izin kümelerini kapsayan Azure Service Bus sağlar. Bir güvenlik sorumlusuna atanan roller, sorumluya sahip olacak izinleri belirler. Azure rollerini Azure Service Bus'a atama hakkında daha fazla bilgi edinmek için bkz. AzureService Bus.

Azure AD ile yerel uygulamalara ve Service Bus web uygulamaları da yetki verebilir. Bu makalede, erişim belirteci talep etmek ve bu belirteci kaynaklarda yapılan istekleri yetkilendirmek Service Bus gösterir.

Erişim hakları için Azure rolleri atama

Azure Active Directory (Azure AD), Azure rol tabanlı erişim denetimi (Azure RBAC) aracılığıyla güvenli kaynaklara erişim haklarını yetkilendirmektedir. Azure Service Bus, Service Bus varlıklarına erişmek için kullanılan ortak izin kümelerini kapsayan yerleşik Azure rollerini tanımlar ve verilere erişmek için özel roller de tanımlayabilirsiniz.

Azure AD güvenlik sorumlusuna bir Azure rolü atandığı zaman, Azure bu güvenlik sorumlusu için bu kaynaklara erişim izni sağlar. Erişimin kapsamı abonelik düzeyi, kaynak grubu veya ad alanı Service Bus olabilir. Azure AD 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 yerleşik rolleri

Azure Service Bus azure kaynak yönetimi API'si aracılığıyla ad alanlarının ve tüm ilgili kaynakların Azure portal Azure RBAC modeli kullanılarak zaten korunur. Azure, belirli bir ad alanına erişimi yetkilendirmek için aşağıdaki Azure Service Bus sağlar:

Kaynak kapsamı

Bir güvenlik sorumlusuna Azure rolü atamadan önce, güvenlik sorumlusuna sahip olması gereken erişim kapsamını belirleme. En iyi yöntemler, mümkün olan en dar kapsamın verilmesinin her zaman en iyisi olduğunu dikte ediyor.

Aşağıdaki listede, en dar kapsamdan başlayarak, Service Bus erişim kapsamının hangi düzeylerde olduğu açıkmektedir:

  • Kuyruk, konu başlığı veya abonelik: Rol ataması, belirli bir Service Bus uygulanır. Şu anda Azure portal azure rollerine abonelik düzeyinde kullanıcı/grup/yönetilen Service Bus atamayı desteklememektedir. Azure CLI komutunu kullanma örneği şu şekildedir: azure rolüne kimlik atamak için az-role-assignment-create Service Bus gerekir:

    az role assignment create \
        --role $service_bus_role \
        --assignee $assignee_id \
        --scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription
    
  • Service Bus alanı: Rol ataması, ad alanı altındaki Service Bus ile ilişkili tüketici grubuna tüm topolojiyi kapsıyor.

  • Kaynak grubu: Rol ataması, kaynak Service Bus tüm kaynak kaynakları için geçerlidir.

  • Abonelik: Rol ataması, Service Bus tüm kaynak gruplarında yer alan tüm kaynak grupları için geçerlidir.

Not

Azure rol atamaların yayılmasının beş dakika kadar sürebilir.

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 bilgi için bkz. Azure özel rolleri.

Vm'de yönetilen kimlikleri etkinleştirme

Azure Kaynakları için yönetilen kimlikleri kullanarak VM'Service Bus kaynaklarınızı yetkilendirmek için önce VM'de Azure Kaynakları için yönetilen kimlikleri etkinleştirmeniz gerekir. Azure Kaynakları için yönetilen kimlikleri etkinleştirme hakkında bilgi edinmek için şu makalelerden birini okuyun:

Azure AD'de yönetilen kimliğe izinler verin

Service Bus hizmetine uygulamanıza yönetilen bir kimlikten gelen bir isteği yetkilendirmek için önce bu yönetilen kimlik için Azure rol tabanlı erişim denetimi (Azure RBAC) ayarlarını yapılandırmanız gerekir. Azure Service Bus, veri gönderme ve okuma izinlerini kapsayan Azure rollerini Service Bus. Azure rolü yönetilen bir kimliğe atandığı zaman, yönetilen kimliğe uygun kapsamda Service Bus varlıklara erişim izni atanır.

Azure rollerini atama hakkında daha fazla bilgi için bkz. Azure kaynaklarına Azure Active Directory için kimlik doğrulaması Service Bus yetkilendirme.

Azure Service Bus yönetilen kimliklerle kimlikleri kullanma

Yönetilen Service Bus kimlikleri kullanmak için rolü ve uygun kapsamı atamanız gerekir. Bu bölümdeki yordam, yönetilen kimlik altında çalışan ve kaynaklara erişen basit bir Service Bus kullanır.

Burada, uygulamasında barındırılan örnek bir web uygulamasını Azure App Service. Web uygulaması oluşturmaya ilişkin adım adım yönergeler için bkz. Azure'da ASP.NET Core web uygulaması oluşturma

Uygulama oluşturulduktan sonra şu adımları izleyin:

  1. Ayarlar'a gidin ve Kimlik'i seçin.

  2. Durum seçeneğini Açık olarak seçin.

  3. Ayarları kaydetmek için Kaydet’i seçin.

    Web uygulaması için yönetilen kimlik

Bu ayarı etkinleştirdikten sonra, Azure Active Directory (Azure AD) içinde yeni bir hizmet kimliği oluşturulur ve App Service yapılandırılır.

Azure portal kullanarak Azure rollerini atamak için

Yönetilen hizmet kimliğine Service Bus rollerinden birini istediğiniz kapsamda (ad alanı, Service Bus grubu, abonelik) attayın. Ayrıntılı adımlar için bkz. Azure rollerini Azure portal.

Not

Yönetilen kimlikleri destekleyen hizmetlerin listesi için bkz. Azure kaynakları için yönetilen kimlikleri destekleyen hizmetler.

Uygulamayı çalıştırma

Şimdi, oluşturduğunuz uygulamanın ASP.NET sayfasını değiştirebilirsiniz. Web uygulaması kodunu bu depodan GitHub kullanabilirsiniz.

Default.aspx sayfası giriş sayfanızdır. Kod Default.aspx.cs dosyasında bulunabilir. Sonuç, birkaç giriş alanı olan ve ileti göndermek veya almak için Service Bus ve alma düğmelerine sahip olan minimal bir web uygulamasıdır.

ServiceBusClient nesnesinin TokenCredential alan bir oluşturucu kullanılarak nasıl başlatılmış olduğunu unutmayın. DefaultAzureCredential, TokenCredential'dan türet edilir ve buradan geçir olabilir. Bu nedenle, korunarak ve kullanmak için gizli dizi yoktur. Yönetilen kimlik bağlamının veri akışı Service Bus ve yetkilendirme el sıkışması belirteç kimlik bilgileri tarafından otomatik olarak işlenir. SAS kullanmaya göre daha basit bir modeldir.

Bu değişiklikleri yaptıktan sonra uygulamayı yayımlayın ve çalıştırın. Aşağıdakiler gibi bir yayımlama profilini indirip içeri aktararak doğru yayımlama verilerini kolayca Visual Studio:

Yayımlama profili al

İleti göndermek veya almak için ad alanının adını ve oluşturduğunuz varlığın adını girin. Ardından gönder veya al'a tıklayın.

Not

  • Yönetilen kimlik yalnızca Azure ortamında, Uygulama hizmetlerde, Azure VM'lerde ve ölçek kümelerde çalışır. .NET uygulamaları için, Service Bus NuGet paketi tarafından kullanılan Microsoft.Azure.Services.AppAuthentication kitaplığı, bu protokole bir soyutlama sağlar ve yerel bir geliştirme deneyimini destekler. Bu kitaplık ayrıca Visual Studio, Azure CLI 2.0 veya Active Directory Tümleşik Kimlik Doğrulaması'nın kullanıcı hesabını kullanarak kodunuzu geliştirme makineniz üzerinde yerel olarak test etmek için de kullanılabilir. Bu kitaplıkla yerel geliştirme seçenekleri hakkında daha fazla bilgi için bkz. .NET kullanarak Azure Key Vault hizmet-hizmet kimlik doğrulaması.

Sonraki adımlar

Service Bus mesajlaşma hakkında daha fazla bilgi edinmek için aşağıdaki konulara bakın: