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.
Generieren aus service SDK
Die gleiche Clientzugriffs-URL kann mithilfe des Web PubSub Server SDK generiert werden.
Folgen Sie den ersten Schritten mit dem Server-SDK zum Erstellen eines
WebPubSubServiceClient
Objektsservice
Clientzugriffs-URL durch Aufrufen
WebPubSubServiceClient.getClientAccessToken
generieren: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 herstelltlet 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 wirdlet 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 herstelltlet 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.
Folgen Sie "Autorisieren von der Anwendung ", um die Microsoft Entra-ID zu aktivieren.
Folgen Sie dem Microsoft Entra-Token abrufen, um das Microsoft Entra-Token mit Postman abzurufen.
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.Geben Sie für den URI
https://{Endpoint}/api/hubs/{hub}/:generateToken?api-version=2022-11-01
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.
Wählen Sie "Senden" aus, und in der Antwort wird das Clientzugriffstoken angezeigt:
{ "token": "ABCDEFG.ABC.ABC" }
Der Clientzugriffs-URI ist im Format von
wss://<endpoint>/client/hubs/<hub_name>?access_token=<token>