Megosztás a következőn keresztül:


Kapcsolati sztringek az Azure SignalR Service-ben

A kapcsolati sztring az Azure SignalR Szolgáltatáshoz való csatlakozással kapcsolatos információkat tartalmaznak. Ebben a cikkben megismerheti a kapcsolati sztring alapjait, és azt, hogyan konfigurálhat egyet az alkalmazásban.

Fontos

A cikkben szereplő nyers kapcsolati sztring csak bemutató célokra jelennek meg.

A kapcsolati sztring tartalmazzák azokat az engedélyezési információkat, amelyekre az alkalmazásnak szüksége van az Azure SignalR Szolgáltatás eléréséhez. A kapcsolati sztring belüli hozzáférési kulcs hasonló a szolgáltatás gyökérjelszójához. Éles környezetben mindig védje a hozzáférési kulcsokat. Az Azure Key Vault használatával biztonságosan kezelheti és elforgathatja a kulcsokat, és biztonságossá teheti a kapcsolati sztring a Microsoft Entra-azonosítóval, és engedélyezheti a hozzáférést a Microsoft Entra-azonosítóval.

Kerülje a hozzáférési kulcsok más felhasználók számára való terjesztését, a szigorú kódolást, illetve a mások számára hozzáférhető egyszerű szövegek mentését. Ha úgy véli, hogy illetéktelenek lettek, forgassa el a kulcsokat.

Mi az a kapcsolati sztring?

Amikor egy alkalmazásnak csatlakoznia kell az Azure SignalR Szolgáltatáshoz, a következő információkra van szüksége:

  • Az Azure SignalR szolgáltatáspéldány HTTP-végpontja
  • A szolgáltatásvégponttal történő hitelesítés módja

A kapcsolati sztring ilyen információkat tartalmaznak.

Hogyan néz ki egy kapcsolati sztring?

A kapcsolati sztring kulcs/érték párok sorozatából áll, pontosvesszővel elválasztva (;). A sztring egyenlőségjelet (=) használ az egyes kulcsok és azok értékének összekapcsolásához. A kulcsok nem érzékenyek a kis- és nagybetűkre.

Egy tipikus kapcsolati sztring a következő példához hasonlóan nézhet ki:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;Version=1.0;

A kapcsolati sztring a következőket tartalmazza:

  • Endpoint=https://<resource_name>.service.signalr.net: Az erőforrás végponti URL-címe.
  • AccessKey=<access_key>: A szolgáltatással való hitelesítés kulcsa. Amikor megad egy hozzáférési kulcsot a kapcsolati sztring, az Azure SignalR Service SDK azt használja a szolgáltatás által érvényesített jogkivonat létrehozásához.
  • Version: A kapcsolati sztring verziója. Az alapértelmezett érték 1.0.

Az alábbi táblázat felsorolja a kulcs-érték párok összes érvényes nevét a kapcsolati sztring.

Kulcs Leírás Kötelező Alapértelmezett érték Példaérték
Endpoint Az Azure SignalR Service-példány URL-címe. Igen Nem alkalmazható https://foo.service.signalr.net
Port Az a port, amelyen az Azure SignalR Service-példány figyel. Nem 80 vagy 443, a végpont URI-sémájától függően 8080
Version A kapcsolati sztring verziója. Nem 1.0 1.0
ClientEndpoint A fordított proxy URI-ja, például Azure-alkalmazás Gateway vagy Azure API Management. Nem null https://foo.bar
AuthType A hitelesítési típus. Alapértelmezés szerint a szolgáltatás a kérések engedélyezésére szolgál AccessKey . A kis- és nagybetűk nem érzékenyek. Nem null Azure, , azure.msiazure.app

Az AccessKey használata

A szolgáltatás a helyi hitelesítési módszert használja, ha AuthType be van állítva null.

Kulcs Leírás Kötelező Alapértelmezett érték Példaérték
AccessKey A base64 formátumú kulcssztring egy hozzáférési jogkivonat létrehozásához. Igen null ABCDEFGHIJKLMNOPQRSTUVWEXYZ0123456789+=/

