Строки подключения в Служба Azure SignalR
Строка подключения содержит сведения о том, как подключиться к Служба Azure SignalR. В этой статье вы узнаете об основах строка подключения и настройке одного из них в приложении.
Внимание
Необработанные строка подключения отображаются в этой статье только для демонстрационных целей.
Строка подключения включает сведения о авторизации, необходимые для доступа к Служба Azure SignalR приложения. Ключ доступа в строке подключения аналогичен паролю привилегированного пользователя для службы. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты строка подключения с помощью идентификатора Microsoft Entra и авторизации доступа с помощью идентификатора Microsoft Entra.
Старайтесь не распространять ключи доступа среди других пользователей, жестко программировать их или где-то сохранять в виде обычного текста в открытом доступе для других пользователей. Меняйте свои ключи постоянно, если предполагаете, что они могут быть подобраны.
Что такое строка подключения
Если приложению необходимо подключиться к Служба Azure SignalR, ему потребуется следующая информация:
- Конечная точка HTTP экземпляра Служба Azure SignalR
- Способ проверки подлинности с помощью конечной точки службы
Строка подключения содержит такие сведения.
Как выглядит строка подключения
Строка подключения состоит из ряда пар "ключ-значение", разделенных точкой с запятой (;). Строка использует знак равенства (=) для подключения каждого ключа и его значения. Ключи не учитывает регистр.
Типичный строка подключения может выглядеть следующим образом:
Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;Version=1.0;
Строка подключения содержит следующее:
Endpoint=https://<resource_name>.service.signalr.net
: URL-адрес конечной точки ресурса.AccessKey=<access_key>
: ключ для проверки подлинности в службе. При указании ключа доступа в строка подключения пакет SDK Служба Azure SignalR использует его для создания маркера, проверяемого службой.Version
: версия строка подключения. Значение по умолчанию —1.0
.
В следующей таблице перечислены все допустимые имена пар "ключ-значение" в строка подключения.
Ключ. | Description | Обязательное поле | Default value | Пример значения |
---|---|---|---|---|
Endpoint |
URL-адрес экземпляра Служба Azure SignalR. | Да | Неприменимо | https://foo.service.signalr.net |
Port |
Порт, на который прослушивается Служба Azure SignalR экземпляр. | No | 80 или 443 в зависимости от схемы URI конечной точки |
8080 |
Version |
Версия строка подключения. | No | 1.0 |
1.0 |
ClientEndpoint |
URI обратного прокси-сервера, например Шлюз приложений Azure или Azure Управление API. | No | null |
https://foo.bar |
AuthType |
Тип проверки подлинности. По умолчанию служба используется AccessKey для авторизации запросов. Задается без учета регистра символов. |
No | null |
Azure , , azure.msi azure.app |
Использование AccessKey
Служба использует локальный метод проверки подлинности, если AuthType
задано значение null
.
Ключ. | Description | Обязательное поле | Default value | Пример значения |
---|---|---|---|---|
AccessKey |
Строка ключа в формате Base64 для создания маркера доступа. | Да | null |
ABCDEFGHIJKLMNOPQRSTUVWEXYZ0123456789+=/ |
Использование идентификатора Microsoft Entra
Служба использует метод проверки подлинности Microsoft Entra, если AuthType
задано значение azure
, azure.app
или azure.msi
.
Ключ. | Description | Обязательное поле | Default value | Пример значения |
---|---|---|---|---|
ClientId |
GUID приложения Azure или удостоверения Azure. | No | null |
00000000-0000-0000-0000-000000000000 |
TenantId |
GUID организации в идентификаторе Microsoft Entra. | No | null |
00000000-0000-0000-0000-000000000000 |
ClientSecret |
Пароль экземпляра приложения Azure. | No | null |
***********************.**************** |
ClientCertPath |
Абсолютный путь файла сертификата клиента к экземпляру приложения Azure. | No | null |
/usr/local/cert/app.cert |
Служба использует другое TokenCredential
значение для создания токенов Microsoft Entra в зависимости от параметров, которые вы предоставляете:
type=azure
Служба использует DefaultAzureCredential:
Endpoint=xxx;AuthType=azure
type=azure.msi
Служба использует управляемое удостоверение, назначаемое пользователем (ManagedIdentityCredential(clientId)), если строка подключения использует
clientId
:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>
Служба использует управляемое удостоверение, назначаемое системой (ManagedIdentityCredential()):
Endpoint=xxx;AuthType=azure.msi;
type=azure.app
Оба
clientId
и необходимы для использования приложения Microsoft Entra с субъектом-службой.tenantId
Служба использует ClientSecretCredential(clientId, tenantId, clientSecret), если используется
clientSecret
строка подключения:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;clientSecret=<client_secret>>
Служба использует ClientCertificateCredential(clientId, tenantId, clientCertPath), если используется
clientCertPath
строка подключения:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;TenantId=<tenant_id>;clientCertPath=</path/to/cert>
Как получить строка подключения
Для получения строка подключения можно использовать портал Azure или Azure CLI.
Портал Azure
Откройте ресурс Служба Azure SignalR в портал Azure. На вкладке "Ключи" показаны две строка подключения (первичная и вторичная) в следующем формате:
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>
Подключение к приложению Microsoft Entra
Вы можете использовать приложение Microsoft Entra для подключения к Служба Azure SignalR экземпляру. Если у приложения есть право на доступ к Служба Azure SignalR, ему не нужен ключ доступа.
Чтобы использовать проверку подлинности Microsoft Entra, необходимо удалить AccessKey
из строка подключения и добавитьAuthType=azure.app
. Кроме того, необходимо указать учетные данные приложения Microsoft Entra, включая идентификатор клиента, секрет клиента и идентификатор клиента. Строка подключения выглядит следующим образом:
Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.app;ClientId=<client_id>;ClientSecret=<client_secret>;TenantId=<tenant_id>;Version=1.0;
Дополнительные сведения о проверке подлинности с помощью приложения Microsoft Entra см. в разделе "Авторизация запросов к ресурсам SignalR" с помощью приложений Microsoft Entra.
Аутентификация на основе управляемого удостоверения
Управляемое удостоверение, назначаемое системой или назначаемое пользователем, можно использовать для проверки подлинности с помощью Служба Azure SignalR.
Чтобы использовать назначаемое системой удостоверение, добавьте AuthType=azure.msi
в строка подключения:
Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;Version=1.0;
Пакет SDK Служба Azure SignalR автоматически использует удостоверение сервера приложений.
Чтобы использовать удостоверение, назначаемое пользователем, добавьте идентификатор клиента управляемого удостоверения в строка подключения:
Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;ClientId=<client_id>;Version=1.0;
Дополнительные сведения о настройке управляемых удостоверений см. в статье "Авторизация запросов к ресурсам SignalR" с помощью управляемых удостоверений Microsoft Entra.
Примечание.
Настоятельно рекомендуется использовать управляемые удостоверения для проверки подлинности с помощью Служба Azure SignalR, так как они более безопасны, чем ключи доступа. Если ключи доступа не используются для проверки подлинности, рассмотрите возможность полностью отключить их в портал Azure (выберите ключ доступа к>ключам>отключить).
Если вы решите использовать ключи доступа, рекомендуется регулярно поворачивать их. Дополнительные сведения см. в разделе "Смена ключей доступа" для Служба Azure SignalR.
Использование генератора строка подключения
Создание строка подключения вручную может быть громоздким и подверженным ошибкам. Чтобы избежать ошибок, Служба Azure SignalR предоставляет генератор строка подключения для создания строка подключения, включающих удостоверения Microsoft Entra, как clientId
иtenantId
. Чтобы использовать средство, откройте экземпляр Служба Azure SignalR в портал Azure и выберите строки подключения в меню слева.
На этой странице можно выбрать один из типов проверки подлинности (ключ доступа, управляемое удостоверение или приложение Microsoft Entra) и ввести такие сведения, как конечная точка клиента, идентификатор клиента и секрет клиента. Затем автоматически создается строка подключения. Его можно скопировать и использовать в приложении.
Примечание.
Данные, которые вы вводите, не сохраняются после выхода страницы. Необходимо скопировать и сохранить строка подключения, чтобы использовать его в приложении.
Дополнительные сведения о том, как создаются и проверяются маркеры доступа, см. в разделе "Проверка подлинности с помощью маркера Microsoft Entra" в справочнике по REST API уровня данных Служба Azure SignalR.
Предоставление конечных точек клиента и сервера
Строка подключения содержит конечную точку HTTP для сервера приложений для подключения к Служба Azure SignalR. Сервер возвращает конечную точку HTTP клиентам в ответе на переговоры, чтобы клиент смог подключиться к службе.
В некоторых приложениях перед Служба Azure SignalR может быть дополнительный компонент. Сначала все клиентские подключения должны пройти через этот компонент. Например, Шлюз приложений Azure — это общая служба, которая обеспечивает дополнительную сетевую безопасность.
В таких случаях клиенту необходимо подключиться к конечной точке, отличной от Служба Azure SignalR. Вместо замены конечной точки на стороне клиента можно добавить ClientEndpoint
в строка подключения:
Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ClientEndpoint=https://<url_to_app_gateway>;Version=1.0;
Сервер приложений возвращает ответ на запрос на согласование клиента. Ответ содержит правильный URL-адрес конечной точки для подключения клиента. Дополнительные сведения о клиентских подключениях см. в разделе Служба Azure SignalR внутренних данных.
Аналогичным образом, если сервер пытается подключить сервер или вызвать REST API в службу, Служба Azure SignalR также может находиться за другой службой, например Шлюз приложений Azure. В этом случае можно указать ServerEndpoint
фактическую конечную точку для подключений к серверу и REST API:
Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ServerEndpoint=https://<url_to_app_gateway>;Version=1.0;
Настройка строка подключения в приложении
Необработанные строка подключения отображаются в этой статье только для демонстрационных целей. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты строка подключения с помощью идентификатора Microsoft Entra и авторизации доступа с помощью идентификатора Microsoft Entra.
Существует два способа настройки строка подключения в приложении.
Вы можете задать строка подключения при вызове AddAzureSignalR()
API:
services.AddSignalR().AddAzureSignalR("<connection_string>");
Или можно вызывать AddAzureSignalR()
без каких-либо аргументов. Пакет SDK службы возвращает строка подключения из конфигурации с именем Azure:SignalR:ConnectionString
поставщика конфигурации.
В локальной среде разработки конфигурация хранится в файле (appsettings.json или secrets.json) или в переменных среды. Для настройки строка подключения можно использовать один из следующих способов:
- Используйте диспетчер секретов .NET (
dotnet user-secrets set Azure:SignalR:ConnectionString "<connection_string>"
). - Задайте переменную среды с именем
Azure__SignalR__ConnectionString
строка подключения. Двоеточия необходимо заменить двойным подчеркиванием в поставщике конфигурации переменной среды.
В рабочей среде можно использовать другие службы Azure для управления конфигурациями и секретами, такими как Azure Key Vault и Конфигурация приложений. Сведения о настройке поставщика конфигурации для этих служб см. в документации.
Примечание.
Даже если вы напрямую задаете строка подключения с помощью кода, мы не рекомендуем жестко кодировать строка подключения в исходном коде. Вместо этого читайте строка подключения из секретного хранилища, например Key Vault, и передайте его AddAzureSignalR()
в .
Настройка нескольких строка подключения
Служба Azure SignalR позволяет серверу подключаться к нескольким конечным точкам службы одновременно, поэтому он может обрабатывать больше подключений, выходящих за пределы экземпляра службы. При отключении одного экземпляра службы можно использовать другие экземпляры службы в качестве резервного копирования. Дополнительные сведения об использовании нескольких экземпляров см. в статье "Масштабирование Служба SignalR с несколькими экземплярами".
Существует два способа настройки нескольких экземпляров:
С помощью кода:
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), }; });
Вы можете назначить имя и тип каждой конечной точке службы, чтобы их можно было отличить позже.
С помощью конфигурации:
Для хранения строка подключения можно использовать любой поддерживаемый поставщик конфигурации (например, диспетчер секретов, переменные среды или хранилище ключей). Ниже приведен пример использования диспетчера секретов:
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>
Имя и тип можно назначить каждой конечной точке с помощью другого имени конфигурации в следующем формате:
Azure:SignalR:ConnectionString:<name>:<type>