Auktorisera begäranden till Azure SignalR Service-resurser med Microsoft Entra-program
Azure SignalR Service stöder Microsoft Entra-ID för auktorisering av begäranden från Microsoft Entra-program.
Den här artikeln visar hur du konfigurerar din Azure SignalR Service-resurs och -koder för att auktorisera begäranden till resursen från ett Microsoft Entra-program.
Registrera en app
Det första steget är att registrera ett Microsoft Entra-program:
I Azure Portal söker du efter och väljer Microsoft Entra-ID.
Under Hantera, välj Appregistreringar.
Välj Ny registrering. Fönstret Registrera ett program öppnas.
Som Namn anger du ett visningsnamn för ditt program.
Välj Registrera för att bekräfta registreringen.
När du har registrerat programmet kan du hitta värdena för program-ID och katalog-ID (klientorganisation) på programmets översiktssida. Dessa GUID:er kan vara användbara i följande steg.
Mer information om hur du registrerar ett program finns i Snabbstart: Registrera ett program med Microsofts identitetsplattform.
Lägg till autentiseringsuppgifter
Du kan lägga till både certifikat och klienthemligheter (en sträng) som autentiseringsuppgifter i din konfidentiella klientappregistrering.
Klienthemlighet
Programmet kräver en klienthemlighet för att bevisa sin identitet när den begär en token. Följ dessa steg för att skapa en klienthemlighet:
Under Hantera väljer du Certifikat och hemligheter.
På fliken Klienthemligheter väljer du Ny klienthemlighet.
Ange en beskrivning för klienthemligheten och välj en förfallotid.
Kopiera värdet för klienthemligheten och klistra sedan in den på en säker plats.
Kommentar
Hemligheten visas bara en gång.
Certifikat
Du kan ladda upp ett certifikat i stället för att skapa en klienthemlighet.
Mer information om hur du lägger till autentiseringsuppgifter finns i Lägga till autentiseringsuppgifter.
Lägg till rolltilldelningar i Azure Portal
Följande steg beskriver hur du tilldelar en SignalR App Server-roll till ett tjänsthuvudnamn (program) över en Azure SignalR Service-resurs. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.
Kommentar
En roll kan tilldelas till valfritt omfång, inklusive hanteringsgrupp, prenumeration, resursgrupp eller enskild resurs. Mer information om omfång finns i Förstå omfånget för Azure RBAC.
I Azure Portal går du till din Azure SignalR Service-resurs.
Välj Åtkomstkontroll (IAM) .
Välj Lägg till>Lägg till rolltilldelning.
På fliken Roll väljer du SignalR App Server.
På fliken Medlemmar väljer du Användare, grupp eller tjänstens huvudnamn och väljer sedan Välj medlemmar.
Sök efter och välj det program som du vill tilldela rollen till.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Viktigt!
Azure-rolltilldelningar kan ta upp till 30 minuter att sprida.
Mer information om hur du tilldelar och hanterar Azure-roller finns i följande artiklar:
- Tilldela Azure-roller med hjälp av Azure-portalen
- Tilldela Azure-roller med hjälp av REST-API:et
- Tilldela Azure-roller med hjälp av Azure PowerShell
- Tilldela Azure-roller med hjälp av Azure CLI
- Tilldela Azure-roller med hjälp av Azure Resource Manager-mallar
Konfigurera din app
Appserver
Det bästa sättet är att konfigurera identitet och autentiseringsuppgifter i miljövariablerna:
Olika | beskrivning |
---|---|
AZURE_TENANT_ID |
Klient-ID:t för Microsoft Entra. |
AZURE_CLIENT_ID |
Klientens (programmets) ID för en appregistrering i klientorganisationen. |
AZURE_CLIENT_SECRET |
En klienthemlighet som genererades för appregistreringen. |
AZURE_CLIENT_CERTIFICATE_PATH |
En sökväg till ett certifikat och ett privat nyckelpar i PEM- eller PFX-format, som kan autentisera appregistreringen. |
AZURE_USERNAME |
Användarnamnet, även kallat UPN (User Principal Name) för ett Microsoft Entra-användarkonto. |
AZURE_PASSWORD |
Lösenordet för Microsoft Entra-användarkontot. Ett lösenord stöds inte för konton med multifaktorautentisering aktiverat. |
Du kan använda antingen DefaultAzureCredential eller EnvironmentCredential för att konfigurera dina Azure SignalR Service-slutpunkter. Här är koden för DefaultAzureCredential
:
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new DefaultAzureCredential())
};
});
Här är koden för EnvironmentCredential
:
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new EnvironmentCredential())
};
});
Mer information om hur DefaultAzureCredential
fungerar finns i Klassen DefaultAzureCredential.
Använda slutpunktsspecifika autentiseringsuppgifter
I din organisation kanske du vill använda olika autentiseringsuppgifter för olika slutpunkter.
I det här scenariot kan du använda ClientSecretCredential eller ClientCertificateCredential:
services.AddSignalR().AddAzureSignalR(option =>
{
var credential1 = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
var credential2 = new ClientCertificateCredential("tenantId", "clientId", "pathToCert");
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), credential1),
new ServiceEndpoint(new Uri("https://<resource2>.service.signalr.net"), credential2),
};
});
Azure SignalR Service-bindningar i Azure Functions
Azure SignalR Service-bindningar i Azure Functions använder programinställningar i portalen eller local.settings.json lokalt för att konfigurera Microsoft Entra-programidentiteter för åtkomst till dina Azure SignalR Service-resurser.
Först måste du ange tjänst-URI för Azure SignalR Service. Nyckeln för tjänstens URI är serviceUri
. Det börjar med ett anslutningsnamnprefix (som standard är AzureSignalRConnectionString
) och en avgränsare. Avgränsaren är ett understreck (__
) i Azure Portal och ett kolon (:
) i filen local.settings.json. Du kan anpassa anslutningsnamnet med hjälp av bindningsegenskapen ConnectionStringSetting
. Fortsätt att läsa för att hitta exemplet.
Sedan väljer du om du vill konfigurera din Microsoft Entra-programidentitet i fördefinierade miljövariabler eller i SignalR-angivna variabler.
Konfigurera en identitet i fördefinierade miljövariabler
Se Miljövariabler för listan över fördefinierade miljövariabler. När du har flera tjänster rekommenderar vi att du använder samma programidentitet så att du inte behöver konfigurera identiteten för varje tjänst. Andra tjänster kan också använda dessa miljövariabler baserat på inställningarna för dessa tjänster.
Om du till exempel vill använda autentiseringsuppgifter för klienthemligheter konfigurerar du identiteten enligt följande i filen local.settings.json :
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"AZURE_CLIENT_ID": "...",
"AZURE_CLIENT_SECRET": "...",
"AZURE_TENANT_ID": "..."
}
}
Lägg till inställningar på följande sätt i Azure Portal:
<CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...
Konfigurera en identitet i SignalR-angivna variabler
SignalR-angivna variabler delar samma nyckelprefix med serviceUri
nyckeln. Här är listan över variabler som du kan använda:
clientId
clientSecret
tenantId
Här följer exempel på hur du använder autentiseringsuppgifter för klienthemligheter i local.settings.json-filen:
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"<CONNECTION_NAME_PREFIX>:clientId": "...",
"<CONNECTION_NAME_PREFIX>:clientSecret": "...",
"<CONNECTION_NAME_PREFIX>:tenantId": "..."
}
}
Lägg till inställningar på följande sätt i Azure Portal:
<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...
Nästa steg
Se följande relaterade artiklar: