Připojovací řetězce ve službě Azure SignalR

Připojovací řetězec obsahuje informace o tom, jak se připojit ke službě Azure SignalR. V tomto článku se dozvíte základy připojovací řetězec a jak ho nakonfigurovat ve vaší aplikaci.

Co je připojovací řetězec

Když se aplikace potřebuje připojit ke službě Azure SignalR, potřebuje následující informace:

  • Koncový bod HTTP instance služby Azure SignalR
  • Způsob ověřování pomocí koncového bodu služby

Takové informace obsahuje připojovací řetězec.

Jak vypadá připojovací řetězec

Připojovací řetězec se skládá z řady párů klíč/hodnota oddělených středníky (;). Řetězec používá rovnítko (=) pro připojení každého klíče a jeho hodnoty. U klíčů se nerozlišuje malá a velká písmena.

Typický připojovací řetězec může vypadat jako v tomto příkladu:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;Version=1.0;

Připojovací řetězec obsahuje:

  • Endpoint=https://<resource_name>.service.signalr.net: Adresa URL koncového bodu prostředku.
  • AccessKey=<access_key>: Klíč pro ověření ve službě. Když v připojovací řetězec zadáte přístupový klíč, sada SDK služby Azure SignalR ji použije k vygenerování tokenu, který služba ověří.
  • Version: Verze připojovací řetězec. Výchozí hodnota je 1.0.

V následující tabulce jsou uvedeny všechny platné názvy párů klíč/hodnota v připojovací řetězec.

Key Popis Povinní účastníci Default value Příklad hodnoty
Endpoint Adresa URL vaší instance služby Azure SignalR. Ano Nelze použít https://foo.service.signalr.net
Port Port, na který naslouchá vaše instance služby Azure SignalR. No 80 nebo 443v závislosti na schématu identifikátoru URI koncového bodu 8080
Version Verze připojovací řetězec. No 1.0 1.0
ClientEndpoint Identifikátor URI reverzního proxy serveru, například Aplikace Azure lication Gateway nebo Azure API Management. No null https://foo.bar
AuthType Typ ověřování. Ve výchozím nastavení služba používá AccessKey k autorizaci požadavků. Nerozlišuje se malá a velká písmena. No null Azure, , azure.msiazure.app

Použití přístupového klíče

Služba používá místní metodu ověřování, pokud AuthType je nastavena na null.

Key Popis Povinní účastníci Default value Příklad hodnoty
AccessKey Řetězec klíče ve formátu Base64 pro vytvoření přístupového tokenu. Ano null ABCDEFGHIJKLMNOPQRSTUVWEXYZ0123456789+=/

Použití ID Microsoft Entra

Služba používá metodu ověřování Microsoft Entra, pokud AuthType je nastavena na azure, azure.appnebo azure.msi.

Key Popis Povinní účastníci Default value Příklad hodnoty
ClientId Identifikátor GUID aplikace Azure nebo identity Azure. No null 00000000-0000-0000-0000-000000000000
TenantId Identifikátor GUID organizace v Microsoft Entra ID. No null 00000000-0000-0000-0000-000000000000
ClientSecret Heslo instance aplikace Azure No null ***********************.****************
ClientCertPath Absolutní cesta souboru klientského certifikátu k instanci aplikace Azure. No null /usr/local/cert/app.cert

Služba používá k vygenerování tokenů Microsoft Entra jinou TokenCredential hodnotu v závislosti na zadaných parametrech:

Jak získat připojovací řetězec

K získání připojovací řetězec můžete použít Azure Portal nebo Azure CLI.

portál Azure

Na webu Azure Portal otevřete prostředek služby Azure SignalR. Karta Klíče zobrazuje dva připojovací řetězec (primární a sekundární) v následujícím formátu:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;Version=1.0;

Azure CLI

az signalr key list -g <resource_group> -n <resource_name>

Připojení pomocí aplikace Microsoft Entra

Aplikaci Microsoft Entra můžete použít k připojení k instanci služby Azure SignalR. Pokud má aplikace správné oprávnění pro přístup ke službě Azure SignalR, nepotřebuje přístupový klíč.

