Service Bus, autentisering och auktoriseringService Bus authentication and authorization

Program få åtkomst till Azure Service Bus-resurser med hjälp av autentisering med signatur för delad åtkomst (SAS)-token.Applications gain access to Azure Service Bus resources using Shared Access Signature (SAS) token authentication. Med SAS, presentera program en token för Service Bus som har signerats med en symmetrisk nyckel som kända både tokenutfärdaren och Service Bus (därför ”delad”) och nyckeln är direkt kopplade till en regel som beviljar behörighet för specifika, t.ex. behörighet att ta emot/lyssna eller skicka meddelanden.With SAS, applications present a token to Service Bus that has been signed with a symmetric key known both to the token issuer and Service Bus (hence "shared") and that key is directly associated with a rule granting specific access rights, like the permission to receive/listen or send messages. SAS-regler är antingen konfigurerats på namnområdet eller direkt på entiteter, till exempel en kö eller ämne, så att de detaljerade åtkomstkontroll.SAS rules are either configured on the namespace, or directly on entities such as a queue or topic, allowing for fine grained access control.

SAS-token kan antingen genereras av en Service Bus-klient direkt eller genereras av vissa mellanliggande token som utfärdas slutpunkten som klienten interagerar.SAS tokens can either be generated by a Service Bus client directly, or they can be generated by some intermediate token issuing endpoint with which the client interacts. Ett system kan exempelvis kräva klienten för att anropa en Active Directory auktorisering skyddas webbtjänstslutpunkt för att bevisa sin identitet och åtkomstbehörigheter till systemet, och webbtjänsten och returnerar en lämplig Service Bus-token.For example, a system may require the client to call an Active Directory authorization protected web service endpoint to prove its identity and system access rights, and the web service then returns the appropriate Service Bus token. Den här SAS-token kan skapas enkelt med hjälp av Service Bus-tokenleverantör som ingår i Azure SDK.This SAS token can be easily generated using the Service Bus token provider included in the Azure SDK.

Viktigt

Om du använder Azure Active Directory Access Control (även kallat Access Control Service eller ACS) med Service Bus, Tänk på att stöd för den här metoden är nu begränsad och du bör migrera ditt program att använda SAS.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. Mer information finns i det här blogginlägget och i den här artikeln.For more information, see this blog post and this article.

Autentisering med delad ÅtkomstsignaturShared Access Signature authentication

SAS-autentisering gör det möjligt att ge en användaråtkomst till Service Bus-resurser med specifika rättigheter.SAS authentication enables you to grant a user access to Service Bus resources, with specific rights. SAS-autentisering i Service Bus innebär att konfigurationen av en kryptografisk nyckel med associerade behörigheter på en Service Bus-resurs.SAS authentication in Service Bus involves the configuration of a cryptographic key with associated rights on a Service Bus resource. Klienterna kan sedan få åtkomst till resursen genom att presentera en SAS-token som består av resurs-URI som används och ett förfallodatum som signeras med den konfigurera nyckeln.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.

Du kan konfigurera nycklar för Signaturen för ett Service Bus-namnområde.You can configure keys for SAS on a Service Bus namespace. Nyckeln gäller för alla meddelandeentiteter inom det här namnområdet.The key applies to all messaging entities within that namespace. Du kan också konfigurera nycklar på Service Bus-köer och ämnen.You can also configure keys on Service Bus queues and topics. SAS stöds även på Azure Relay.SAS is also supported on Azure Relay.

Om du vill använda SAS kan du konfigurera en SharedAccessAuthorizationRule objektet på en namnrymd, kö eller ämne.To use SAS, you can configure a SharedAccessAuthorizationRule object on a namespace, queue, or topic. Den här regeln består av följande element:This rule consists of the following elements:

  • KeyName: identifierar regeln.KeyName: identifies the rule.
  • PrimaryKey: en krypteringsnyckel som används för att logga/Validera SAS-token.PrimaryKey: a cryptographic key used to sign/validate SAS tokens.
  • Sekundär nyckel: en krypteringsnyckel som används för att logga/Validera SAS-token.SecondaryKey: a cryptographic key used to sign/validate SAS tokens.
  • Rättigheter: representerar samlingen lyssna, skicka, eller hantera rättigheter beviljas.Rights: represents the collection of Listen, Send, or Manage rights granted.

Auktoriseringsregler som konfigurerats på namnområdesnivå kan bevilja åtkomst till alla entiteter i ett namnområde för klienter med token som signerats med motsvarande nyckel.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. Du kan konfigurera upp till 12 sådana auktoriseringsregler på en Service Bus-namnområde, kö eller ämne.You can configure up to 12 such authorization rules on a Service Bus namespace, queue, or topic. Som standard en SharedAccessAuthorizationRule med alla rättigheter som konfigureras för varje namnområde när den först har etablerats.By default, a SharedAccessAuthorizationRule with all rights is configured for every namespace when it is first provisioned.

Om du vill få åtkomst till en entitet måste klienten kräver en SAS-token som genererats med hjälp av en specifik SharedAccessAuthorizationRule.To access an entity, the client requires a SAS token generated using a specific SharedAccessAuthorizationRule. SAS-token genereras med en kryptografisk nyckel som är associerade med auktoriseringsregeln HMAC-SHA256 av en resurssträng som består av resurs-URI som åtkomst begärs och upphöra att gälla.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.

Support för SAS-autentisering för Service Bus är inkluderade i Azure .NET SDK-version 2.0 och senare.SAS authentication support for Service Bus is included in the Azure .NET SDK versions 2.0 and later. SAS har stöd för en SharedAccessAuthorizationRule.SAS includes support for a SharedAccessAuthorizationRule. Alla API: er som accepterar en anslutningssträng som en parameter har stöd för SAS-anslutningssträngar.All APIs that accept a connection string as a parameter include support for SAS connection strings.

Nästa stegNext steps