Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure SignalR Service ondersteunt Microsoft Entra-id voor het autoriseren van aanvragen met Microsoft Entra-toepassingen.
In dit artikel wordt uitgelegd hoe u uw resource en code instelt om aanvragen voor de resource te verifiëren met behulp van een Microsoft Entra-toepassing.
Een sollicitatie in ID Microsoft Entra registreren
De eerste stap is het registreren van een toepassing in Microsoft Entra-id:
Nadat u uw toepassing hebt geregistreerd, kunt u de waarden voor de toepassings-id (client) en map-id (tenant) vinden op de overzichtspagina van de toepassing. Deze GUID's kunnen handig zijn in de volgende stappen.
Referenties toevoegen
Nadat u een app hebt geregistreerd, kunt u certificaten, clientgeheimen (een tekenreeks) of federatieve identiteitsreferenties toevoegen als referenties aan de registratie van uw vertrouwelijke client-app. Met referenties kan uw toepassing zichzelf authenticeren, zonder dat er tijdens uitvoeringstijd interactie van een gebruiker nodig is. Deze worden gebruikt door vertrouwelijke client-applicaties die toegang hebben tot een web-API.
Roltoewijzingen toevoegen in Azure Portal
In de volgende stappen wordt beschreven hoe u een SignalR App Server-rol toewijst aan een service-principal of een beheerde identiteit voor een Azure SignalR Service-resource. Raadpleeg Azure-rollen toewijzen met de Azure Portal voor informatie over het toewijzen van rollen.
Notitie
U kunt een rol toewijzen aan ieder gewenst bereik, waaronder een beheergroep, een abonnement, een resourcegroep of een enkele resource. Lees Bereik voor Azure RBAC begrijpen voor meer informatie over bereik.
Ga in Azure Portal naar uw Azure SignalR Service-resource.
Selecteer in het linkerdeelvenster de optie Toegangscontrole (IAM).
Selecteer Toevoegen>Roltoewijzing toevoegen.
Selecteer op het tabblad Rol de optie SignalR-appserver. Andere ingebouwde rollen van Azure SignalR Service zijn afhankelijk van uw scenario.
Rol Beschrijving Gebruiksituatie SignalR-appserver Toegang tot de API's die serververbindingen maken en sleutels genereren. Meestal gebruikt voor een app-server met een Azure SignalR-resource die wordt uitgevoerd in de standaardmodus. SignalR-service-eigenaar Volledige toegang tot alle gegevensvlak-API's, waaronder REST API's, de API's die serververbindingen maken en de API's die sleutels/tokens genereren. Wordt gebruikt voor een onderhandelingsserver met een Azure SignalR Service-resource die wordt uitgevoerd in de serverloze modus. Hiervoor zijn zowel REST API-machtigingen als verificatie-API-machtigingen vereist. SignalR REST API-eigenaar Volledige toegang tot REST API's voor het gegevensvlak. Wordt gebruikt voor de Azure SignalR Management SDK voor het beheren van verbindingen en groepen, maar maakt geen serververbindingen of verwerkt onderhandelingsaanvragen. SignalR REST API Reader Alleen-lezentoegang tot REST API's van het gegevensvlak. Te gebruiken wanneer je een bewakingsprogramma schrijft dat read-only REST-API's aanroept. Kies Volgende.
Voor Microsoft Entra-toepassing:
- Selecteer in de rij Toegang toewijzen de optie Gebruiker, groep of service-principal.
- In de rij Leden, kies selecteer leden en kies vervolgens de identiteit in het pop-upvenster.
Voor beheerde identiteit voor Azure-resources:
- In de rij Toegang toewijzen selecteer Beheerde identiteit.
- In de rij Leden, kies Selecteer leden en kies vervolgens de toepassing in het pop-upvenster.
Kies Volgende.
Controleer uw opdracht en selecteer Vervolgens Beoordelen en toewijzen om de roltoewijzing te bevestigen.
Belangrijk
Het kan tot 30 minuten duren voordat nieuwe roltoewijzingen worden doorgevoerd.
Zie voor meer informatie over het toewijzen en beheren van Azure-rollen:
- Azure-rollen toewijzen met de Azure-portal
- Azure-rollen toewijzen met behulp van de REST API
- Azure-rollen toewijzen met Azure PowerShell
- Azure-rollen toewijzen met de Azure CLI
- Azure-rollen toewijzen met behulp van Azure Resource Manager-sjablonen
Server-SDK voor Microsoft.Azure.SignalR-app configureren voor C#
Azure SignalR-server-SDK voor C#
De Azure SignalR-server-SDK maakt gebruik van de Azure.Identity-bibliotheek om tokens te genereren voor het maken van verbinding met resources. Klik hier om gedetailleerde gebruiksgegevens te verkennen.
Notitie
De tenantId moet overeenkomen met de tenant-id van de tenant waarin uw SignalR-resource zich bevindt.
Microsoft Entra-toepassing gebruiken met certificaat
services.AddSignalR().AddAzureSignalR(option =>
{
var credential = new ClientCertificateCredential("tenantId", "clientId", "path-to-cert");
option.Endpoints = [
new ServiceEndpoint(new Uri(), "https://<resource>.service.signalr.net"), credential);
];
});
Microsoft Entra-toepassing gebruiken met clientgeheim
services.AddSignalR().AddAzureSignalR(option =>
{
var credential = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
option.Endpoints = [
new ServiceEndpoint(new Uri(), "https://<resource>.service.signalr.net"), credential);
];
});
Microsoft Entra-toepassing gebruiken met federatieve identiteit
In het geval dat uw organisatie het gebruik van clientgeheim/certificaat heeft uitgeschakeld, kunt u de toepassing configureren om een beheerde identiteit voor verificatie te vertrouwen.
Zie Een toepassing configureren om een beheerde identiteit (preview) te vertrouwen voor meer informatie.
Notitie
Een toepassing configureren om een beheerde identiteit te vertrouwen, is een preview-functie.
services.AddSignalR().AddAzureSignalR(option =>
{
var msiCredential = new ManagedIdentityCredential("msiClientId");
var credential = new ClientAssertionCredential("tenantId", "appClientId", async (ctoken) =>
{
// Entra ID US Government: api://AzureADTokenExchangeUSGov
// Entra ID China operated by 21Vianet: api://AzureADTokenExchangeChina
var request = new TokenRequestContext([$"api://AzureADTokenExchange/.default"]);
var response = await msiCredential.GetTokenAsync(request, ctoken).ConfigureAwait(false);
return response.Token;
});
option.Endpoints = [
new ServiceEndpoint(new Uri(), "https://<resource>.service.signalr.net"), credential);
];
});
Met deze referentie wordt de door de gebruiker toegewezen beheerde identiteit gebruikt om een clientAssertion
te genereren en te gebruiken om te wisselen voor een clientToken
voor verificatie.
De appClientId
en tenantId
moeten de bedrijfstoepassing zijn die u hebt ingericht in de tenant van SignalR-resource.
Meerdere eindpunten gebruiken
Referenties kunnen verschillen voor verschillende eindpunten.
In dit voorbeeld maakt de Azure SignalR SDK verbinding met resource1
het clientgeheim en maakt verbinding met resource2
het certificaat.
services.AddSignalR().AddAzureSignalR(option =>
{
var credential1 = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
var credential2 = new ClientCertificateCredential("tenantId", "clientId", "path-to-cert");
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), credential1),
new ServiceEndpoint(new Uri("https://<resource2>.service.signalr.net"), credential2),
};
});
Meer voorbeelden vindt u in deze voorbeeldkoppeling
Azure SignalR Service-bindingen in Azure Functions
Azure SignalR Service-bindingen in Azure Functions gebruiken toepassingsinstellingen in de portal of local.settings.json lokaal om Microsoft Entra-toepassingsidentiteiten te configureren voor toegang tot uw Azure SignalR Service-resources.
Eerst moet u de service-URI van Azure SignalR Service opgeven. De sleutel van de service-URI is serviceUri
. Het begint met een verbindingsnaamvoorvoegsel (dat standaard wordt gebruikt AzureSignalRConnectionString
) en een scheidingsteken. Het scheidingsteken is een onderstrepingsteken (__
) in de Azure portal en een dubbele punt (:
) in het local.settings.json-bestand. U kunt de verbindingsnaam aanpassen met behulp van de bindingseigenschap ConnectionStringSetting
. Lees verder om het voorbeeld te vinden.
Vervolgens kiest u of u uw Microsoft Entra-toepassingsidentiteit wilt configureren in vooraf gedefinieerde omgevingsvariabelen of in SignalR-opgegeven variabelen.
Een identiteit configureren in vooraf gedefinieerde omgevingsvariabelen
Zie Omgevingsvariabelen voor de lijst met vooraf gedefinieerde omgevingsvariabelen. Wanneer u meerdere services hebt, wordt u aangeraden dezelfde toepassingsidentiteit te gebruiken, zodat u de identiteit niet hoeft te configureren voor elke service. Andere services kunnen ook gebruikmaken van deze omgevingsvariabelen, op basis van de instellingen van deze services.
Als u bijvoorbeeld clientgeheimreferenties wilt gebruiken, configureert u de identiteit als volgt in het bestand local.settings.json:
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"AZURE_CLIENT_ID": "...",
"AZURE_CLIENT_SECRET": "...",
"AZURE_TENANT_ID": "..."
}
}
Voeg in Azure Portal als volgt instellingen toe:
<CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...
Een identiteit configureren in SignalR-opgegeven variabelen
SignalR-opgegeven variabelen delen hetzelfde sleutelvoorvoegsel met de serviceUri
sleutel. Hier volgt de lijst met variabelen die u kunt gebruiken:
clientId
clientSecret
tenantId
Hier volgen de voorbeelden voor het gebruik van clientgeheimreferenties in het local.settings.json-bestand :
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"<CONNECTION_NAME_PREFIX>:clientId": "...",
"<CONNECTION_NAME_PREFIX>:clientSecret": "...",
"<CONNECTION_NAME_PREFIX>:tenantId": "..."
}
}
Voeg in Azure Portal als volgt instellingen toe:
<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...
Volgende stappen
Zie de volgende gerelateerde artikelen: