Dela via


Microsoft Entra ID för Azure SignalR Service

Azure SignalR Service stöder Microsoft Entra-ID för att auktorisera begäranden till dess resurser. Med Microsoft Entra-ID kan du använda rollbaserad åtkomstkontroll (RBAC) för att bevilja behörigheter till ett säkerhetsobjekt. Ett säkerhetsobjekt är en användar-/resursgrupp, ett program eller ett huvudnamn för tjänsten, till exempel systemtilldelade identiteter och användartilldelade identiteter.

Microsoft Entra-ID autentiserar säkerhetsobjektet och returnerar en OAuth 2.0-token. Token används sedan för att auktorisera en begäran mot Azure SignalR Service-resursen.

Att auktorisera begäranden mot Azure SignalR Service med hjälp av Microsoft Entra-ID ger överlägsen säkerhet och användarvänlighet jämfört med åtkomstnyckelauktorisering. Vi rekommenderar starkt att du använder Microsoft Entra-ID för att auktorisera när det är möjligt, eftersom det garanterar åtkomst med minsta möjliga behörighet.

Viktigt!

Om du inaktiverar lokal autentisering kan det få följande konsekvenser:

  • Den aktuella uppsättningen åtkomstnycklar tas bort permanent.
  • Token som signerats med den aktuella uppsättningen åtkomstnycklar blir otillgängliga.

Översikt över Microsoft Entra ID

När ett säkerhetsobjekt försöker komma åt en Azure SignalR Service-resurs måste begäran auktoriseras. Att använda Microsoft Entra-ID för att få åtkomst till en resurs kräver två steg:

  1. Microsoft Entra-ID autentiserar säkerhetsobjektet och returnerar sedan en OAuth 2.0-token.
  2. Token skickas som en del av en begäran till Azure SignalR Service-resursen för auktorisering av begäran.

Autentisering på klientsidan med Microsoft Entra-ID

När du använder en åtkomstnyckel delas nyckeln mellan appservern (eller funktionsappen) och Azure SignalR Service-resursen. Azure SignalR Service autentiserar klientanslutningsbegäran med hjälp av den delade nyckeln.

När du använder Microsoft Entra-ID finns det ingen delad nyckel. I stället använder Azure SignalR Service en tillfällig åtkomstnyckel för signeringstoken som används i klientanslutningar. Arbetsflödet innehåller fyra steg:

  1. Säkerhetsobjektet kräver en OAuth 2.0-token från Microsoft Entra-ID för att autentisera sig själv.
  2. Säkerhetsprincipalen anropar SignalR-autentiserings-API:et för att hämta en tillfällig åtkomstnyckel.
  3. Säkerhetsprincipalen signerar en klienttoken med den tillfälliga åtkomstnyckeln för klientanslutningar under förhandlingen.
  4. Klienten använder klienttoken för att ansluta till Azure SignalR Service-resurser.

Den tillfälliga åtkomstnyckeln upphör att gälla om 90 minuter. Vi rekommenderar att du får en ny och roterar ut den gamla en gång i timmen.

Arbetsflödet är inbyggt i Azure SignalR Service SDK för appservrar.

Åtkomst mellan klientorganisationer när du använder Microsoft Entra-ID

I vissa fall kanske servern och Azure SignalR-resursen inte finns i samma klientorganisation på grund av säkerhetsproblem.

Ett program med flera klienter kan hjälpa dig i det här scenariot.

Om du redan har registrerat en app för en klientorganisation, se hur du konverterar din app för en klientorganisation till en app för flera klientorganisationer.

När du har registrerat programmet för flera klientorganisationer i tenantAbör du etablera det som ett företagsprogram i .tenantB

Skapa ett företagsprogram från ett program med flera klientorganisationer i Microsoft Entra-ID

Programmet som registrerats i ditt tenantA och företagsprogrammet som etablerats i din tenantB resurs har samma program-ID (klient-ID).

Tilldela Azure-roller för åtkomsträttigheter

Microsoft Entra ID auktoriserar åtkomsträttigheter till skyddade resurser via Azure RBAC. Azure SignalR Service definierar en uppsättning inbyggda Azure-roller som omfattar vanliga uppsättningar med behörigheter för åtkomst till Azure SignalR Service-resurser. Du kan också definiera anpassade roller för åtkomst till Azure SignalR Service-resurser.

Resursomfång

Innan du tilldelar Azure RBAC-roller till en säkerhetsprincip är det viktigt att definiera vilken åtkomstomfattning de ska ha. Vi rekommenderar att du beviljar det mest begränsade omfång som krävs för att minimera onödiga behörigheter. Tänk på att Azure RBAC-roller som tilldelats ett högre eller bredare omfång automatiskt ärvs av de resurser som är kapslade inom det omfånget.

Du kan begränsa åtkomsten till Azure SignalR Service-resurser på följande nivåer, från och med det smalaste omfånget.

Scope beskrivning
Enskild resurs Gäller endast för målresursen.
Resursgrupp Gäller för alla resurser i en resursgrupp.
Prenumeration Gäller för alla resurser i en prenumeration.
Hanteringsgrupp Gäller för alla resurser i prenumerationerna som ingår i en hanteringsgrupp.

Inbyggda Azure-roller för Azure SignalR Service-resurser

Roll beskrivning Användningsfall
SignalR App Server Åtkomst till skapande av serveranslutning och nyckelgenererings-API:er. Oftast används för appservern med Azure SignalR-resursen som körs i standardläge.
SignalR Service-ägare Fullständig åtkomst till alla API:er för dataplan, inklusive REST-API:er, skapande av serveranslutning och API:er för nyckel-/tokengenerering. För förhandlingsservern med en Azure SignalR-resurs som körs i serverlöst läge, eftersom det kräver både REST API-behörigheter och autentiserings-API-behörigheter.
SignalR REST API-ägare Fullständig åtkomst till REST-API:er för dataplanet. För att använda Azure SignalR Management SDK för att hantera anslutningar och grupper, men INTE upprätta serveranslutningar eller hantera förhandlingsbegäranden.
SignalR REST API-läsare Skrivskyddad åtkomst till REST-API:er för dataplan. Använd det när du skriver ett övervakningsverktyg som anropar skrivskyddade REST-API:er.

Nästa steg