Sicherheit von Notification Hubs
Übersicht
Dieses Thema beschreibt das Sicherheitsmodell von Azure Notification Hubs.
SAS-Sicherheit (Shared Access Signature)
Notification Hubs implementieren ein Sicherheitsschema auf Entitätsebene, das SAS (Shared Access Signature) genannt wird. 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.
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):
- DefaultListenSharedAccessSignature erteilt nur die Lauschberechtigung.
- DefaultFullSharedAccessSignature erteilt die Berechtigungen Lauschen, Verwalten und Senden. Diese Richtlinie darf nur in Ihrem App-Back-End verwendet werden. Verwenden Sie sie nicht in Clientanwendungen. Verwenden Sie eine Richtlinie, die nur über den Zugriff zum Lauschen verfügt. 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.
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.
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.
Der Schlüssel mit Lauschzugriff ermöglicht einer Client-App, sich für jedes beliebige Tag zu registrieren. 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. Weitere Informationen finden Sie unter Registrierungsverwaltung. Beachten Sie, dass die Clientanwendung auf diese Weise keinen direkten Zugriff auf Notification Hubs hat.
Sicherheitsansprüche
Ähnlich wie bei anderen Entitäten sind Notification Hub-Vorgänge für drei Sicherheitsansprüche zulässig: Lauschen, Senden und Verwalten.
Anspruch | BESCHREIBUNG | Zulässige Vorgänge |
---|---|---|
Lauschen | Erstellen/Aktualisieren, Lesen und Löschen einzelner Registrierungen | Erstellen/Aktualisieren einer Registrierung Lesen der Registrierung Lesen aller Registrierungen für ein Handle Registrierung löschen |
Senden | Senden von Nachrichten an den Notification Hub | Nachricht senden |
Verwalten | CRUDs für Notification Hubs (einschließlich des Aktualisierens von PNS-Anmeldeinformationen und Sicherheitsschlüsseln) und Lesen von Registrierungen basierend auf Tags | Erstellen/Aktualisieren/Lesen/Löschen von Hubs Lesen von Registrierungen nach Tag |
Notification Hubs akzeptiert SAS-Token mit freigegebenen Schlüsseln, die direkt auf dem Hub konfiguriert wurden.
Es ist nicht möglich, eine Benachrichtigung an mehr als einen Namespace zu senden. Namespaces sind logische Container für Notification Hubs und nicht am Senden von Benachrichtigungen beteiligt.
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.
SAS-Token für Zugriffsrichtlinien
Gehen Sie wie folgt vor, um einen neuen Sicherheitsanspruch zu erstellen oder vorhandene SAS-Schlüssel anzuzeigen:
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie Alle Ressourcen.
- Wählen Sie den Namen des Notification Hubs aus, für den Sie den Anspruch erstellen oder den SAS-Schlüssel anzeigen möchten.
- Wählen Sie im linken Menü Zugriffsrichtlinien aus.
- Wählen Sie Neue Richtlinie aus, um einen neuen Sicherheitsanspruch zu erstellen. Benennen Sie die Richtlinie, und wählen Sie die Berechtigungen aus, die Sie gewähren möchten. Klicken Sie anschließend auf OK.
- Die vollständige Verbindungszeichenfolge (einschließlich des neuen SAS-Schlüssels) wird im Fenster „Zugriffsrichtlinien“ angezeigt. Sie können diese Zeichenfolge zur späteren Verwendung in die Zwischenablage kopieren.
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. Fügen Sie diesen Wert an einer temporären Position ein, und kopieren Sie dann den SAS-Schlüsselteil der Verbindungszeichenfolge. In diesem Beispiel wird ein Notification Hubs-Namespace namens mytestnamespace1 und eine Richtlinie namens policy2 verwendet. Der SAS-Schlüssel ist der Wert in der Nähe des Endes der Zeichenfolge, der durch SharedAccessKey angegeben wird:
Endpoint=sb://mytestnamespace1.servicebus.windows.net/;SharedAccessKeyName=policy2;SharedAccessKey=<SAS key value here>