Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Строка подключения содержит сведения о том, как подключиться к Службе Azure SignalR. В этой статье вы узнаете об основах строк подключения и как настроить её в приложении.
Внимание
необработанные строки подключения приведены в этой статье исключительно для демонстрации.
Строка подключения включает сведения об авторизации, необходимые приложению для доступа к службе Azure SignalR. Ключ доступа в строке подключения аналогичен паролю привилегированного пользователя для службы. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты строки подключения с помощью Microsoft Entra ID и авторизации доступа с помощью Microsoft Entra ID.
Старайтесь не распространять ключи доступа среди других пользователей, жестко программировать их или где-то сохранять в виде обычного текста в открытом доступе для других пользователей. Меняйте свои ключи, если считаете, что они могут быть скомпрометированы.
Что такое строка подключения
Если приложению необходимо подключиться к Служба 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
.
В следующей таблице перечислены все допустимые имена пар "ключ-значение" в строке подключения.
Ключ. | Описание | Обязательное поле | Значение по умолчанию | Пример значения |
---|---|---|---|---|
Endpoint |
URL экземпляра службы Azure SignalR. | Да | Неприменимо | https://foo.service.signalr.net |
Port |
Порт, который используется экземпляром службы Azure SignalR для прослушивания. | Нет |
80 или 443 в зависимости от схемы URI конечной точки |
8080 |
Version |
Версия строки подключения. | Нет | 1.0 |
1.0 |
ClientEndpoint |
URI вашего обратного прокси-сервера, например, Шлюз приложений Azure или Управление API Azure. | Нет | null |
https://foo.bar |
AuthType |
Тип проверки подлинности. По умолчанию служба используется AccessKey для авторизации запросов. Задается без учета регистра символов. |
Нет | null |
Azure , azure.msi , azure.app |
Используйте AccessKey
Служба использует локальный метод проверки подлинности, если AuthType
задано значение null
.
Ключ. | Описание | Обязательное поле | Значение по умолчанию | Пример значения |
---|---|---|---|---|
AccessKey |
Строка ключа в формате Base64 для создания токена доступа. | Да | null |
ABCDEFGHIJKLMNOPQRSTUVWEXYZ0123456789+=/ |
Использование идентификатора Microsoft Entra
Служба использует метод проверки подлинности Microsoft Entra, если AuthType
задано значение azure
, azure.app
или azure.msi
.
Ключ. | Описание | Обязательное поле | Значение по умолчанию | Пример значения |
---|---|---|---|---|
ClientId |
GUID приложения Azure или удостоверения Azure. | Нет | null |
00000000-0000-0000-0000-000000000000 |
TenantId |
GUID организации в идентификаторе Microsoft Entra. | Нет | null |
00000000-0000-0000-0000-000000000000 |
ClientSecret |
Пароль экземпляра приложения Azure. | Нет | null |
***********************.**************** |
ClientCertPath |
Абсолютный путь файла сертификата клиента к экземпляру приложения Azure. | Нет | 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
иtenantId
требуются для использования приложения Microsoft Entra со служебным принципалом.Служба использует 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
Откройте ресурс Служба SignalR Azure в портале 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 ID и авторизации доступа с помощью Microsoft Entra ID.
Существует два способа настройки строки подключения вашего приложения.
Вы можете задать строку подключения при вызове 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>