Sicherheit von Notification HubsNotification Hubs security

ÜbersichtOverview

Dieses Thema beschreibt das Sicherheitsmodell von Azure Notification Hubs.This topic describes the security model of Azure Notification Hubs.

SAS-Sicherheit (Shared Access Signature)Shared Access Signature security

Notification Hubs implementieren ein Sicherheitsschema auf Entitätsebene, das SAS (Shared Access Signature) genannt wird.Notification Hubs implements an entity-level security scheme called a Shared Access Signature (SAS). Jede Regel enthält einen Namen, einen Schlüsselwert (gemeinsames Geheimnis) und eine Reihe von Rechten, wie später im Abschnitt Sicherheitsansprüche erläutert.Each rule contains a name, a key value (shared secret), and a set of rights, as explained later in Security claims.

Beim Erstellen eines Hubs werden automatisch zwei Regeln erstellt: eine mit Lauschberechtigung (von der Clientanwendung verwendet) und eine mit allen Berechtigungen (vom Back-End verwendet):When creating a hub, two rules are automatically created: one with Listen rights (that the client app uses) and one with all rights (that the app backend uses):

  • DefaultListenSharedAccessSignature erteilt nur die Lauschberechtigung.DefaultListenSharedAccessSignature: grants Listen permission only.
  • DefaultFullSharedAccessSignature erteilt die Berechtigungen Lauschen, Verwalten und Senden.DefaultFullSharedAccessSignature: grants Listen, Manage, and Send permissions. Diese Richtlinie darf nur in Ihrem App-Back-End verwendet werden.This policy is to be used only in your app backend. Verwenden Sie sie nicht in Clientanwendungen. Verwenden Sie eine Richtlinie, die nur über den Zugriff zum Lauschen verfügt.Do not use it in client applications; use a policy with only Listen access. Informationen zum Erstellen einer neuen benutzerdefinierten Zugriffsrichtlinie mit einem neuen SAS-Token finden Sie später in diesem Artikel unter SAS-Token für Zugriffsrichtlinien.To create a new custom access policy with a new SAS token, see SAS tokens for access policies later in this article.

Wenn eine Registrierungsverwaltung von Client-Apps aus durchgeführt wird und die über Benachrichtigungen gesendeten Informationen nicht vertraulich sind (z. B. aktuelle Wetterdaten), besteht eine gebräuchliche Möglichkeit zum Zugreifen auf einen Notification Hub darin, dem Schlüsselwert der Regel nur Lauschzugriff für die Client-App zu erteilen und dem Schlüsselwert der Regel Vollzugriff auf das Back-End zu gewähren.When performing registration management from client apps, if the information sent via notifications is not sensitive (for example, weather updates), a common way to access a Notification Hub is to give the key value of the rule Listen-only access to the client app, and to give the key value of the rule full access to the app backend.

Apps sollten den Schlüsselwert nicht in Windows Store-Client-Apps einbetten. Stattdessen sollte die Client-App ihn beim Start über das App-Back-End abrufen.Apps should not embed the key value in Windows Store client apps; instead, have the client app retrieve it from the app backend at startup.

Der Schlüssel mit Lauschzugriff ermöglicht einer Client-App, sich für jedes beliebige Tag zu registrieren.The key with Listen access allows a client app to register for any tag. Wenn Ihre App Registrierungen auf bestimmte Tags für bestimmte Clients einschränken muss (wenn Tags z.B. für Benutzer-IDs stehen), muss das App-Back-End die Registrierungen ausführen.If your app must restrict registrations to specific tags to specific clients (for example, when tags represent user IDs), your app backend must perform the registrations. Weitere Informationen finden Sie unter Registrierungsverwaltung.For more information, see Registration management. Beachten Sie, dass die Clientanwendung auf diese Weise keinen direkten Zugriff auf Notification Hubs hat.Note that in this way, the client app will not have direct access to Notification Hubs.

SicherheitsansprücheSecurity claims

Ähnlich wie bei anderen Entitäten sind Notification Hub-Vorgänge für drei Sicherheitsansprüche zulässig: Lauschen, Senden und Verwalten.Similar to other entities, Notification Hub operations are allowed for three security claims: Listen, Send, and Manage.

AnspruchClaim BESCHREIBUNGDescription Zulässige VorgängeOperations allowed
LauschenListen Erstellen/Aktualisieren, Lesen und Löschen einzelner RegistrierungenCreate/Update, Read, and Delete single registrations Erstellen/Aktualisieren einer RegistrierungCreate/Update registration

Lesen der RegistrierungRead registration

Lesen aller Registrierungen für ein HandleRead all registrations for a handle

Registrierung löschenDelete registration
SendenSend Senden von Nachrichten an den Notification HubSend messages to the Notification Hub Nachricht sendenSend message
VerwaltenManage CRUDs für Notification Hubs (einschließlich des Aktualisierens von PNS-Anmeldeinformationen und Sicherheitsschlüsseln) und Lesen von Registrierungen basierend auf TagsCRUDs on Notification Hubs (including updating PNS credentials, and security keys), and read registrations based on tags Erstellen/Aktualisieren/Lesen/Löschen von HubsCreate/Update/Read/Delete hubs

Lesen von Registrierungen nach TagRead registrations by tag

Notification Hubs akzeptiert SAS-Token mit freigegebenen Schlüsseln, die direkt auf dem Hub konfiguriert wurden.Notification Hubs accepts SAS tokens generated with shared keys configured directly on the hub.

Es ist nicht möglich, eine Benachrichtigung an mehr als einen Namespace zu senden.It is not possible to send a notification to more than one namespace. Namespaces sind logische Container für Notification Hubs und nicht am Senden von Benachrichtigungen beteiligt.Namespaces are logical containers for Notification Hubs and are not involved in sending notifications.

Verwenden Sie die Zugriffsrichtlinien auf Namespaceebene (Anmeldeinformationen) für Vorgänge auf Namespaceebene. Beispiel: Auflistung von Hubs, Erstellen oder Löschen von Hubs usw. Nur die Zugriffsrichtlinien auf Hubebene ermöglichen das Senden von Benachrichtigungen.Use the namespace-level access policies (credentials) for namespace-level operations; for example: listing hubs, creating or deleting hubs, etc. Only the hub-level access policies let you send notifications.

SAS-Token für ZugriffsrichtlinienSAS tokens for access policies

Gehen Sie wie folgt vor, um einen neuen Sicherheitsanspruch zu erstellen oder vorhandene SAS-Schlüssel anzuzeigen:To create a new security claim or to view existing SAS keys, do the following:

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.
  2. Wählen Sie Alle Ressourcen.Select All resources.
  3. Wählen Sie den Namen des Notification Hubs aus, für den Sie den Anspruch erstellen oder den SAS-Schlüssel anzeigen möchten.Select the name of the Notification Hub for which you want to create the claim or view the SAS key.
  4. Wählen Sie im linken Menü Zugriffsrichtlinien aus.In the left-hand menu, select Access Policies.
  5. Wählen Sie Neue Richtlinie aus, um einen neuen Sicherheitsanspruch zu erstellen.Select New Policy to create a new security claim. Benennen Sie die Richtlinie, und wählen Sie die Berechtigungen aus, die Sie gewähren möchten.Give the policy a name, and select the permissions you want to grant. Klicken Sie anschließend auf OK.Then select OK.
  6. Die vollständige Verbindungszeichenfolge (einschließlich des neuen SAS-Schlüssels) wird im Fenster „Zugriffsrichtlinien“ angezeigt.The full connection string (including the new SAS key) is displayed in the Access Policies window. Sie können diese Zeichenfolge zur späteren Verwendung in die Zwischenablage kopieren.You can copy this string to the clipboard for later use.

Wenn Sie den SAS-Schlüssel aus einer bestimmten Richtlinie extrahieren möchten, wählen Sie die Schaltfläche Kopieren neben der Richtlinie aus, die den gewünschten SAS-Schlüssel enthält.To extract the SAS key from a specific policy, select the Copy button next to the policy containing the SAS key you want. Fügen Sie diesen Wert an einer temporären Position ein, und kopieren Sie dann den SAS-Schlüsselteil der Verbindungszeichenfolge.Paste this value into a temporary location, then copy the SAS key portion of the connection string. In diesem Beispiel wird ein Notification Hubs-Namespace namens mytestnamespace1 und eine Richtlinie namens policy2 verwendet.This example uses a Notification Hubs namespace called mytestnamespace1, and a policy named policy2. Der SAS-Schlüssel ist der Wert in der Nähe des Endes der Zeichenfolge, der durch SharedAccessKey angegeben wird:The SAS key is the value near the end of the string, specified by SharedAccessKey:

Endpoint=sb://mytestnamespace1.servicebus.windows.net/;SharedAccessKeyName=policy2;SharedAccessKey=<SAS key value here>

Abrufen von SAS-Schlüsseln

Nächste SchritteNext steps