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:
- Microsoft Entra-ID autentiserar säkerhetsobjektet och returnerar sedan en OAuth 2.0-token.
- 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:
- Säkerhetsobjektet kräver en OAuth 2.0-token från Microsoft Entra-ID för att autentisera sig själv.
- Säkerhetsobjektet anropar SIGNALR-autentiserings-API:et för att hämta en tillfällig åtkomstnyckel.
- Säkerhetsobjektet signerar en klienttoken med den tillfälliga åtkomstnyckeln för klientanslutningar under förhandling.
- 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 | 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 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
Information om hur du skapar ett Azure-program och använder Microsoft Entra-auktorisering finns i Auktorisera begäranden till Azure SignalR Service-resurser med Microsoft Entra-program.
Information om hur du konfigurerar en hanterad identitet och använder Microsoft Entra-auktorisering finns i Auktorisera begäranden till Azure SignalR Service-resurser med Microsoft Entra-hanterade identiteter.
Mer information om roller och rolltilldelningar finns i Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)?.
Information om hur du skapar anpassade roller finns i Steg för att skapa en anpassad roll.
Information om hur du endast använder Microsoft Entra-autentisering finns i Inaktivera lokal autentisering.