Sdílet prostřednictvím


Autorizace požadavků na prostředky služby Azure SignalR Service pomocí spravovaných identit Microsoft Entra

Služba Azure SignalR podporuje ID Microsoft Entra pro autorizaci požadavků ze spravovaných identit Microsoft Entra.

Tento článek ukazuje, jak nakonfigurovat prostředek a kód služby Azure SignalR tak, aby autorizoval požadavky na prostředek ze spravované identity.

Konfigurace spravovaných identit

Prvním krokem je konfigurace spravovaných identit.

V tomto příkladu se dozvíte, jak nakonfigurovat spravovanou identitu přiřazenou systémem ve službě App Service pomocí webu Azure Portal:

  1. Přejděte k nastavení aplikace na webu Azure Portal ve skupině Nastavení v levém navigačním podokně.

  2. Vyberte Identita.

  3. Na kartě Přiřazený systém přepněte stav na Zapnuto. Klikněte na Uložit.

    Snímek obrazovky, který ukazuje, kam přepnout stav na Zapnuto, a pak vyberte Uložit.

Další informace o konfiguraci spravovaných identit jinými způsoby pro službu Aplikace Azure Service a Azure Functions najdete v tématu Použití spravovaných identit pro App Service a Azure Functions.

Další informace o konfiguraci spravovaných identit na virtuálním počítači Azure najdete v tématu Konfigurace spravovaných identit na virtuálních počítačích Azure.

Přidání přiřazení rolí na webu Azure Portal

Následující kroky popisují, jak přiřadit roli Serveru aplikací SignalR k identitě přiřazené systémem přes prostředek služby Azure SignalR. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

Poznámka:

Roli je možné přiřadit k libovolnému oboru, včetně skupiny pro správu, předplatného, skupiny prostředků nebo jednoho prostředku. Další informace o oboru najdete v tématu Vysvětlení oboru pro Azure RBAC.

  1. Na webu Azure Portal přejděte k prostředku služby Azure SignalR.

  2. Vyberte Řízení přístupu (IAM) .

  3. Vyberte Přidat>Přidat přiřazení role.

    Snímek obrazovky znázorňující stránku pro řízení přístupu a výběry pro přidání přiřazení role

  4. Na kartě Role vyberte SignalR App Server.

  5. Na kartě Členové vyberte Spravovaná identita a pak zvolte Vybrat členy.

  6. Vyberte své předplatné Azure.

  7. Vyberte spravovanou identitu přiřazenou systémem, vyhledejte virtuální počítač, ke kterému chcete roli přiřadit, a pak ji vyberte.

  8. Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.

Důležité

Rozšíření přiřazení rolí Azure může trvat až 30 minut.

Další informace o přiřazování a správě rolí Azure najdete v těchto článcích:

Konfigurace aplikace

Aplikační server

Použití identity přiřazené systémem

Ke konfiguraci koncových bodů služby Azure SignalR můžete použít defaultAzureCredential nebo ManagedIdentityCredential . Osvědčeným postupem je použít ManagedIdentityCredential přímo.

Spravovaná identita přiřazená systémem se používá ve výchozím nastavení, ale ujistěte se, že při použití DefaultAzureCredentialnenakonfigurujete žádné proměnné prostředí, které environmentCredential zachovají . Jinak se služba Azure SignalR vrátí k použití EnvironmentCredential k provedení požadavku, což obvykle vede k Unauthorized odpovědi.

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), new ManagedIdentityCredential()),
    };
});

Použití identity přiřazené uživatelem

Při vytváření objektu ManagedIdentityCredential zadejteClientId.

Důležité

Použijte ID klienta, nikoli ID objektu (objektu), i když jsou oba identifikátory GUID.

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        var clientId = "<your identity client id>";
        new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), new ManagedIdentityCredential(clientId)),
    };

Vazby služby Azure SignalR Ve službě Azure Functions

Vazby služby Azure SignalR ve službě Azure Functions používají nastavení aplikace na portálu nebo local.settings.json místně ke konfiguraci spravované identity pro přístup k prostředkům služby Azure SignalR.

Ke konfiguraci identity možná budete potřebovat skupinu párů klíč/hodnota. Klíče všech párů klíč/hodnota musí začínat předponou názvu připojení (která má výchozí hodnotuAzureSignalRConnectionString) a oddělovačem. Oddělovač je podtržítko (__) na portálu a dvojtečka (:) místně. Předponu můžete přizpůsobit pomocí vlastnosti ConnectionStringSettingvazby .

Použití identity přiřazené systémem

Pokud nakonfigurujete pouze identifikátor URI služby, použijete DefaultAzureCredential třídu. Tato třída je užitečná, když chcete sdílet stejnou konfiguraci v azure a místních vývojových prostředích. Informace o tom, jak to funguje, najdete v tématu DefaultAzureCredential.

Na webu Azure Portal pomocí následujícího příkladu nakonfigurujte DefaultAzureCredential. Pokud žádnou z těchto proměnných prostředí nenakonfigurujete, použije se k ověřování identita přiřazená systémem.

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

Tady je ukázka DefaultAzureCredential konfigurace v souboru local.settings.json . V místním oboru neexistuje žádná spravovaná identita. Ověřování prostřednictvím sady Visual Studio, Azure CLI a účtů Azure PowerShellu se pokouší v pořadí.

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

Pokud chcete použít identitu přiřazenou systémem nezávisle a bez vlivu jiných proměnných prostředí, nastavte credential klíč s předponou názvu připojení na managedidentity. Tady je ukázka nastavení aplikace:

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

Použití identity přiřazené uživatelem

Pokud chcete použít identitu přiřazenou uživatelem, musíte kromě klíčů přiřadit clientId také serviceUri předponu názvu připojení a credential klíče. Tady je ukázka nastavení aplikace:

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

Další kroky

Projděte si následující související články: