Share via


Notification Hubs-säkerhet

Översikt

Det här avsnittet beskriver 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 lyssnarrättigheter (som klientappen använder) och en med alla rättigheter (som appens serverdel använder):

  • DefaultListenSharedAccessSignature: beviljar endast lyssningsbehörighet .
  • DefaultFullSharedAccessSignature: ger 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 meddelandehubb att ge huvudvä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 för specifika klienter (till exempel när taggar representerar användar-ID:er) 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.

Begär Beskrivning Tillåtna åtgärder
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 genereras med delade nycklar som konfigurerats direkt på hubben.

Det går inte att skicka ett meddelande till fler än ett namnområde. Namnområden är logiska containrar för Notification Hubs och är inte inblandade i att skicka meddelanden.

Använd åtkomstprinciper på namnområdesnivå (autentiseringsuppgifter) för åtgärder på namnområdesnivå. 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:

  1. Logga in på Azure-portalen.
  2. Välj Alla resurser.
  3. Välj namnet på meddelandehubben som du vill skapa anspråket för eller visa SAS-nyckeln för.
  4. I den vänstra menyn väljer du Åtkomstprinciper.
  5. 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.
  6. Den fullständiga anslutningssträngen (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 i anslutningssträngen. 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>

Hämta SAS-nycklar

Nästa steg