Delen via


Aanvragen voor Azure SignalR Service-resources autoriseren met door Microsoft Entra beheerde identiteiten

Azure SignalR Service ondersteunt Microsoft Entra-id voor het autoriseren van aanvragen van door Microsoft Entra beheerde identiteiten.

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:

  1. Open de instellingen van uw app in Azure Portal onder de groep Instellingen in het linkernavigatiedeelvenster.

  2. Selecteer Identiteit.

  3. Schakel op het tabblad Door systeem toegewezen status over naar Aan. Klik op Opslaan.

    Schermopname van waar u de status wilt overschakelen naar Aan en selecteer Vervolgens Opslaan.

Zie Beheerde identiteiten gebruiken voor App Service en Azure Functions voor meer informatie over het configureren van beheerde identiteiten op andere manieren voor Azure-app Service en Azure Functions.

Zie Beheerde identiteiten configureren op virtuele Azure-machines (VM's) voor meer informatie over het configureren van beheerde identiteiten op een Virtuele Azure-machine

Roltoewijzingen toevoegen in Azure Portal

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.

  1. Ga in Azure Portal naar uw Azure SignalR Service-resource.

  2. Klik op Toegangsbeheer (IAM) .

  3. Selecteer Toevoegen>Roltoewijzing toevoegen.

    Schermopname van de pagina voor toegangsbeheer en selecties voor het toevoegen van een roltoewijzing.

  4. Selecteer op het tabblad Rol de optie SignalR-appserver.

  5. Selecteer beheerde identiteit op het tabblad Leden en kies Leden selecteren.

  6. Selecteer uw Azure-abonnement.

  7. Selecteer Door het systeem toegewezen beheerde identiteit, zoek naar een virtuele machine waaraan u de rol wilt toewijzen en selecteer deze.

  8. 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:

Uw app configureren

App-server

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.

services.AddSignalR().AddAzureSignalR("Endpoint=https://<resource1>.service.signalr.net;AuthType=azure.msi;Version=1.0;");

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

Verwijder Azure__SignalR__ConnectionString of er op deze manier omgevingsvariabelen waren. Azure__SignalR__ConnectionString wordt gebruikt om standaard ServiceEndpoint te bouwen met de eerste prioriteit en kan ertoe leiden dat uw App Server onverwacht toegangssleutel gebruikt.

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.

services.AddSignalR().AddAzureSignalR("Endpoint=https://<resource1>.service.signalr.net;AuthType=azure.msi;ClientId=<your-user-identity-client-id>;Version=1.0;");

Of bouw ServiceEndpoint met ManagedIdentityCredential.

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.

<CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net

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.

{
  "Values": {
    "<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net"
  }
}

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:

<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__credential = managedidentity

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:

<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__credential = managedidentity
<CONNECTION_NAME_PREFIX>__clientId = <CLIENT_ID>

Volgende stappen

Zie de volgende gerelateerde artikelen: