Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Důležité
Nezpracované připojovací řetězce se v tomto článku objevují pouze pro demonstrační účely.
Připojovací řetězec obsahuje autorizační informace potřebné pro vaši aplikaci pro přístup ke službě Azure SignalR. Přístupový klíč uvnitř připojovací řetězec je podobný kořenovému heslu pro vaši službu. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Vyhněte se distribuci přístupových klíčů ostatním uživatelům, jejich pevnému kódování nebo jejich uložení kdekoli ve formátu prostého textu, který je přístupný ostatním uživatelům. Otočte klíče, pokud se domníváte, že mohly být ohroženy.
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 (=) k propojení 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ího řetězce. Výchozí hodnota je1.0.
V následující tabulce jsou uvedeny všechny platné názvy párů klíč-hodnota v připojovacím řetězci.
| Klíč | Popis | Povinné | Výchozí hodnota | 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. | Ne |
80 nebo 443v závislosti na schématu identifikátoru URI koncového bodu |
8080 |
Version |
Verze připojovacího řetězce. | Ne | 1.0 |
1.0 |
ClientEndpoint |
Identifikátor URI reverzního proxy serveru, například Azure Application Gateway nebo Azure API Management. | Ne | 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. |
Ne | null |
Azure, azure.msi, azure.app |
Použití přístupového klíče
Služba používá místní metodu ověřování, pokud AuthType je nastavena na null.
| Klíč | Popis | Povinné | Výchozí hodnota | Příklad hodnoty |
|---|---|---|---|---|
AccessKey |
Řetězec klíče ve formátu Base64 pro vytvoření přístupového tokenu. | Ano | null |
ABCDEFGHIJKLMNOPQRSTUVWEXYZ0123456789+=/ |
Použijte Microsoft Entra ID
Služba používá metodu ověřování Microsoft Entra, pokud AuthType je nastavena na azure, azure.appnebo azure.msi.
| Klíč | Popis | Povinné | Výchozí hodnota | Příklad hodnoty |
|---|---|---|---|---|
ClientId |
Identifikátor GUID aplikace Azure nebo identity Azure. | Ne | null |
00000000-0000-0000-0000-000000000000 |
TenantId |
Identifikátor GUID organizace v Microsoft Entra ID. | Ne | null |
00000000-0000-0000-0000-000000000000 |
ClientSecret |
Heslo instance aplikace Azure | Ne | null |
***********************.**************** |
ClientCertPath |
Absolutní cesta souboru klientského certifikátu k instanci aplikace Azure. | Ne | 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:
type=azureSlužba používá DefaultAzureCredential:
Endpoint=xxx;AuthType=azure
type=azure.msiSlužba používá spravovanou identitu přiřazenou uživatelem (ManagedIdentityCredential(clientId)), pokud připojovací řetězec používá
clientId:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>Služba používá spravovanou identitu přiřazenou systémem (ManagedIdentityCredential()):
Endpoint=xxx;AuthType=azure.msi;
type=azure.appPoužití
clientIdatenantIdje nutné pro použití aplikace Microsoft Entra se služebním objektem.Služba používá ClientSecretCredential(clientId, tenantId, clientSecret), pokud připojovací řetězec používá
clientSecret:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;clientSecret=<client_secret>>Služba používá ClientCertificateCredential(clientId, tenantId, clientCertPath), pokud připojovací řetězec používá
clientCertPath:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;TenantId=<tenant_id>;clientCertPath=</path/to/cert>
Jak získat připojovací řetězce
Můžete použít Azure portál nebo Azure CLI k získání připojovacích řetězců.
portál Azure
Na webu Azure Portal otevřete prostředek služby Azure SignalR. Karta Klíče zobrazuje dva připojovací řetězce (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ího řetězce 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 do připojovacího řetězce:
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 uživatelsky přiřazenou identitu, zahrňte ID klienta spravované identity do připojovacího řetězce.
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í v Azure portálu (vyberte Klíče>Přístupový klíč>Zakázat).
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ího řetězce
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, služba Azure SignalR poskytuje generátor připojovacího řetězce, který vám pomůže vygenerovat řetězec zahrnující identity Microsoft Entra, například clientId a 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 .
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í klientům koncový bod HTTP v rámci vyjednávací odpovědi, aby se mohli 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 Azure Application 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 serverová připojení nebo zavolat REST API ke službě, může být služba Azure SignalR také za jinou službou, jako je Azure Application 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;
Nakonfigurujte připojovací řetězec ve vaší aplikaci
Nezpracované připojovací řetězce jsou v tomto článku zobrazeny pouze pro demonstrační účely. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Existují dva způsoby, jak nakonfigurovat připojovacího řetězce ve vaší 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ů. Služba SDK vrátí připojovací řetězec z konfigurace pojmenované Azure:SignalR:ConnectionString v rámci vašeho poskytovatele 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í. K nastavení připojovacích řetězců 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__ConnectionStringna připojovací řetězec. Dvojtečky musí být nahrazeny dvojitým podtržítkem ve poskytovateli konfigurace proměnných 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().
Konfigurovat více připojovacích řetězců
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ích řetězců můžete použít jakéhokoli podporovaného zprostředkovatele konfigurace (například správce tajemství, proměnné prostředí nebo úložiště klíčů). Tady je příklad, který používá správce tajemství:
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>