Notification Hubs-säkerhet
Översikt
I det här avsnittet beskrivs säkerhetsmodellen för Azure Notification Hubs.
Säkerhet för signatur för delad åtkomst
Notification Hubs implementerar ett säkerhetsschema på entitetsnivå som kallas signatur för delad åtkomst (SAS). Varje regel innehåller ett namn, ett nyckelvärde (delad hemlighet) och en uppsättning rättigheter, som beskrivs senare i Säkerhetsanspråk.
När du skapar en hubb skapas två regler automatiskt: en med lyssningsrättigheter (som klientappen använder) och en med alla rättigheter (som appens serverdel använder):
- DefaultListenSharedAccessSignature: beviljar endast lyssningsbehörighet .
- DefaultFullSharedAccessSignature: beviljar behörigheterna Lyssna, Hantera och Skicka . Den här principen ska endast användas i appens serverdel. Använd den inte i klientprogram. använd en princip med endast lyssnaråtkomst . Information om hur du skapar en ny anpassad åtkomstprincip med en ny SAS-token finns i SAS-token för åtkomstprinciper senare i den här artikeln.
När du utför registreringshantering från klientappar, om informationen som skickas via meddelanden inte är känslig (till exempel väderuppdateringar), är ett vanligt sätt att komma åt en Notification Hub att ge nyckelvärdet för regeln Lyssna endast åtkomst till klientappen och att ge nyckelvärdet för regeln fullständig åtkomst till appens serverdel.
Appar bör inte bädda in nyckelvärdet i Windows Store-klientappar. låt klientappen i stället hämta den från appens serverdel vid start.
Nyckeln med lyssnaråtkomst gör att en klientapp kan registrera sig för valfri tagg. Om din app måste begränsa registreringar till specifika taggar till specifika klienter (till exempel när taggar representerar användar-ID:t) måste appens serverdel utföra registreringarna. Mer information finns i Registreringshantering. Observera att klientappen på det här sättet inte har direkt åtkomst till Notification Hubs.
Säkerhetsanspråk
På samma sätt som andra entiteter tillåts Notification Hub-åtgärder för tre säkerhetsanspråk: Lyssna, Skicka och Hantera.
Anspråk | beskrivning | Åtgärder som tillåts |
---|---|---|
Lyssna | Skapa/uppdatera, läsa och ta bort enskilda registreringar | Skapa/uppdatera registrering Läsregistrering Läs alla registreringar för ett handtag Ta bort registrering |
Skicka | Skicka meddelanden till Notification Hub | Skicka meddelande |
Hantera | CRUD:er på Notification Hubs (inklusive uppdatering av PNS-autentiseringsuppgifter och säkerhetsnycklar) och läsregistreringar baserat på taggar | Skapa/uppdatera/läsa/ta bort hubbar Läsa registreringar efter tagg |
Notification Hubs accepterar SAS-token som genererats med delade nycklar som konfigurerats direkt på hubben.
Det går inte att skicka ett meddelande till mer än ett namnområde. Namnområden är logiska containrar för Notification Hubs och ingår inte i att skicka meddelanden.
Använd åtkomstprinciperna på namnområdesnivå (autentiseringsuppgifter) för åtgärder på namnområdesnivå. till exempel: lista hubbar, skapa eller ta bort hubbar osv. Endast åtkomstprinciperna på hubbnivå låter dig skicka meddelanden.
SAS-token för åtkomstprinciper
Om du vill skapa ett nytt säkerhetsanspråk eller visa befintliga SAS-nycklar gör du följande:
- Logga in på Azure-portalen.
- Välj Alla resurser.
- Välj namnet på meddelandehubben som du vill skapa anspråket för eller visa SAS-nyckeln för.
- I den vänstra menyn väljer du Åtkomstprinciper.
- Välj Ny princip för att skapa ett nytt säkerhetsanspråk. Ge principen ett namn och välj de behörigheter som du vill bevilja. Välj sedan OK.
- Den fullständiga anslutningssträng (inklusive den nya SAS-nyckeln) visas i fönstret Åtkomstprinciper. Du kan kopiera strängen till Urklipp för senare användning.
Om du vill extrahera SAS-nyckeln från en specifik princip väljer du knappen Kopiera bredvid principen som innehåller den SAS-nyckel som du vill använda. Klistra in det här värdet på en tillfällig plats och kopiera sedan SAS-nyckeldelen av anslutningssträng. I det här exemplet används ett Notification Hubs-namnområde med namnet mytestnamespace1 och en princip med namnet policy2. SAS-nyckeln är värdet nära slutet av strängen, som anges av SharedAccessKey:
Endpoint=sb://mytestnamespace1.servicebus.windows.net/;SharedAccessKeyName=policy2;SharedAccessKey=<SAS key value here>