Aracılığıyla paylaş


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 nullyerel 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.appveya azure.msiolarak ayarlandığında azureMicrosoft 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ırclientId:

      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 de clientId hizmet sorumlusuyla bir Microsoft Entra uygulaması kullanmak için gereklidir.

    • hizmet, bağlantı dizesi kullanıyorsa ClientSecretCredential(clientId, tenantId, clientSecret) kullanırclientSecret:

      Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;clientSecret=<client_secret>>
      
    • hizmet, bağlantı dizesi kullanıyorsa ClientCertificateCredential(clientId, tenantId, clientCertPath) kullanırclientCertPath:

      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.appgerekir. 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 clientIdtenantIdMicrosoft 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.

Azure portalında Azure SignalR Hizmeti için bağlantı dizesi oluşturucuyu gösteren ekran görüntüsü.

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>