Pokud chcete použít ověřování Microsoft Entra, musíte z připojovací řetězec odebrat AccessKey a přidat AuthType=azure.app. Musíte také zadat přihlašovací údaje vaší aplikace Microsoft Entra, včetně ID klienta, tajného klíče klienta a ID tenanta. Připojovací řetězec vypadá jako v tomto příkladu:

Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.app;ClientId=<client_id>;ClientSecret=<client_secret>;TenantId=<tenant_id>;Version=1.0;

Další informace o ověřování pomocí aplikace Microsoft Entra naleznete v tématu Autorizace požadavků na prostředky SignalR pomocí aplikací Microsoft Entra.

Ověřování pomocí spravované identity

Spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem můžete použít k ověření ve službě Azure SignalR.

Pokud chcete použít identitu přiřazenou systémem, přidejte AuthType=azure.msi ji do připojovací řetězec:

Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;Version=1.0;

Sada SDK služby Azure SignalR automaticky používá identitu vašeho aplikačního serveru.

Pokud chcete použít identitu přiřazenou uživatelem, zahrňte DO připojovací řetězec ID klienta spravované identity:

Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;ClientId=<client_id>;Version=1.0;

Další informace o konfiguraci spravovaných identit najdete v tématu Autorizace požadavků na prostředky SignalR pomocí spravovaných identit Microsoft Entra.

Poznámka:

Důrazně doporučujeme používat spravované identity k ověřování ve službě Azure SignalR, protože jsou bezpečnější než přístupové klíče. Pokud pro ověřování nepoužíváte přístupové klíče, zvažte jejich úplné zakázání na webu Azure Portal (vyberte Možnost Zakázat přístupový klíč>klíče>).

Pokud se rozhodnete používat přístupové klíče, doporučujeme je pravidelně otáčet. Další informace najdete v tématu Obměna přístupových klíčů pro službu Azure SignalR.

Použití generátoru připojovací řetězec

Ruční sestavování připojovací řetězec může být těžkopádné a náchylné k chybám. Aby se zabránilo chybám, poskytuje služba Azure SignalR generátor připojovací řetězec, který vám pomůže vygenerovat připojovací řetězec, který zahrnuje identity Microsoft Entra, jako a clientId tenantId. Pokud chcete tento nástroj použít, otevřete instanci služby Azure SignalR Na webu Azure Portal a v nabídce vlevo vyberte Připojovací řetězce .

Snímek obrazovky znázorňující generátor připojovací řetězec pro službu Azure SignalR na webu Azure Portal

Na této stránce si můžete vybrat mezi typy ověřování (přístupový klíč, spravovaná identita nebo aplikace Microsoft Entra) a zadat informace, jako je koncový bod klienta, ID klienta a tajný klíč klienta. Potom se připojovací řetězec automaticky vygeneruje. Můžete ho zkopírovat a použít ve své aplikaci.

Poznámka:

Po opuštění stránky se informace, které zadáte, neuloží. Potřebujete zkopírovat a uložit připojovací řetězec, abyste ho mohli použít ve své aplikaci.

Další informace o tom, jak se vygenerují a ověřují přístupové tokeny, najdete v části Ověřování prostřednictvím tokenu Microsoft Entra v referenčních informacích k rozhraní REST API roviny dat služby Azure SignalR.

Poskytování koncových bodů klienta a serveru

Připojovací řetězec obsahuje koncový bod HTTP pro aplikační server pro připojení ke službě Azure SignalR. Server vrátí koncový bod HTTP klientům v odpovědi vyjednávání, aby se klient mohl připojit ke službě.

V některých aplikacích může být před službou Azure SignalR service další komponenta. Všechna klientská připojení musí nejprve projít danou komponentou. Například Aplikace Azure lication Gateway je běžná služba, která poskytuje další zabezpečení sítě.

V takových případech se klient musí připojit ke koncovému bodu, který se liší od služby Azure SignalR. Místo ručního nahrazení koncového bodu na straně klienta můžete přidat ClientEndpoint do připojovací řetězec:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ClientEndpoint=https://<url_to_app_gateway>;Version=1.0;

