Felsőbb rétegbeli végpontok

A felsőbb rétegbeli végpontok funkció lehetővé teszi, hogy az Azure SignalR Service kiszolgáló nélküli módban küldjön üzeneteket és kapcsolati eseményeket egy végpontkészletbe. A felsőbb rétegbeli végpontokkal kiszolgáló nélküli módban hívhat meg egy központi metódust az ügyfelektől, hogy értesítse a végpontokat, ha az ügyfélkapcsolatok csatlakoznak vagy megszakadnak.

Megjegyzés:

A felsőbb rétegbeli végpontok csak kiszolgáló nélküli módban konfigurálhatók.

Felsőbb rétegbeli végpont beállításai

A felsőbb rétegbeli végpont beállításai a sorrendre érzékeny elemek listáját tartalmazzák:

  • EGY URL-sablon, amely meghatározza, hogy hová küldenek üzeneteket.
  • Egy szabálykészlet.
  • Hitelesítési konfigurációk.

Egy esemény aktiválásakor a rendszer egyenként ellenőrzi az elemek szabályait. A rendszer üzeneteket küld az első egyező elem felső végpontjának URL-címére.

URL-sablon beállításai

A különböző minták támogatásához paraméterezheti a felső végpont URL-címét. Három előre definiált paraméter létezik:

Előre definiált paraméter Leírás
{hub} A központ az Azure SignalR Szolgáltatás fogalma. A központ az elkülönítés egysége. A felhasználók hatóköre és az üzenetkézbesítés egy központra van korlátozva.
{category} A kategória a következő értékek egyike lehet:
  • kapcsolatok: Csatlakozás élettartam-események. Akkor aktiválódik, ha egy ügyfélkapcsolat csatlakozik vagy megszakad. Ez magában foglalja a csatlakoztatott és a leválasztott eseményeket.
  • üzenetek: Akkor aktiválódott, amikor az ügyfelek hub-metódust hívnak meg. Az összes többi eseményt tartalmazza, kivéve a kapcsolatok kategóriában szereplő eseményeket .
{event} Az üzenetek kategóriájában egy esemény az ügyfelek által küldött meghívási üzenet célja. A kapcsolatok kategória esetében a rendszer csak a csatlakoztatott és a leválasztott kapcsolatot használja.

Ezek az előre definiált paraméterek használhatók az URL-mintában. A paramétereket a rendszer egy megadott értékre cseréli a felső végpont URL-címének kiértékelésekor. Például:

http://host.com/{hub}/api/{category}/{event}

Ha a "csevegőközpont" ügyfélkapcsolata csatlakozik, a rendszer a következő URL-címre küld üzenetet:

http://host.com/chat/api/connections/connected

Amikor a "csevegőközpont" egyik ügyfele meghívja a hub metódust broadcast, a rendszer üzenetet küld erre az URL-címre:

http://host.com/chat/api/messages/broadcast

Key Vault titkos kulcshivatkozás az URL-sablon beállításaiban

A felső végpont URL-címe nincs titkosítva. Bizalmas, felsőbb rétegbeli végpontokat biztonságossá tehet a Key Vault használatával, és felügyelt identitással érheti el őket.

Felügyelt identitás engedélyezése a SignalR szolgáltatáspéldányban, és Key Vault-hozzáférés biztosítása:

  1. Adjon hozzá egy rendszer által hozzárendelt vagy felhasználó által hozzárendelt identitást. Lásd : Felügyelt identitás hozzáadása az Azure Portalon.

  2. Titkos olvasási engedélyt adhat a felügyelt identitáshoz a Key Vault hozzáférési szabályzataiban. Lásd: Key Vault hozzáférési szabályzat hozzárendelése az Azure Portal használatával

  3. Cserélje le a bizalmas szöveget az alábbi szintaxisra a felső végpont URL-mintázatában:

    {@Microsoft.KeyVault(SecretUri=<secret-identity>)}
    

    <secret-identity>a Key Vault titkos kulcsainak teljes adatsík URI-ja, opcionálisan egy verziót is beleértve, például https://myvault.vault.azure.net/secrets/mysecret/https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

    Egy teljes hivatkozás például a következőhöz hasonlóan nézne ki:

    {@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

    Az Azure-függvényhez tartozó felső végpont URL-címe a következőhöz hasonlóan nézne ki:

    https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

Megjegyzés:

30 percenként, vagy amikor a felsőbb rétegbeli végpont beállításai vagy a felügyelt identitás megváltozik, a szolgáltatás újraolvasja a titkos tartalmat. A frissítés azonnal aktiválható a felsőbb rétegbeli végpont beállításainak módosításával.

Szabálybeállítások

A központi szabályokat, a kategóriaszabályokat és az eseményszabályokat külön állíthatja be. Az egyező szabály három formátumot támogat:

  • Bármely eseményhez használjon csillagot (*).
  • Több esemény összekapcsolásához használjon vesszőt (,). Például connected, disconnected egyezik a csatlakoztatott és a leválasztott eseményekkel.
  • Használja a teljes eseménynevet az eseményhez való igazodáshoz. Például connected egyezik a csatlakoztatott eseményével.

Megjegyzés:

Ha az Azure Functionst SignalR-eseményindítóval használja, a SignalR-eseményindító egyetlen végpontot tesz elérhetővé a következő formátumban: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>. Ehhez az URL-címhez egyszerűen konfigurálhatja az URL-sablon beállításait , és megtarthatja az alapértelmezett szabálybeállításokat . A keresés és <API_KEY>a keresés <Function_App_URL> részleteiért tekintse meg a SignalR szolgáltatás integrációját ismertető cikket.

Hitelesítési beállítások

A hitelesítést minden felsőbb rétegbeli végponthoz külön konfigurálhatja. A hitelesítés konfigurálásakor egy jogkivonat van beállítva a Authentication felsőbb rétegbeli üzenet fejlécében. Az Azure SignalR Szolgáltatás jelenleg a következő hitelesítési típusokat támogatja:

  • None
  • ManagedIdentity

Ha ezt választja ManagedIdentity, először engedélyeznie kell egy felügyelt identitást az Azure SignalR Szolgáltatásban, és opcionálisan meg kell adnia egy erőforrást. A részleteket az Azure SignalR Service felügyelt identitásai között találja.

Felsőbb rétegbeli végpontbeállítások konfigurálása az Azure Portalon

Megjegyzés:

Az App Service-környezettel való integráció jelenleg nem támogatott.

  1. Nyissa meg az Azure SignalR Szolgáltatást.
  2. Válassza a Beállítások lehetőséget.
  3. Szolgáltatás mód váltása kiszolgáló nélkülire.
  4. URL-címek hozzáadása a felsőbb rétegbeli URL-minta alatt. Screenshot of AzureSignalR Service Upstream settings.
  5. Válassza a Központi szabályok lehetőséget a felsőbb rétegbeli Gépház megnyitásához. Screenshot of Azure SignalR Upstream setting details.
  6. Módosítsa a központi szabályokat, az eseményszabályokat és a kategóriaszabályokat úgy, hogy megadja a szabály értékét a megfelelő mezőben.
  7. Az Upstream Authentication (Felsőbb rétegbeli hitelesítés) területen válassza a
  8. Felügyelt identitás használata. (Győződjön meg arról, hogy engedélyezte a felügyelt identitást)
  9. A kibocsátott jogkivonat Célközönség területén válasszon lehetőségeket. A részleteket az Azure SignalR Service felügyelt identitásai között találja.

Felsőbb rétegbeli végpontbeállítások konfigurálása Resource Manager-sablonnal

A felsőbb rétegbeli végpontbeállítások Azure Resource Manager-sablonnal való konfigurálásához állítsa be a upstream tulajdonság tulajdonságátproperties. Az alábbi kódrészlet bemutatja, hogyan állíthatja be a tulajdonságot a upstream felsőbb rétegbeli végpontbeállítások létrehozásához és frissítéséhez.

{
  "properties": {
    "upstream": {
      "templates": [
        {
          "UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
          "EventPattern": "*",
          "HubPattern": "*",
          "CategoryPattern": "*",
          "Auth": {
            "Type": "ManagedIdentity",
            "ManagedIdentity": {
              "Resource": "<resource>"
            }
          }
        }
      ]
    }
  }
}

Kiszolgáló nélküli protokollok

Az Azure SignalR Service az alábbi protokollokat követő végpontoknak küld üzeneteket. A SignalR Service eseményindító kötését a Függvényalkalmazással használhatja, amely kezeli ezeket a protokollokat.

Method

POST

Kérelem fejléce

Name Leírás
X-ASRS-Csatlakozás ion-Id Az ügyfélkapcsolat kapcsolatazonosítója.
X-ASRS-Hub Az a központ, amelyhez az ügyfélkapcsolat tartozik.
X-ASRS-Category Az a kategória, amelyhez az üzenet tartozik.
X-ASRS-Event Az az esemény, amelyhez az üzenet tartozik.
X-ASRS-Signature Az ellenőrzéshez használt kivonatalapú üzenethitelesítési kód (HMAC). Részletekért tekintse meg az Aláírás című témakört.
X-ASRS-User-Claims Az ügyfélkapcsolat jogcímcsoportja.
X-ASRS-User-Id Az üzenetet küldő ügyfél felhasználói identitása.
X-ASRS-Client-Query A kérés lekérdezése, amikor az ügyfelek csatlakoznak a szolgáltatáshoz.
Authentication Nem kötelező jogkivonat használata esetén ManagedIdentity.

Kérés törzse

Csatlakozva

Tartalomtípus: application/json

Leválasztott

Tartalomtípus: application/json

Name Type Description
Hiba sztring Egy lezárt kapcsolat hibaüzenete. Üres, ha a kapcsolatok hiba nélkül bezárulnak.

Meghívási üzenet

Tartalomtípus: application/json vagy application/x-msgpack

Name Type Description
InvocationId sztring Nem kötelező sztring, amely egy meghívási üzenetet jelöl. A meghívások részleteinek megkeresése.
Target sztring Ugyanaz, mint az esemény, és ugyanaz, mint a meghívási üzenetben szereplő cél.
Arguments Objektumtömb Olyan tömb, amely a hivatkozott Targetmetódusra alkalmazandó argumentumokat tartalmazza.

Aláírás

A szolgáltatás az érték SHA256-kódját X-ASRS-Connection-Id az elsődleges hozzáférési kulcs és a másodlagos hozzáférési kulcs kulcsként HMAC való használatával számítja ki. A szolgáltatás a fejlécben fogja beállítani, X-ASRS-Signature amikor HTTP-kéréseket küld egy felsőbb rétegbeli végpontra:

Hex_encoded(HMAC_SHA256(accessKey, connection-id))

Következő lépések