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ék1.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.msi azure.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.app
vagy 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álja
clientId
: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álja
clientSecret
: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álja
clientCertPath
: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.
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>