Generieren der Clientzugriffs-URL für die Clients

Ein Client, sei es ein Browser 💻, eine mobile App 📱 oder ein IoT-Gerät 💡, verwendet eine Clientzugriffs-URL, um eine Verbindung mit Ihrer Ressource herzustellen und sich zu authentifizieren. Diese URL folgt dem Muster wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>. In diesem Artikel werden verschiedene Möglichkeiten zum Abrufen der Clientzugriffs-URL beschrieben.

  • Kopieren Sie für den Schnellstart eine aus der Azure-Portal
  • Generieren Sie für die Entwicklung den Wert mithilfe des Web PubSub Server SDK.
  • Wenn Sie Microsoft Entra-ID verwenden, können Sie auch die REST-API zum Generieren von Clienttoken aufrufen.

Kopieren aus der Azure-Portal

Auf der Registerkarte "Schlüssel" in Azure-Portal gibt es ein Tool für den Client-URL-Generator, mit dem Sie schnell eine Clientzugriffs-URL generieren können, wie im folgenden Diagramm dargestellt. Die Hier eingegebenen Werte werden nicht gespeichert.

Screenshot of the Web PubSub Client URL Generator.

Generieren aus service SDK

Die gleiche Clientzugriffs-URL kann mithilfe des Web PubSub Server SDK generiert werden.

  1. Folgen Sie den ersten Schritten mit dem Server-SDK zum Erstellen eines WebPubSubServiceClient Objekts service

  2. Clientzugriffs-URL durch Aufrufen WebPubSubServiceClient.getClientAccessTokengenerieren:

    • Konfigurieren der Benutzer-ID

      let token = await serviceClient.getClientAccessToken({ userId: "user1" });
      
    • Konfigurieren der Lebensdauer des Tokens

      let token = await serviceClient.getClientAccessToken({
        expirationTimeInMinutes: 5,
      });
      
    • Konfigurieren einer Rolle, die einer Gruppe group1 direkt beitreten kann, wenn sie eine Verbindung mit dieser Clientzugriffs-URL herstellt

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.joinLeaveGroup.group1"],
      });
      
    • Konfigurieren einer Rolle, die der Client Nachrichten group1 direkt senden kann, wenn eine Verbindung mithilfe dieser Clientzugriffs-URL hergestellt wird

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.sendToGroup.group1"],
      });
      
    • Konfigurieren einer Gruppe group1 , der der Client beigetreten ist, sobald sie eine Verbindung mit dieser Clientzugriffs-URL herstellt

      let token = await serviceClient.getClientAccessToken({
        groups: ["group1"],
      });
      

Im realen Code verfügen wir in der Regel über eine Serverseite, um die Logik zu hosten, die die Clientzugriffs-URL generiert. Wenn eine Clientanforderung eingeht, kann die Serverseite den allgemeinen Authentifizierungs-/Autorisierungsworkflow verwenden, um die Clientanforderung zu überprüfen. Nur gültige Clientanforderungen können die Clientzugriffs-URL wieder abrufen.

Aufrufen der REST-API zum Generieren von Clienttoken

Sie können Microsoft Entra-ID in Ihrem Dienst aktivieren und das Microsoft Entra-Token verwenden, um die Rest-API zum Generieren von Clienttoken aufzurufen, um das Token für den client zu verwenden.

  1. Folgen Sie "Autorisieren von der Anwendung ", um die Microsoft Entra-ID zu aktivieren.

  2. Folgen Sie dem Microsoft Entra-Token abrufen, um das Microsoft Entra-Token mit Postman abzurufen.

  3. Verwenden Sie das Microsoft Entra-Token, um mit Postman aufzurufen :generateToken :

    Hinweis

    Bitte verwenden Sie die neueste Version von Postman. Alte Versionen von Postman haben ein Problem, das Doppelpunkt : im Pfad unterstützt.

    1. Geben Sie für den URI https://{Endpoint}/api/hubs/{hub}/:generateToken?api-version=2022-11-01

    2. Wählen Sie auf der Registerkarte "Authentifizierung " die Option "Bearertoken " aus, und fügen Sie das microsoft Entra-Token ein, das im vorherigen Schritt abgerufen wurde.

    3. Wählen Sie "Senden" aus, und in der Antwort wird das Clientzugriffstoken angezeigt:

      {
        "token": "ABCDEFG.ABC.ABC"
      }
      
  4. Der Clientzugriffs-URI ist im Format von wss://<endpoint>/client/hubs/<hub_name>?access_token=<token>