Aplikační server vrátí odpověď na žádost klienta o vyjednávání. Odpověď obsahuje správnou adresu URL koncového bodu, ke které se má klient připojit. Další informace o připojeních klientů najdete v interních informacích služby Azure SignalR Service.

Podobně pokud se server pokusí vytvořit připojení k serveru nebo volat rozhraní REST API ke službě, může být služba Azure SignalR také za jinou službou, jako je Aplikace Azure lication Gateway. V takovém případě můžete zadat ServerEndpoint skutečný koncový bod pro připojení k serveru a rozhraní REST API:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ServerEndpoint=https://<url_to_app_gateway>;Version=1.0;

Konfigurace připojovací řetězec v aplikaci

Existují dva způsoby konfigurace připojovací řetězec v aplikaci.

Při volání AddAzureSignalR() rozhraní API můžete nastavit připojovací řetězec:

services.AddSignalR().AddAzureSignalR("<connection_string>");

Nebo můžete volat AddAzureSignalR() bez argumentů. Sada SDK služby vrátí připojovací řetězec z konfigurace pojmenované Azure:SignalR:ConnectionString ve vašem poskytovateli konfigurace.

V místním vývojovém prostředí je konfigurace uložená v souboru (appsettings.json nebo secrets.json) nebo v proměnných prostředí. Ke konfiguraci připojovací řetězec můžete použít jeden z následujících způsobů:

  • Použijte správce tajných kódů .NET (dotnet user-secrets set Azure:SignalR:ConnectionString "<connection_string>").
  • Nastavte proměnnou prostředí s názvem Azure__SignalR__ConnectionString na připojovací řetězec. Dvojtečky musí být nahrazeny dvojitým podtržítkem ve zprostředkovateli konfigurace proměnné prostředí.

V produkčním prostředí můžete ke správě konfigurací a tajných kódů, jako je Azure Key Vault a App Configuration, použít jiné služby Azure. V dokumentaci se dozvíte, jak pro tyto služby nastavit poskytovatele konfigurace.

Poznámka:

I když přímo nastavujete připojovací řetězec pomocí kódu, nedoporučujeme pevně zakódovat připojovací řetězec ve zdrojovém kódu. Místo toho si přečtěte připojovací řetězec z úložiště tajných kódů, jako je Key Vault, a předejte ho AddAzureSignalR().

Konfigurace více připojovací řetězec

Služba Azure SignalR umožňuje serveru připojit se k několika koncovým bodům služby současně, aby mohl zpracovávat více připojení, která přesahuje limit instance služby. Když je jedna instance služby mimo provoz, můžete jako zálohu použít další instance služby. Další informace o použití více instancí naleznete v tématu Škálování služby SignalR service s více instancemi.

Existují dva způsoby konfigurace více instancí:

  • Prostřednictvím kódu:

    services.AddSignalR().AddAzureSignalR(options =>
        {
            options.Endpoints = new ServiceEndpoint[]
            {
                new ServiceEndpoint("<connection_string_1>", name: "name_a"),
                new ServiceEndpoint("<connection_string_2>", name: "name_b", type: EndpointType.Primary),
                new ServiceEndpoint("<connection_string_3>", name: "name_c", type: EndpointType.Secondary),
            };
        });
    

    Každému koncovému bodu služby můžete přiřadit název a typ, abyste je mohli později rozlišit.

  • Prostřednictvím konfigurace:

    K ukládání připojovací řetězec můžete použít libovolného podporovaného zprostředkovatele konfigurace (například Správce tajných kódů, proměnné prostředí nebo trezor klíčů). Tady je příklad, který používá správce tajných kódů:

    dotnet user-secrets set Azure:SignalR:ConnectionString:name_a <connection_string_1>
    dotnet user-secrets set Azure:SignalR:ConnectionString:name_b:primary <connection_string_2>
    dotnet user-secrets set Azure:SignalR:ConnectionString:name_c:secondary <connection_string_3>
    

    Ke každému koncovému bodu můžete přiřadit název a typ pomocí jiného názvu konfigurace v následujícím formátu:

    Azure:SignalR:ConnectionString:<name>:<type>