Azure SignalR Hizmeti bağlantı dizeleri
bağlantı dizesi, Azure SignalR Hizmeti bağlanma hakkında bilgi içerir. Bu makalede, bağlantı dizesi temellerini ve uygulamanızda yapılandırmayı öğreneceksiniz.
Önemli
Ham bağlantı dizesi yalnızca tanıtım amacıyla bu makalede görünür.
bağlantı dizesi, uygulamanızın Azure SignalR Hizmeti erişmesi için gereken yetkilendirme bilgilerini içerir. bağlantı dizesi içindeki erişim anahtarı, hizmetinizin kök parolasına benzer. Üretim ortamlarında erişim anahtarlarınızı her zaman koruyun. Anahtarlarınızı güvenli bir şekilde yönetmek ve döndürmek ve Microsoft Entra Id kullanarak bağlantı dizesi güvenliğini sağlamak ve Microsoft Entra ID ile erişimi yetkilendirmek için Azure Key Vault'u kullanın.
Erişim anahtarlarını diğer kullanıcılara dağıtmaktan, sabit kodlamaktan veya başkalarının erişebileceği herhangi bir yerde düz metin olarak kaydetmekten kaçının. Ele geçirilmiş olabileceklerini düşünüyorsanız anahtarlarınızı döndürün.
bağlantı dizesi nedir?
Bir uygulamanın Azure SignalR Hizmeti bağlanması gerektiğinde aşağıdaki bilgilere ihtiyaç duyar:
- Azure SignalR Hizmeti örneğinIN HTTP uç noktası
- Hizmet uç noktasıyla kimlik doğrulamasının yolu
Bir bağlantı dizesi bu tür bilgileri içerir.
bağlantı dizesi nasıl görünür?
bağlantı dizesi noktalı virgülle (;)) ayrılmış bir dizi anahtar/değer çifti içerir. Dize, her anahtarı ve değerini bağlamak için eşittir işareti (=) kullanır. Anahtarlar büyük/küçük harfe duyarlı değildir.
Tipik bir bağlantı dizesi aşağıdaki örneğe benzer olabilir:
Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;Version=1.0;
bağlantı dizesi içerir:
-
Endpoint=https://<resource_name>.service.signalr.net
: Kaynağın uç nokta URL'si. -
AccessKey=<access_key>
: Hizmette kimlik doğrulaması için anahtar. bağlantı dizesi bir erişim anahtarı belirttiğinizde, Azure SignalR Hizmeti SDK hizmeti doğrulayan bir belirteç oluşturmak için bu anahtarı kullanır. -
Version
: bağlantı dizesi sürümü. Varsayılan değer şudur:1.0
.
Aşağıdaki tabloda, bağlantı dizesi anahtar/değer çiftleri için tüm geçerli adlar listelemektedir.
Tuş | Açıklama | Gerekli | Default value | Örnek değer |
---|---|---|---|---|
Endpoint |
Azure SignalR Hizmeti örneğinizin URL'si. | Yes | Uygulanamaz | https://foo.service.signalr.net |
Port |
Azure SignalR Hizmeti örneğinizin dinlediği bağlantı noktası. | Hayır |
80 veya 443 , uç nokta URI şemasına bağlı olarak |
8080 |
Version |
bağlantı dizesi sürümü. | Hayır | 1.0 |
1.0 |
ClientEndpoint |
Azure Uygulaması Lication Gateway veya Azure API Management gibi ters ara sunucunuzun URI'si. | Hayır | null |
https://foo.bar |
AuthType |
Kimlik doğrulama türü. Varsayılan olarak, hizmet istekleri yetkilendirmek için kullanır AccessKey . Büyük/küçük harfe duyarlı değil. |
Hayır | null |
Azure , azure.msi , azure.app |
AccessKey kullanma
hizmet olarak ayarlandığında null
yerel kimlik doğrulama yöntemini AuthType
kullanır.
Tuş | Açıklama | Gerekli | Default value | Örnek değer |
---|---|---|---|---|
AccessKey |
Erişim belirteci oluşturmak için Base64 biçimindeki anahtar dizesi. | Yes | null |
ABCDEFGHIJKLMNOPQRSTUVWEXYZ0123456789+=/ |
Microsoft Entra Id kullanma
Hizmet, , azure.app
veya azure.msi
olarak ayarlandığında azure
Microsoft Entra kimlik doğrulama yöntemini AuthType
kullanır.
Tuş | Açıklama | Gerekli | Default value | Örnek değer |
---|---|---|---|---|
ClientId |
Azure uygulamasının veya Azure kimliğinin GUID'i. | Hayır | null |
00000000-0000-0000-0000-000000000000 |
TenantId |
Microsoft Entra Id'de bir kuruluşun GUID'si. | Hayır | null |
00000000-0000-0000-0000-000000000000 |
ClientSecret |
Azure uygulama örneğinin parolası. | Hayır | null |
***********************.**************** |
ClientCertPath |
bir istemci sertifika dosyasının Azure uygulama örneğine giden mutlak yolu. | Hayır | null |
/usr/local/cert/app.cert |
Hizmet, verdiğiniz parametrelere bağlı olarak Microsoft Entra belirteçleri oluşturmak için farklı TokenCredential
bir değer kullanır:
type=azure
Hizmet DefaultAzureCredential kullanır:
Endpoint=xxx;AuthType=azure
type=azure.msi
hizmet, bağlantı dizesi kullanıyorsa kullanıcı tarafından atanan yönetilen kimliği (ManagedIdentityCredential(clientId)) kullanır
clientId
:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>
Hizmet, sistem tarafından atanan yönetilen kimliği (ManagedIdentityCredential()) kullanır:
Endpoint=xxx;AuthType=azure.msi;
type=azure.app
Hem hem
tenantId
declientId
hizmet sorumlusuyla bir Microsoft Entra uygulaması kullanmak için gereklidir.hizmet, bağlantı dizesi kullanıyorsa ClientSecretCredential(clientId, tenantId, clientSecret) kullanır
clientSecret
:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;clientSecret=<client_secret>>
hizmet, bağlantı dizesi kullanıyorsa ClientCertificateCredential(clientId, tenantId, clientCertPath) kullanır
clientCertPath
:Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;TenantId=<tenant_id>;clientCertPath=</path/to/cert>
bağlantı dizesi alma
bağlantı dizesi almak için Azure portalını veya Azure CLI'yi kullanabilirsiniz.
Azure portal
azure portalında Azure SignalR Hizmeti kaynağınızı açın. Anahtarlar sekmesi aşağıdaki biçimde iki bağlantı dizesi (birincil ve ikincil) gösterir:
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 uygulamasıyla bağlanma
Azure SignalR Hizmeti örneğine bağlanmak için bir Microsoft Entra uygulaması kullanabilirsiniz. Uygulamanın Azure SignalR Hizmeti erişmek için doğru izni varsa erişim anahtarı gerekmez.
Microsoft Entra kimlik doğrulamasını kullanmak için bağlantı dizesi'den kaldırmanız AccessKey
ve eklemeniz AuthType=azure.app
gerekir. Ayrıca microsoft Entra uygulamanızın istemci kimliği, gizli dizi ve kiracı kimliği gibi kimlik bilgilerini de belirtmeniz gerekir. bağlantı dizesi aşağıdaki örneğe benzer:
Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.app;ClientId=<client_id>;ClientSecret=<client_secret>;TenantId=<tenant_id>;Version=1.0;
Microsoft Entra uygulaması kullanarak kimlik doğrulaması yapma hakkında daha fazla bilgi için bkz . Microsoft Entra uygulamalarıyla SignalR kaynaklarına yönelik istekleri yetkilendirme.
Yönetilen kimlikle kimlik doğrulaması
Azure SignalR Hizmeti ile kimlik doğrulaması yapmak için sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanabilirsiniz.
Sistem tarafından atanan bir kimlik kullanmak için bağlantı dizesi ekleyinAuthType=azure.msi
:
Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;Version=1.0;
Azure SignalR Hizmeti SDK'sı otomatik olarak uygulama sunucunuzun kimliğini kullanır.
Kullanıcı tarafından atanan bir kimlik kullanmak için yönetilen kimliğin istemci kimliğini bağlantı dizesi ekleyin:
Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;ClientId=<client_id>;Version=1.0;
Yönetilen kimlikleri yapılandırma hakkında daha fazla bilgi için bkz . Microsoft Entra yönetilen kimlikleriyle SignalR kaynaklarına yönelik istekleri yetkilendirme.
Not
Erişim anahtarlarından daha güvenli olduklarından, Azure SignalR Hizmeti ile kimlik doğrulaması yapmak için yönetilen kimlikler kullanmanızı kesinlikle öneririz. Kimlik doğrulaması için erişim anahtarları kullanmıyorsanız, Bunları Azure portalında tamamen devre dışı bırakmayı göz önünde bulundurun (Anahtarlar>Erişim Anahtarı>Devre Dışı Bırak'ı seçin).
Erişim anahtarlarını kullanmaya karar verirseniz, bunları düzenli olarak döndürmenizi öneririz. Daha fazla bilgi için bkz. Azure SignalR Hizmeti için erişim anahtarlarını döndürme.
bağlantı dizesi oluşturucuyu kullanma
el ile bağlantı dizesi oluşturma zahmetli ve hataya eğilimli olabilir. Hatalardan kaçınmak için Azure SignalR Hizmeti ve gibi clientId
tenantId
Microsoft Entra kimliklerini içeren bir bağlantı dizesi oluşturmanıza yardımcı olacak bir bağlantı dizesi oluşturucu sağlar. Aracı kullanmak için azure portalında Azure SignalR Hizmeti örneğinizi açın ve sol menüden Bağlantı dizeleri'ni seçin.
Bu sayfada, kimlik doğrulama türleri (erişim anahtarı, yönetilen kimlik veya Microsoft Entra uygulaması) arasından seçim yapabilir ve istemci uç noktası, istemci kimliği ve istemci gizli anahtarı gibi bilgileri girebilirsiniz. Ardından bağlantı dizesi otomatik olarak oluşturulur. Kopyalayıp uygulamanızda kullanabilirsiniz.
Not
Girdiğiniz bilgiler, sayfadan ayrıldıktan sonra kaydedilmez. Uygulamanızda kullanmak için bağlantı dizesi kopyalayıp kaydetmeniz gerekir.
Erişim belirteçlerinin nasıl oluşturulduğu ve doğrulanması hakkında daha fazla bilgi için Azure SignalR Hizmeti veri düzlemi REST API başvurusunun Microsoft Entra belirteci aracılığıyla kimlik doğrulama bölümüne bakın.
İstemci ve sunucu uç noktalarını sağlama
bağlantı dizesi, uygulama sunucusunun Azure SignalR Hizmeti bağlanması için HTTP uç noktasını içerir. Sunucu, istemcinin hizmete bağlanabilmesi için http uç noktasını bir anlaşma yanıtında istemcilere döndürür.
Bazı uygulamalarda, Azure SignalR Hizmeti önünde ek bir bileşen olabilir. Tüm istemci bağlantılarının önce bu bileşenden geçmesi gerekir. Örneğin Azure Uygulaması lication Gateway, ek ağ güvenliği sağlayan ortak bir hizmettir.
Böyle durumlarda istemcinin Azure SignalR Hizmeti farklı bir uç noktaya bağlanması gerekir. uç noktayı istemci tarafında el ile değiştirmek yerine bağlantı dizesi ekleyebilirsinizClientEndpoint
:
Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ClientEndpoint=https://<url_to_app_gateway>;Version=1.0;
Uygulama sunucusu, istemcinin anlaşma isteğine bir yanıt döndürür. Yanıt, istemcinin bağlanabilmesi için doğru uç nokta URL'sini içerir. İstemci bağlantıları hakkında daha fazla bilgi için bkz. Azure SignalR Hizmeti iç bağlantılar.
Benzer şekilde, sunucu sunucu bağlantıları kurmaya veya hizmete REST API'leri çağırmaya çalışırsa, Azure SignalR Hizmeti Azure Uygulaması lication Gateway gibi başka bir hizmetin arkasında da olabilir. Bu durumda, sunucu bağlantıları ve REST API'leri için gerçek uç noktayı belirtmek için kullanabilirsiniz ServerEndpoint
:
Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ServerEndpoint=https://<url_to_app_gateway>;Version=1.0;
Uygulamanızda bağlantı dizesi yapılandırma
Ham bağlantı dizesi yalnızca tanıtım amacıyla bu makalede görünür. Üretim ortamlarında erişim anahtarlarınızı her zaman koruyun. Anahtarlarınızı güvenli bir şekilde yönetmek ve döndürmek ve Microsoft Entra Id kullanarak bağlantı dizesi güvenliğini sağlamak ve Microsoft Entra ID ile erişimi yetkilendirmek için Azure Key Vault'u kullanın.
Uygulamanızda bir bağlantı dizesi yapılandırmanın iki yolu vardır.
API'yi çağırırken AddAzureSignalR()
bağlantı dizesi ayarlayabilirsiniz:
services.AddSignalR().AddAzureSignalR("<connection_string>");
Ya da herhangi bir bağımsız değişken olmadan çağırabilirsiniz AddAzureSignalR()
. Hizmet SDK'sı, yapılandırma sağlayıcınızda adlı Azure:SignalR:ConnectionString
bir yapılandırmadan bağlantı dizesi döndürür.
Yerel geliştirme ortamında, yapılandırma bir dosyada (appsettings.json veya secrets.json) veya ortam değişkenlerinde depolanır. bağlantı dizesi yapılandırmak için aşağıdaki yollardan birini kullanabilirsiniz:
- .NET gizli dizi yöneticisi (
dotnet user-secrets set Azure:SignalR:ConnectionString "<connection_string>"
kullanın). - adlı
Azure__SignalR__ConnectionString
bir ortam değişkeni bağlantı dizesi ayarlayın. İki nokta üst üstelerin ortam değişkeni yapılandırma sağlayıcısında çift alt çizgiyle değiştirilmesi gerekir.
Üretim ortamında, Azure Key Vault ve Uygulama Yapılandırması gibi yapılandırmaları ve gizli dizileri yönetmek için diğer Azure hizmetlerini kullanabilirsiniz. Bu hizmetler için yapılandırma sağlayıcısı ayarlamayı öğrenmek için belgelerine bakın.
Not
Doğrudan kod kullanarak bir bağlantı dizesi ayarlarken bile, kaynak kodda bağlantı dizesi sabit kodla kodla kullanmanızı önermeyiz. Bunun yerine, Key Vault gibi bir gizli dizi deposundan bağlantı dizesi okuyun ve adresine AddAzureSignalR()
geçirin.
Birden çok bağlantı dizesi yapılandırma
Azure SignalR Hizmeti, sunucunun aynı anda birden çok hizmet uç noktasına bağlanmasına izin verir, böylece hizmet örneğinin sınırını aşan daha fazla bağlantıyı işleyebilir. Bir hizmet örneği kapatıldığında, diğer hizmet örneklerini yedekleme olarak kullanabilirsiniz. Birden çok örneğin nasıl kullanılacağı hakkında daha fazla bilgi için bkz. SignalR Hizmeti birden çok örnekle ölçeklendirme.
Birden çok örneği yapılandırmanın iki yolu vardır:
Kod aracılığıyla:
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), }; });
Daha sonra ayırt edebilmeniz için her hizmet uç noktasına bir ad ve tür atayabilirsiniz.
Yapılandırma aracılığıyla:
bağlantı dizesi depolamak için desteklenen herhangi bir yapılandırma sağlayıcısını (örneğin, gizli dizi yöneticisi, ortam değişkenleri veya anahtar kasası) kullanabilirsiniz. Gizli dizi yöneticisi kullanan bir örnek aşağıda verilmişti:
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>
Aşağıdaki biçimde farklı bir yapılandırma adı kullanarak her uç noktaya bir ad ve tür atayabilirsiniz:
Azure:SignalR:ConnectionString:<name>:<type>