Azure Relay kaynaklarına erişmek için Microsoft Entra Id ile yönetilen kimliğin kimliğini doğrulama
Azure kaynakları için yönetilen kimlikler, uygulama kodunuzun çalıştığı dağıtımla ilişkili güvenli bir kimlik oluşturmanıza olanak tanıyan bir Azurelar arası özelliktir. Ardından bu kimliği, uygulamanızın ihtiyaç duyduğu belirli Azure kaynaklarına erişmek için özel izinler veren erişim denetimi rolleriyle ilişkilendirebilirsiniz.
Yönetilen kimliklerle Azure platformu bu çalışma zamanı kimliğini yönetir. Uygulama kodunuzda veya yapılandırmanızda, kimliğin kendisi veya erişmeniz gereken kaynaklar için erişim anahtarlarını depolamanız ve korumanız gerekmez. Bir Azure Uygulaması Hizmeti uygulamasında veya Azure kaynakları desteği için yönetilen varlıkların etkinleştirildiği bir sanal makinede çalışan bir Relay istemci uygulamasının SAS kurallarını ve anahtarlarını ya da diğer erişim belirteçlerini işlemesi gerekmez. İstemci uygulaması yalnızca Geçiş ad alanının uç nokta adresine ihtiyaç duyar. Uygulama bağlandığında, Relay yönetilen varlığın bağlamını istemciye bağlar ve bu makalenin devamında bir örnekte gösterilen bir işlemde gösterilir. Yönetilen kimlikle ilişkilendirildikten sonra Relay istemciniz tüm yetkili işlemleri gerçekleştirebilir. Yetkilendirme, yönetilen bir varlığı Geçiş rolleri ile ilişkilendirerek verilir.
Not
Bu özellik, 21Vianet tarafından sağlanan Microsoft Azure da dahil olmak üzere tüm bölgelerde genel olarak kullanılabilir.
Genel bakış
Bir güvenlik sorumlusu (kullanıcı, grup, uygulama) bir Geçiş 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.
- İ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ı şeklindedir
https://relay.azure.net
. Bir uygulama Azure VM, sanal makine ölçek kümesi veya Azure İşlevi uygulaması gibi bir Azure varlığında çalışıyorsa, kaynaklara erişmek için yönetilen kimlik kullanabilir. - Daha sonra belirteç, belirtilen kaynağa (karma bağlantılar, WCF geçişleri) erişim yetkisi vermek için Geçiş hizmetine yapılan bir isteğin parçası olarak geçirilir. Microsoft Entra, Azure rol tabanlı erişim denetimi (Azure RBAC) aracılığıyla güvenli kaynaklara erişim haklarını yetkiler. Azure Relay, Geçiş varlıklarına erişmek için kullanılan ortak izin kümelerini kapsayan bir dizi Azure yerleşik rolü tanımlar. Verilere erişmek için özel roller de tanımlayabilirsiniz. Azure Relay tarafından desteklenen yerleşik rollerin listesi için bkz . Azure Relay için Azure Yerleşik rolleri. Relay'e istekte bulunan yerel uygulamalar ve web uygulamaları da Microsoft Entra Id ile yetkilendirilebilir.
Azure Relay için Azure yerleşik rolleri
Azure Relay için, Azure portalı ve Azure kaynak yönetimi API'sini kullanarak ad alanlarının ve tüm ilgili kaynakların yönetimi Azure RBAC modeli kullanılarak zaten korunur. Azure, Geçiş ad alanına erişim yetkisi vermek için aşağıdaki Azure yerleşik rollerini sağlar:
Rol | Açıklama |
---|---|
Azure Relay Sahibi | Azure Relay kaynaklarına tam erişim vermek için bu rolü kullanın. |
Azure Relay Dinleyicisi | Azure Relay kaynaklarına dinleme ve varlık okuma erişimi vermek için bu rolü kullanın. |
Azure Relay Göndereni | Azure Relay kaynaklarına gönderme ve varlık okuma erişimi 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 Azure Relay kaynaklarına erişimi kapsam olarak kullanabileceğiniz düzeyler açıklanmaktadır:
- Geçiş varlıkları: Rol ataması, karma bağlantı veya WCF geçişi gibi belirli bir Geçiş varlığı için geçerlidir.
- Geçiş ad alanı: Rol ataması, ad alanı altındaki tüm Geçiş varlıklarına uygulanır.
- Kaynak grubu: Rol ataması, kaynak grubu altındaki tüm Geçiş kaynaklarına uygulanır.
- Abonelik: Rol ataması, abonelikteki tüm kaynak gruplarındaki tüm Geçiş kaynaklarına uygulanır.
Not
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 . Rol tanımlarını anlama. Azure özel rolleri oluşturma hakkında bilgi için bkz . Azure özel rolleri.
Yönetilen kimliği etkinleştirme
İlk olarak, Azure Relay varlıklarına (karma bağlantılar veya WCF geçişleri) erişmesi gereken Azure kaynağı için yönetilen kimliği etkinleştirin. Örneğin, Relay istemci uygulamanız bir Azure VM üzerinde çalışıyorsa, Azure VM için yönetilen kimliği yapılandırma makalesindeki yönergeleri izleyerek VM için yönetilen kimliği etkinleştirin. Bu ayarı etkinleştirdikten sonra, Microsoft Entra Id'nizde yeni bir yönetilen hizmet kimliği oluşturulur.
Yönetilen kimlikleri destekleyen hizmetlerin listesi için bkz . Azure kaynakları için yönetilen kimlikleri destekleyen hizmetler.
Yönetilen kimliğe Azure Relay rolü atama
Yönetilen kimliği etkinleştirdikten sonra, uygun kapsamdaKimliğe Azure Relay rollerinden birini (Azure Relay Sahibi, Azure Relay Dinleyicisi veya Azure Relay Göndereni) atayın. Azure rolü yönetilen bir kimliğe atandığında, yönetilen kimliğe uygun kapsamdaKimlik varlıklarına erişim verilir.
Aşağıdaki bölüm, Azure VM örneğinde yönetilen kimlik altında çalışan ve Geçiş kaynaklarına erişen basit bir uygulama kullanır.
Geçiş varlıklarına erişen VM'deki örnek uygulama
Karma Bağlantılar örnek konsol uygulamasını GitHub'dan bilgisayarınıza indirin.
Azure VM oluşturun. Bu örnek için bir Windows 10 görüntüsü kullanın.
Azure VM için sistem tarafından atanan kimliği veya kullanıcı tarafından atanan kimliği etkinleştirin. Yönergeler için bkz . Vm için kimliği etkinleştirme.
İstenen kapsamda yönetilen hizmet kimliğine Geçiş rollerinden birini atayın (Geçiş varlığı, Geçiş ad alanı, kaynak grubu, abonelik). Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.
BENİOKU belgesinden alınan yönergelere göre konsol uygulamasını yerel bilgisayarınızda yerel olarak oluşturun.
Yerel yolunuz>\RoleBasedAccessControl\bin\Debug klasörünüz altındaki <yürütülebilir dosyayı VM'ye kopyalayın. Azure VM'nize bağlanmak için RDP'yi kullanabilirsiniz. Daha fazla bilgi için bkz . Windows çalıştıran bir Azure sanal makinesine bağlanma ve oturum açma.
README belgesinde yönergelere göre Azure VM'de RoleBasedAccessControl.exe çalıştırın.
Not
WCF Geçişleri için konsol uygulamasını çalıştırmak için aynı adımları izleyin.
Örnekten vurgulanan kod
Azure Relay hizmetine bağlanmak için Microsoft Entra kimlik doğrulamasının nasıl kullanılacağını gösteren örnekteki kod aşağıda verilmiştır.
yöntemini kullanarak
TokenProvider.CreateManagedIdentityTokenProvider
bir TokenProvider nesnesi oluşturun.- Sistem tarafından atanan bir yönetilen kimlik kullanıyorsanız:
TokenProvider.CreateManagedIdentityTokenProvider();
- Kullanıcı tarafından atanan bir yönetilen kimlik kullanıyorsanız Azure portalındaki Yönetilen Kimlik sayfasından kullanıcı tarafından atanan kimliğin İstemci Kimliğini alın. Yönergeler için bkz . Kullanıcı tarafından atanan yönetilen kimlikleri listeleme.
var managedCredential = new ManagedIdentityCredential(clientId); tokenProvider = TokenProvider.CreateManagedIdentityTokenProvider(managedCredential);
- Sistem tarafından atanan bir yönetilen kimlik kullanıyorsanız:
Karma bağlantı URI'sini ve önceki adımda oluşturduğunuz belirteç sağlayıcısını geçirerek bir HybridConnectionListener veya HybridConnectionClient nesnesi oluşturun.
Dinleyici:
var listener = new HybridConnectionListener(hybridConnectionUri, tokenProvider);
Gönderen:
var sender = new HybridConnectionClient(hybridConnectionUri, tokenProvider);
Örnekler
- Karma Bağlantılar: .NET, Java, JavaScript
- WCF Geçişi: .NET
Sonraki adımlar
Azure Relay hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın.