Service Bus kimlik doğrulaması ve yetkilendirmeService Bus authentication and authorization

Azure Service Bus kaynaklarına erişimin kimliğini doğrulamak ve bunlara yetki vermek için iki yol vardır: Azure etkinlik dizini (Azure AD) ve paylaşılan erişim Imzaları (SAS).There are two ways to authenticate and authorize access to Azure Service Bus resources: Azure Activity Directory (Azure AD) and Shared Access Signatures (SAS). Bu makale, bu iki tür güvenlik mekanizmasını kullanma hakkında ayrıntılı bilgi sağlar.This article gives you details on using these two types of security mechanisms.

Azure Active DirectoryAzure Active Directory

Service Bus kaynakları için Azure AD tümleştirmesi, bir istemcinin kaynaklara erişimi üzerinde ayrıntılı denetim için Azure rol tabanlı erişim denetimi (Azure RBAC) sağlar.Azure AD integration for Service Bus resources provides Azure role-based access control (Azure RBAC) for fine-grained control over a client’s access to resources. Bir Kullanıcı, Grup veya uygulama hizmeti sorumlusu olabilecek bir güvenlik sorumlusu için izin vermek üzere Azure RBAC kullanabilirsiniz.You can use Azure RBAC to grant permissions to a security principal, which may be a user, a group, or an application service principal. Güvenlik sorumlusunun bir OAuth 2,0 belirteci döndürmesi için Azure AD tarafından kimliği doğrulanır.The security principal is authenticated by Azure AD to return an OAuth 2.0 token. Belirteç, bir Service Bus kaynağına (kuyruk, konu vb.) erişim isteğine yetki vermek için kullanılabilir.The token can be used to authorize a request to access an Service Bus resource (queue, topic, etc.).

Azure AD ile kimlik doğrulama hakkında daha fazla bilgi için aşağıdaki makalelere bakın:For more information about authenticating with Azure AD, see the following articles:

Not

Service Bus REST API , OAuth kimlik DOĞRULAMASıNı Azure AD ile destekler.Service Bus REST API supports OAuth authentication with Azure AD.

Önemli

Azure AD tarafından döndürülen OAuth 2,0 belirtecini kullanarak kullanıcıları veya uygulamaları yetkilendirmek, paylaşılan erişim imzaları (SAS) üzerinde üstün güvenlik ve kullanım kolaylığı sağlar.Authorizing users or applications using OAuth 2.0 token returned by Azure AD provides superior security and ease of use over shared access signatures (SAS). Azure AD ile, belirteçlerin kodunuzda depolanması ve olası güvenlik açıklarına karşı risk altında olması gerekmez.With Azure AD, there is no need to store the tokens in your code and risk potential security vulnerabilities. Mümkünse Azure Service Bus uygulamalarınızla Azure AD kullanmanızı öneririz.We recommend that you use Azure AD with your Azure Service Bus applications when possible.

Paylaşılan erişim imzasıShared access signature

SAS kimlik doğrulaması , bir kullanıcıya belirli haklara sahip Service Bus kaynaklarına erişim izni vermenizi sağlar.SAS authentication enables you to grant a user access to Service Bus resources, with specific rights. Service Bus SAS kimlik doğrulaması, bir Service Bus kaynağında ilişkili haklara sahip bir şifreleme anahtarı yapılandırmasını içerir.SAS authentication in Service Bus involves the configuration of a cryptographic key with associated rights on a Service Bus resource. İstemciler, erişilmekte olan kaynak URI 'sinden ve yapılandırılan anahtarla imzalanmış bir süre sonu olan bir SAS belirteci sunarak bu kaynağa erişim elde edebilir.Clients can then gain access to that resource by presenting a SAS token, which consists of the resource URI being accessed and an expiry signed with the configured key.

SAS için anahtarları bir Service Bus ad alanında yapılandırabilirsiniz.You can configure keys for SAS on a Service Bus namespace. Anahtar, bu ad alanı içindeki tüm mesajlaşma varlıkları için geçerlidir.The key applies to all messaging entities within that namespace. Ayrıca, Service Bus kuyrukları ve konularında anahtarlar da yapılandırabilirsiniz.You can also configure keys on Service Bus queues and topics. SAS de Azure Relaydesteklenir.SAS is also supported on Azure Relay.

SAS 'yi kullanmak için bir ad alanı, kuyruk veya konu üzerinde bir Sharedaccessauthorizationrule nesnesi yapılandırabilirsiniz.To use SAS, you can configure a SharedAccessAuthorizationRule object on a namespace, queue, or topic. Bu kural aşağıdaki öğelerden oluşur:This rule consists of the following elements:

  • KeyName: kuralı tanımlar.KeyName: identifies the rule.
  • PrimaryKey: SAS belirteçlerini imzalamak/doğrulamak için kullanılan bir şifreleme anahtarı.PrimaryKey: a cryptographic key used to sign/validate SAS tokens.
  • Secondarykey: SAS belirteçlerini imzalamak/doğrulamak için kullanılan bir şifreleme anahtarı.SecondaryKey: a cryptographic key used to sign/validate SAS tokens.
  • Haklar: sağlanan dinleme, gönderme veya yönetme haklarını temsil eder.Rights: represents the collection of Listen, Send, or Manage rights granted.

Ad alanı düzeyinde yapılandırılan yetkilendirme kuralları, ilgili anahtar kullanılarak imzalanmış belirteçleri olan istemciler için bir ad alanındaki tüm varlıklara erişim verebilir.Authorization rules configured at the namespace level can grant access to all entities in a namespace for clients with tokens signed using the corresponding key. Bir Service Bus ad alanı, kuyruk veya konu başlığı altında en fazla 12 ' ye kadar yetkilendirme kuralı yapılandırabilirsiniz.You can configure up to 12 such authorization rules on a Service Bus namespace, queue, or topic. Varsayılan olarak, tüm haklara sahip bir Sharedaccessauthorizationrule , ilk sağlandığı sırada her ad alanı için yapılandırılır.By default, a SharedAccessAuthorizationRule with all rights is configured for every namespace when it is first provisioned.

Bir varlığa erişmek için, istemci belirli bir Sharedaccessauthorizationrulekullanılarak oluşturulan bir SAS belirteci gerektirir.To access an entity, the client requires a SAS token generated using a specific SharedAccessAuthorizationRule. SAS belirteci, erişimi talep edilen kaynak URI 'sinden ve yetkilendirme kuralıyla ilişkili bir şifreleme anahtarıyla bir süre sonu olan bir kaynak dizesinin HMAC-SHA256 kullanılarak oluşturulur.The SAS token is generated using the HMAC-SHA256 of a resource string that consists of the resource URI to which access is claimed, and an expiry with a cryptographic key associated with the authorization rule.

Service Bus için SAS kimlik doğrulama desteği, Azure .NET SDK 2,0 ve üzeri sürümlerine dahildir.SAS authentication support for Service Bus is included in the Azure .NET SDK versions 2.0 and later. SAS, Sharedaccessauthorizationruleiçin destek içerir.SAS includes support for a SharedAccessAuthorizationRule. Parametre olarak bir bağlantı dizesini kabul eden tüm API 'Ler SAS bağlantı dizeleri için destek içerir.All APIs that accept a connection string as a parameter include support for SAS connection strings.

Önemli

Service Bus ile Azure Active Directory Access Control (Access Control Service veya ACS olarak da bilinir) kullanıyorsanız, bu yöntemin desteğinin artık sınırlı olduğunu ve UYGULAMANıZı SAS kullanacak şekilde geçirmeniz ya da Azure AD ile OAuth 2,0 kimlik doğrulaması kullanmanızı (önerilir) unutmayın. ACS 'nin kullanımdan kaldırılması hakkında daha fazla bilgi için Bu blog gönderisinebakın.If you are using Azure Active Directory Access Control (also known as Access Control Service or ACS) with Service Bus, note that the support for this method is now limited and you should migrate your application to use SAS or use OAuth 2.0 authentication with Azure AD (recommended).For more information about deprecation of ACS, see this blog post.

Sonraki adımlarNext steps

Azure AD ile kimlik doğrulama hakkında daha fazla bilgi için aşağıdaki makalelere bakın:For more information about authenticating with Azure AD, see the following articles:

SAS ile kimlik doğrulama hakkında daha fazla bilgi için aşağıdaki makalelere bakın:For more information about authenticating with SAS, see the following articles: