In dit artikel wordt beschreven hoe u uw Azure SignalR Service-resource en -code configureert voor het autoriseren van aanvragen voor de resource vanuit een beheerde identiteit.
Beheerde identiteiten configureren
De eerste stap is het configureren van beheerde identiteiten.
In dit voorbeeld ziet u hoe u een door het systeem toegewezen beheerde identiteit in een App Service configureert met behulp van Azure Portal:
Open de instellingen van uw app in Azure Portal onder de groep Instellingen in het linkernavigatiedeelvenster.
Selecteer Identiteit.
Schakel op het tabblad Door systeem toegewezen status over naar Aan. Klik op Opslaan.
In de volgende stappen wordt beschreven hoe u een SignalR App Server-rol toewijst aan een door het systeem toegewezen identiteit via een Azure SignalR Service-resource. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.
Notitie
Een rol kan worden toegewezen aan elk bereik, waaronder beheergroep, abonnement, resourcegroep of één resource. Zie Bereik voor Azure RBAC begrijpen voor meer informatie over het bereik.
Ga in Azure Portal naar uw Azure SignalR Service-resource.
Klik op Toegangsbeheer (IAM) .
Selecteer Toevoegen>Roltoewijzing toevoegen.
Selecteer op het tabblad Rol de optie SignalR-appserver.
Selecteer beheerde identiteit op het tabblad Leden en kies Leden selecteren.
Selecteer uw Azure-abonnement.
Selecteer Door het systeem toegewezen beheerde identiteit, zoek naar een virtuele machine waaraan u de rol wilt toewijzen en selecteer deze.
Selecteer op het tabblad Beoordelen en toewijzen de optie Beoordelen en toewijzen om de rol toe te wijzen.
Belangrijk
Het kan tot 30 minuten duren voordat Azure-roltoewijzingen zijn doorgegeven.
Zie de volgende artikelen voor meer informatie over het toewijzen en beheren van Azure-rollen:
Een door het systeem toegewezen identiteit gebruiken
Azure SignalR SDK ondersteunt identiteitsgebaseerde verbindingsreeks. Als de configuratie is ingesteld in de omgevingsvariabelen van App Server, hoeft u App Server niet opnieuw te implementeren, maar hoeft u alleen een configuratiewijziging te wijzigen om te migreren van Toegangssleutel naar MSI. Werk bijvoorbeeld de omgevingsvariabele Azure__SignalR__ConnectionString van uw App Server bij naar Endpoint=https://<resource1>.service.signalr.net;AuthType=azure.msi;Version=1.0;. Of stel deze in DI-code in.
Bovendien kunt u DefaultAzureCredential of ManagedIdentityCredential gebruiken om uw Azure SignalR Service-eindpunten te configureren. De best practice is om rechtstreeks te gebruiken ManagedIdentityCredential .
U ziet dat door het systeem toegewezen beheerde identiteit standaard wordt gebruikt, maar zorg ervoor dat u geen omgevingsvariabelen configureert die EnvironmentCredential behouden blijft als u gebruikt DefaultAzureCredential. Anders valt Azure SignalR Service terug om EnvironmentCredential de aanvraag te doen, wat meestal resulteert in een Unauthorized reactie.
Belangrijk
Als Azure__SignalR__ConnectionString deze zich in uw omgevingsvariabelen bevindt, verwijdert u deze. Als de omgevingsvariabele wordt gevonden, heeft deze prioriteit en wordt gebruikt om de standaardwaarde ServiceEndpointte bouwen, waardoor uw app-server onverwacht toegangssleutel kan gebruiken.
C#
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), new ManagedIdentityCredential()),
};
});
Een door de gebruiker toegewezen identiteit gebruiken
Geef ClientId op tijdens het maken van het ManagedIdentityCredential object.
Belangrijk
Gebruik de client-id, niet de object-id (principal), zelfs als ze beide GUID's zijn.
Gebruik op identiteit gebaseerde verbindingsreeks.
Of bouw ServiceEndpoint met ManagedIdentityCredential.
C#
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
var clientId = "<your-user-identity-client-id>";
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), new ManagedIdentityCredential(clientId)),
};
});
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 een beheerde identiteit te configureren voor toegang tot uw Azure SignalR Service-resources.
Mogelijk hebt u een groep sleutel-waardeparen nodig om een identiteit te configureren. De sleutels van alle sleutel-/waardeparen moeten beginnen met een verbindingsnaamvoorvoegsel (standaard ingesteld op AzureSignalRConnectionString) en een scheidingsteken. Het scheidingsteken is een onderstrepingsteken (__) in de portal en een dubbele punt (:lokaal). U kunt het voorvoegsel aanpassen met behulp van de bindingseigenschap ConnectionStringSetting.
Een door het systeem toegewezen identiteit gebruiken
Als u alleen de service-URI configureert, gebruikt u de DefaultAzureCredential klasse. Deze klasse is handig als u dezelfde configuratie wilt delen in Azure- en lokale ontwikkelomgevingen. Zie DefaultAzureCredential voor meer informatie over hoe het werkt.
Gebruik in Azure Portal het volgende voorbeeld om te configureren DefaultAzureCredential. Als u geen van deze omgevingsvariabelen configureert, wordt de door het systeem toegewezen identiteit gebruikt voor verificatie.
Hier volgt een configuratievoorbeeld van DefaultAzureCredential in het local.settings.json-bestand . Op het lokale bereik is er geen beheerde identiteit. Verificatie via Visual Studio, de Azure CLI en Azure PowerShell-accounts wordt op volgorde geprobeerd.
Als u een door het systeem toegewezen identiteit onafhankelijk en zonder invloed van andere omgevingsvariabelen wilt gebruiken, stelt u de credential sleutel in met het voorvoegsel van de verbindingsnaam.managedidentity Hier volgt een voorbeeld voor toepassingsinstellingen:
Een door de gebruiker toegewezen identiteit gebruiken
Als u een door de gebruiker toegewezen identiteit wilt gebruiken, moet u naast serviceUri en credential sleutels met het voorvoegsel voor de verbindingsnaam toewijzenclientId. Hier volgt een voorbeeld voor toepassingsinstellingen:
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.