A Microsoft Entra-azonosító használata

A szolgáltatás a Microsoft Entra hitelesítési módszert használja, ha AuthType a beállítás azureértéke , azure.appvagy azure.msi.

Kulcs Leírás Kötelező Alapértelmezett érték Példaérték
ClientId Egy Azure-alkalmazás vagy egy Azure-identitás GUID azonosítója. Nem null 00000000-0000-0000-0000-000000000000
TenantId Egy szervezet GUID azonosítója a Microsoft Entra-azonosítóban. Nem null 00000000-0000-0000-0000-000000000000
ClientSecret Egy Azure-alkalmazáspéldány jelszava. Nem null ***********************.****************
ClientCertPath Az ügyféltanúsítvány-fájl abszolút elérési útja egy Azure-alkalmazáspéldányhoz. Nem null /usr/local/cert/app.cert

A szolgáltatás a megadott paraméterektől függően eltérő TokenCredential értéket használ a Microsoft Entra-jogkivonatok létrehozásához:

  • type=azure

    • A szolgáltatás DefaultAzureCredential értéket használ:

      Endpoint=xxx;AuthType=azure
      
  • type=azure.msi

    • A szolgáltatás felhasználó által hozzárendelt felügyelt identitást (ManagedIdentityCredential(clientId)) használ, ha a kapcsolati sztring a következőket használjaclientId:

      Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>
      
    • A szolgáltatás rendszer által hozzárendelt felügyelt identitást használ (ManagedIdentityCredential()):

      Endpoint=xxx;AuthType=azure.msi;
      
  • type=azure.app

    Mindkettőre clientId szükség van egy Microsoft Entra-alkalmazás szolgáltatásnévvel való használatához.tenantId

    • A szolgáltatás a ClientSecretCredential(clientId, tenantId, clientSecret) azonosítót használja, ha a kapcsolati sztring a következőt használjaclientSecret:

      Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;clientSecret=<client_secret>>
      
    • A szolgáltatás a ClientCertificateCredential(clientId, tenantId, clientCertPath) szolgáltatást használja, ha a kapcsolati sztring a következőket használjaclientCertPath:

      Endpoint=xxx;AuthType=azure.msi;ClientId=<client_id>;TenantId=<tenant_id>;clientCertPath=</path/to/cert>
      

Kapcsolati sztring lekérése

Az Azure Portalon vagy az Azure CLI-vel kapcsolati sztring kérhet le.

Azure Portal

Nyissa meg az Azure SignalR service-erőforrást az Azure Portalon. A Kulcsok lapon két kapcsolati sztring (elsődleges és másodlagos) látható a következő formátumban:

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>

Csatlakozás Microsoft Entra-alkalmazással

Egy Microsoft Entra-alkalmazással csatlakozhat az Azure SignalR Service-példányhoz. Ha az alkalmazás megfelelő engedéllyel rendelkezik az Azure SignalR Szolgáltatás eléréséhez, nincs szüksége hozzáférési kulcsra.

A Microsoft Entra-hitelesítés használatához el kell távolítania AccessKey a kapcsolati sztring, és hozzá kell adniaAuthType=azure.app. Meg kell adnia a Microsoft Entra-alkalmazás hitelesítő adatait is, beleértve az ügyfél-azonosítót, az ügyfél titkos kódját és a bérlőazonosítót. A kapcsolati sztring a következő példához hasonlóan néz ki:

Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.app;ClientId=<client_id>;ClientSecret=<client_secret>;TenantId=<tenant_id>;Version=1.0;

A Microsoft Entra-alkalmazásokkal végzett hitelesítésről további információt a SignalR-erőforrásokra vonatkozó kérelmek engedélyezése a Microsoft Entra-alkalmazásokkal című témakörben talál.

Hitelesítés felügyelt identitással

A rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitással hitelesítheti magát az Azure SignalR Szolgáltatással.

Rendszer által hozzárendelt identitás használatához adja hozzá AuthType=azure.msi a kapcsolati sztring:

Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;Version=1.0;

Az Azure SignalR Service SDK automatikusan az alkalmazáskiszolgáló identitását használja.

Felhasználó által hozzárendelt identitás használatához adja meg a felügyelt identitás ügyfél-azonosítóját a kapcsolati sztring:

Endpoint=https://<resource_name>.service.signalr.net;AuthType=azure.msi;ClientId=<client_id>;Version=1.0;

A felügyelt identitások konfigurálásáról további információt a SignalR-erőforrásokra irányuló kérelmek engedélyezése a Microsoft Entra által felügyelt identitásokkal című témakörben talál.

Feljegyzés

Erősen javasoljuk, hogy felügyelt identitásokkal hitelesítse magát az Azure SignalR Service-ben, mert ezek biztonságosabbak, mint a hozzáférési kulcsok. Ha nem használ hozzáférési kulcsokat a hitelesítéshez, fontolja meg az Azure Portalon való teljes letiltást (válassza a Kulcsok>hozzáférési kulcs>letiltása lehetőséget).

Ha a hozzáférési kulcsok használata mellett dönt, javasoljuk, hogy rendszeresen forgassa el őket. További információ: Az Azure SignalR Service hozzáférési kulcsainak elforgatása.

A kapcsolati sztring generátor használata

A kapcsolati sztring manuális létrehozása nehézkes és hibalehetőséget jelenthet. A hibák elkerülése érdekében az Azure SignalR Service egy kapcsolati sztring generátort biztosít, amely segít létrehozni egy olyan kapcsolati sztring, amely tartalmazza a Microsoft Entra-identitásokat, például clientId és tenantId. Az eszköz használatához nyissa meg az Azure SignalR Service-példányt az Azure Portalon, és válassza a kapcsolati sztringeket a bal oldali menüből.

Képernyőkép az Azure SignalR Service kapcsolati sztring generátorról az Azure Portalon.

Ezen a lapon választhat a hitelesítési típusok (hozzáférési kulcs, felügyelt identitás vagy Microsoft Entra-alkalmazás) közül, és megadhat olyan adatokat, mint az ügyfélvégpont, az ügyfélazonosító és az ügyfél titkos kódja. Ezután a kapcsolati sztring automatikusan létrejön. Másolhatja és használhatja az alkalmazásban.

Feljegyzés

A megadott információk nem lesznek mentve a lap elhagyása után. A kapcsolati sztring az alkalmazásban való használatához másolnia és mentenie kell.

A hozzáférési jogkivonatok létrehozásának és érvényesítésének módjáról az Azure SignalR Service REST API-referenciajában található Hitelesítés a Microsoft Entra-jogkivonaton keresztül című szakaszban talál további információt.

Ügyfél- és kiszolgálóvégpontok megadása

Egy kapcsolati sztring tartalmazza az alkalmazáskiszolgáló HTTP-végpontját az Azure SignalR Service-hez való csatlakozáshoz. A kiszolgáló egy tárgyalási válaszban adja vissza a HTTP-végpontot az ügyfeleknek, így az ügyfél csatlakozhat a szolgáltatáshoz.

Egyes alkalmazásokban előfordulhat, hogy az Azure SignalR Szolgáltatás előtt van egy további összetevő. Először minden ügyfélkapcsolatnak ezen az összetevőn kell keresztülmennie. Az Azure-alkalmazás átjáró például egy gyakori szolgáltatás, amely további hálózati biztonságot nyújt.

Ilyen esetekben az ügyfélnek az Azure SignalR Szolgáltatástól eltérő végponthoz kell csatlakoznia. A végpont ügyféloldali manuális cseréje helyett hozzáadhatja ClientEndpoint a kapcsolati sztring:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ClientEndpoint=https://<url_to_app_gateway>;Version=1.0;

Az alkalmazáskiszolgáló választ ad vissza az ügyfél tárgyalási kérelmére. A válasz tartalmazza a megfelelő végpont URL-címét ahhoz, hogy az ügyfél csatlakozzon. További információ az ügyfélkapcsolatokról: Azure SignalR Service internals.

Hasonlóképpen, ha a kiszolgáló megpróbál kiszolgálókapcsolatokat létesíteni vagy REST API-kat hívni a szolgáltatáshoz, az Azure SignalR szolgáltatás egy másik szolgáltatás, például Azure-alkalmazás Gateway mögött is állhat. Ebben az esetben megadhatja ServerEndpoint a kiszolgálókapcsolatok és REST API-k tényleges végpontjait:

Endpoint=https://<resource_name>.service.signalr.net;AccessKey=<access_key>;ServerEndpoint=https://<url_to_app_gateway>;Version=1.0;

Kapcsolati sztring konfigurálása az alkalmazásban

A cikkben szereplő nyers kapcsolati sztring csak bemutató célokra jelennek meg. Éles környezetben mindig védje a hozzáférési kulcsokat. Az Azure Key Vault használatával biztonságosan kezelheti és elforgathatja a kulcsokat, és biztonságossá teheti a kapcsolati sztring a Microsoft Entra-azonosítóval, és engedélyezheti a hozzáférést a Microsoft Entra-azonosítóval.

Az alkalmazásban kétféleképpen konfigurálhat kapcsolati sztring.

Az API meghívásakor AddAzureSignalR() beállíthatja a kapcsolati sztring:

services.AddSignalR().AddAzureSignalR("<connection_string>");

Vagy hívhat AddAzureSignalR() argumentumok nélkül is. A szolgáltatás SDK a konfigurációszolgáltatóban elnevezett Azure:SignalR:ConnectionString konfigurációból adja vissza a kapcsolati sztring.

Helyi fejlesztési környezetben a konfiguráció egy fájlban (appsettings.json vagy secrets.json) vagy környezeti változókban van tárolva. A kapcsolati sztring az alábbi módok egyikével konfigurálható:

  • Használjon .NET-titkos kódkezelőt (dotnet user-secrets set Azure:SignalR:ConnectionString "<connection_string>").
  • Állítson be egy környezeti változót a kapcsolati sztring.Azure__SignalR__ConnectionString A kettőspontokat dupla aláhúzásjelre kell cserélni a környezeti változó konfigurációs szolgáltatójában.

Éles környezetben más Azure-szolgáltatások használatával kezelheti a konfigurációkat és titkos kulcsokat, például az Azure Key Vaultot és az alkalmazáskonfigurációt. A dokumentációjukból megtudhatja, hogyan állíthat be konfigurációs szolgáltatót ezekhez a szolgáltatásokhoz.

Feljegyzés

Még akkor sem javasoljuk, hogy a kapcsolati sztring kóddal közvetlenül állítsa be a kapcsolati sztring kapcsolati sztring. Ehelyett olvassa el a kapcsolati sztring egy titkos tárból, például a Key Vaultból, és adja át nekiAddAzureSignalR().

Több kapcsolati sztring konfigurálása

Az Azure SignalR Szolgáltatás lehetővé teszi, hogy a kiszolgáló egyszerre több szolgáltatásvégponthoz csatlakozzon, így több olyan kapcsolatot is képes kezelni, amelyek túllépik a szolgáltatáspéldányok korlátját. Ha az egyik szolgáltatáspéldány leállt, a többi szolgáltatáspéldányt biztonsági mentésként használhatja. A több példány használatával kapcsolatos további információkért lásd a SignalR szolgáltatás több példánysal való méretezését ismertető témakört.

Több példányt kétféleképpen konfigurálhat:

  • Kódon keresztül:

    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),
            };
        });
    

    Nevet és típust rendelhet az egyes szolgáltatásvégpontokhoz, hogy később meg tudja különböztetni őket.

  • Konfiguráción keresztül:

    Bármely támogatott konfigurációszolgáltatót (például titkos kódkezelőt, környezeti változókat vagy key vaultot) használhat a kapcsolati sztring tárolására. Íme egy példa, amely egy titkos kódkezelőt használ:

    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>
    

    Az egyes végpontokhoz más konfigurációs névvel rendelhet hozzá nevet és típust a következő formátumban:

    Azure:SignalR:ConnectionString:<name>:<type>