Överordnade slutpunkter

Funktionen för överordnade slutpunkter gör att Azure SignalR Service kan skicka meddelanden och anslutningshändelser till en uppsättning slutpunkter i serverlöst läge. Du kan använda överordnade slutpunkter för att anropa en hubbmetod från klienter i serverlöst läge för att meddela slutpunkter när klientanslutningar är anslutna eller frånkopplade.

Kommentar

Överordnade slutpunkter kan bara konfigureras i serverlöst läge.

Inställningar för överordnade slutpunkter

Inställningarna för en överordnad slutpunkt består av en lista över orderkänsliga objekt:

  • En URL-mall som anger var meddelanden ska skickas.
  • En uppsättning regler.
  • Autentiseringskonfigurationer.

När en händelse utlöses kontrolleras ett objekts regler en i taget i ordning. Meddelanden skickas till det första matchande objektets överordnade slutpunkts-URL.

Inställningar för URL-mall

Du kan parametrisera den överordnade slutpunkts-URL:en för att stödja olika mönster. Det finns tre fördefinierade parametrar:

Fördefinierad parameter Description
{hub} En hubb är ett begrepp för Azure SignalR Service. En hubb är en isoleringsenhet. Omfattningen för användare och meddelandeleverans är begränsad till en hubb.
{kategori} En kategori kan vara något av följande värden:
  • anslutningar: Anslut ionslivshändelser. Den utlöses när en klientanslutning är ansluten eller frånkopplad. Den innehåller anslutna och frånkopplade händelser.
  • messages: Utlöses när klienter anropar en hubbmetod. Den innehåller alla andra händelser, förutom händelser i anslutningskategorin.
{event} För meddelandekategorin är en händelse målet i ett anropsmeddelande som klienterna skickar. För kategorin anslutningar används endast anslutna och frånkopplade.

Dessa fördefinierade parametrar kan användas i URL-mönstret. Parametrar ersätts med ett angivet värde när du utvärderar den överordnade slutpunkts-URL:en. Till exempel:

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

När en klientanslutning i "chatt"-hubben är ansluten skickas ett meddelande till den här URL:en:

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

När en klient i "chatt"-hubben anropar hubbmetoden broadcastskickas ett meddelande till den här URL:en:

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

Nyckelvalvshemlighetsreferens i URL-mallinställningar

Den överordnade slutpunkts-URL:en är inte krypterad. Du kan skydda känsliga överordnade slutpunkter med hjälp av Key Vault och komma åt dem med en hanterad identitet.

Så här aktiverar du hanterad identitet i din SignalR-tjänstinstans och ger den Åtkomst till Key Vault:

  1. Lägg till en systemtilldelad identitet eller användartilldelad identitet. Se Lägga till hanterad identitet i Azure-portalen.

  2. Bevilja hemlig läsbehörighet för den hanterade identiteten i åtkomstprinciperna i Key Vault. Se Tilldela en Key Vault-åtkomstprincip med hjälp av Azure-portalen

  3. Ersätt din känsliga text med syntaxen nedan i det överordnade slutpunkts-URL-mönstret:

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

    <secret-identity>är den fullständiga dataplans-URI:n för en hemlighet i Key Vault, om du vill inkludera en version, t.ex. https://myvault.vault.azure.net/secrets/mysecret/https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

    En fullständig referens skulle till exempel se ut så här:

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

    En överordnad slutpunkts-URL till Azure Function skulle se ut så här:

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

Kommentar

Var 30:e minut, eller när de överordnade slutpunktsinställningarna eller den hanterade identiteten ändras, läser tjänsten om det hemliga innehållet. Du kan omedelbart utlösa en uppdatering genom att ändra inställningarna för den överordnade slutpunkten.

Regelinställningar

Du kan ange hubbregler, kategoriregler och händelseregler separat. Matchningsregeln stöder tre format:

  • Använd en asterisk (*) för att matcha alla händelser.
  • Använd ett kommatecken (,) för att ansluta till flera händelser. Matchar till exempel connected, disconnected de anslutna och frånkopplade händelserna.
  • Använd det fullständiga händelsenamnet för att matcha händelsen. Matchar till exempel connected den anslutna händelsen.

Kommentar

Om du använder Azure Functions med SignalR-utlösare exponerar SignalR-utlösaren en enskild slutpunkt i följande format: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>. Du kan bara konfigurera URL-mallinställningar till den här URL:en och behålla standardinställningarna för regel. Se SignalR Service-integrering för mer information om hur du hittar <Function_App_URL> och <API_KEY>.

Autentiseringsinställningar

Du kan konfigurera autentisering för varje överordnade slutpunktsinställning separat. När du konfigurerar autentisering anges en token i rubriken för Authentication det överordnade meddelandet. För närvarande stöder Azure SignalR Service följande autentiseringstyper:

  • None
  • ManagedIdentity

När du väljer ManagedIdentitymåste du först aktivera en hanterad identitet i Azure SignalR Service och eventuellt ange en resurs. Mer information finns i Hanterade identiteter för Azure SignalR Service .

Konfigurera inställningar för överordnade slutpunkter via Azure-portalen

Kommentar

Integrering med App Service-miljön stöds för närvarande inte.

  1. Gå till Azure SignalR Service.
  2. Välj Inställningar.
  3. Växla tjänstläge till Serverlös.
  4. Lägg till URL:er under uppströms-URL-mönster. Screenshot of AzureSignalR Service Upstream settings.
  5. Välj Hubbregler för att öppna Uppströms Inställningar. Screenshot of Azure SignalR Upstream setting details.
  6. Ändra hubbregler, händelseregler och kategoriregler genom att ange regelvärde i motsvarande fält.
  7. Under Överordnad autentisering väljer du
  8. Använd Hanterad identitet. (Kontrollera att du har aktiverat hanterad identitet)
  9. Välj alternativ under Målgrupp i den utfärdade token. Mer information finns i Hanterade identiteter för Azure SignalR Service .

Konfigurera överordnade slutpunktsinställningar via Resource Manager-mall

Om du vill konfigurera överordnade slutpunktsinställningar med hjälp av en Azure Resource Manager-mall anger du upstream egenskapen i properties egenskapen. Följande kodfragment visar hur du ställer in upstream egenskapen för att skapa och uppdatera överordnade slutpunktsinställningar.

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

Serverlösa protokoll

Azure SignalR Service skickar meddelanden till slutpunkter som följer följande protokoll. Du kan använda SignalR Service-utlösarbindning med Funktionsapp, som hanterar dessa protokoll åt dig.

Metod

POST

Begärandehuvud

Namn Beskrivning
X-ASRS-Anslut ion-ID Anslutnings-ID för klientanslutningen.
X-ASRS-Hub Hubben som klientanslutningen tillhör.
X-ASRS-Kategori Den kategori som meddelandet tillhör.
X-ASRS-Event Händelsen som meddelandet tillhör.
X-ASRS-Signature En hashbaserad kod för meddelandeautentisering (HMAC) som används för validering. Mer information finns i Signatur .
X-ASRS-User-Claims En grupp med anspråk för klientanslutningen.
X-ASRS-User-ID Användaridentiteten för klienten som skickar meddelandet.
X-ASRS-Client-Query Frågan för begäran när klienter ansluter till tjänsten.
Autentisering En valfri token när du använder ManagedIdentity.

Begärandetext

Connected

Innehållstyp: application/json

Frånkopplad

Innehållstyp: application/json

Namn Type Description
Fel sträng Felmeddelandet för en stängd anslutning. Tom när anslutningar stängs utan fel.

Meddelande om anrop

Innehållstyp: application/json eller application/x-msgpack

Namn Type Description
Anrops-ID sträng En valfri sträng som representerar ett meddelande om anrop. Hitta information i anrop.
Mål sträng Samma som händelsen och samma som målet i ett anropsmeddelande.
Argument Matris med objekt En matris som innehåller argument som ska tillämpas på den metod som anges i Target.

Signatur

Tjänsten beräknar SHA256-kod för X-ASRS-Connection-Id värdet med både den primära åtkomstnyckeln och den sekundära åtkomstnyckeln HMAC som nyckel. Tjänsten ställer in den i X-ASRS-Signature huvudet när http-begäranden görs till en överordnad slutpunkt:

Hex_encoded(HMAC_SHA256(accessKey, connection-id))

Nästa steg