Share via


Auktorisera åtkomst med 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äkerhetsobjektet anropar SIGNALR-autentiserings-API:et för att hämta en tillfällig åtkomstnyckel.
  3. Säkerhetsobjektet signerar en klienttoken med den tillfälliga åtkomstnyckeln för klientanslutningar under förhandling.
  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.

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

Du kan behöva bestämma omfånget för åtkomst som säkerhetsobjektet ska ha innan du tilldelar någon Azure RBAC-roll till ett säkerhetsobjekt. Vi rekommenderar att du endast beviljar det minsta möjliga omfånget. Azure RBAC-roller som definierats i ett bredare omfång ärvs av resurserna under dem.

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

Scope Description
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 Description Användningsfall
SignalR App Server Åtkomst till API:et för skapande av WebSocket-anslutningar och API:er för autentisering. Används oftast för en appserver.
SignalR Service-ägare Fullständig åtkomst till alla API:er för dataplan, inklusive REST-API:er, API:et för skapande av WebSocket-anslutningar och API:er för autentisering. Använd för serverlöst läge för auktorisering med Microsoft Entra-ID 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. Används ofta för att skriva ett verktyg som hanterar anslutningar och grupper, men som inte upprättar anslutningar eller anropar API:er för autentisering.
SignalR REST API-läsare Skrivskyddad åtkomst till REST-API:er för dataplan. Används ofta för att skriva ett övervakningsverktyg som endast anropar Azure SignalR Service-dataplans skrivskyddade REST-API:er.

Nästa steg