Ügyfélelérési URL-cím létrehozása az ügyfelek számára
Az ügyfél, legyen az böngésző 💻, mobilalkalmazás 📱vagy IoT-eszköz 💡, ügyfélelérési URL-címet használ az erőforráshoz való csatlakozáshoz és hitelesítéshez.
Az URL-cím az alábbi mintát követi:
- Az MQTT-ügyfelek esetében ez a .
wss://<service_name>.webpubsub.azure.com/clients/mqtt/hubs/<hub_name>?access_token=<token>
- Az összes többi ügyfél esetében az
wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>
.
Ez a cikk az ügyfélelérési URL-cím lekérésének számos módját mutatja be.
- Első lépésként másolja ki az egyiket az Azure Portalról
- Fejlesztéshez hozza létre az értéket a Web PubSub server SDK használatával
- Ha Microsoft Entra-azonosítót használ, meghívhatja az Ügyféljogkivonat létrehozása REST API-t is
Másolás az Azure Portalról
Az Azure Portal Kulcsok lapján található egy ügyfél URL-generátor eszköz, amely gyorsan létrehoz egy Ügyfélelérési URL-címet az alábbi ábrán látható módon. Az itt megadott értékek nincsenek tárolva.
Vegye figyelembe, hogy MQTT-ügyfelek esetén az "Ügyfélelérési URL- cím" szövegmező előtti legördülő menüben válassza az "MQTT-ügyfél" lehetőséget.
Létrehozás szolgáltatás SDK-ból
Ugyanez az ügyfélelérési URL-cím a Web PubSub-kiszolgáló SDK-val hozható létre.
A kiszolgálói SDK használatának első lépéseit követve hozzon létre objektumot
WebPubSubServiceClient
service
Ügyfélelérési URL-cím létrehozása a következő hívással
WebPubSubServiceClient.getClientAccessToken
:Ügyfélelérési jogkivonat létrehozása
// for web pubsub native clients let token = await serviceClient.getClientAccessToken(); // for mqtt clients let token = await serviceClient.getClientAccessToken({ clientProtocol: "mqtt" });
Felhasználói azonosító konfigurálása
let token = await serviceClient.getClientAccessToken({ userId: "user1" });
A jogkivonat élettartamának konfigurálása
let token = await serviceClient.getClientAccessToken({ expirationTimeInMinutes: 5, });
Olyan szerepkör konfigurálása, amely közvetlenül csatlakozhat a csoporthoz
group1
, amikor az ügyfélelérési URL-cím használatával csatlakoziklet token = await serviceClient.getClientAccessToken({ roles: ["webpubsub.joinLeaveGroup.group1"], });
Konfiguráljon egy szerepkört, amelyet az ügyfél közvetlenül csoportosíthat
group1
, amikor ezzel az ügyfélelérési URL-címvel csatlakoziklet token = await serviceClient.getClientAccessToken({ roles: ["webpubsub.sendToGroup.group1"], });
Konfiguráljon egy csoportot
group1
, amelyhez az ügyfél csatlakozik, amint csatlakozik az ügyfélelérési URL-cím használatávallet token = await serviceClient.getClientAccessToken({ groups: ["group1"], });
A valós kódban általában van egy kiszolgálóoldalunk, amely üzemelteti az ügyfélelérési URL-címet létrehozó logikát. Amikor ügyfélkérés érkezik, a kiszolgálóoldal az általános hitelesítési/engedélyezési munkafolyamat használatával érvényesítheti az ügyfélkérést. Csak érvényes ügyfélkérések kaphatják vissza az ügyfélelérési URL-címet.
Létrehozás REST API-ból :generateToken
Használhatja a Microsoft Entra ID-t is, és létrehozhatja a jogkivonatot az ügyféljogkivonat rest API-jának meghívásával.
Feljegyzés
A Web PubSub nem javasolja, hogy manuálisan hozza létre a Microsoft Entra ID-jogkivonatokat a Microsoft Entra ID szolgáltatásnevekhez. Ennek az az oka, hogy minden Microsoft Entra-azonosító jogkivonat rövid élettartamú, általában egy órán belül lejár. Ezt követően manuálisan kell létrehoznia egy helyettesítő Microsoft Entra-azonosító jogkivonatot. Ehelyett használja azokat az SDK-kat , amelyek automatikusan létrehoznak és lecserélnek lejárt Microsoft Entra-azonosító jogkivonatokat.
A Microsoft Entra-azonosító engedélyezéséhez kövesse az Engedélyezés alkalmazásból parancsot.
Szerezze be a Microsoft Entra-jogkivonatot.
A Microsoft Entra-jogkivonat használatával hívja meg a rendszer
:generateToken
.Gyűjtse be a következő adatokat:
Érték neve Az érték lekérése TenantId A TenantId a címtár (bérlő) azonosítójának értéke a regisztrált alkalmazás Áttekintés panelén. ClientID A ClientId az alkalmazás (ügyfél) azonosítójának értéke a regisztrált alkalmazás Áttekintés paneljén. ClientSecret A ClientSecret az 1. lépésben hozzáadott ügyfélkód értéke A Microsoft Entra ID-jogkivonat lekérése Microsoft Identitásplatform
A CURL eszközzel bemutatjuk, hogyan hívhatja meg a REST API-kat. Az eszköz a Windows 10/11-be van csomagolva, és a CURL telepítése után telepítheti az eszközt.
# set neccessory values, replace the placeholders with your actual values export TenantId=<your_tenant_id> export ClientId=<your_client_id> export ClientSecret=<your_client_secret> curl -X POST "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "client_id=$ClientId" \ --data-urlencode "client_secret=$ClientSecret" \ --data-urlencode "scope=https://webpubsub.azure.com/.default"
A fenti curl-parancs POST-kérést küld a Microsoft identitásvégpontjának a Microsoft Entra ID-jogkivonat visszaállításához. A válaszban megjelenik a Microsoft Entra ID token a
access_token
mezőben. Másolja ki és mentse el későbbi használatra.A Microsoft Entra ID-jogkivonat használata a meghíváshoz
:generateToken
# Replace the values in {} with your actual values. export Hostname={your_service_hostname} export Hub={your_hub} export Microsoft_Entra_Token={Microsoft_entra_id_token_from_previous_step} curl -X POST "https://$Hostname/api/hubs/$Hub/:generateToken?api-version=2024-01-01" \ -H "Authorization: Bearer $Microsoft_Entra_Token" \ -H "Content-Type: application/json"
Ha létre kell hoznia a jogkivonatot az MQTT-ügyfelek számára, fűzze hozzá a
clientType=mqtt
paramétert az URL-címhez:export Hostname={your_service_hostname} export Hub={your_hub} export Microsoft_Entra_Token={Microsoft_entra_id_token_from_previous_step} curl -X POST "https://$Hostname/api/hubs/$Hub/:generateToken?api-version=2024-01-01&clientType=mqtt" \ -H "Authorization: Bearer $Microsoft_Entra_Token" \ -H "Content-Type: application/json"
A parancs futtatása után a
cURL
következőhöz hasonló választ kell kapnia:{ "token": "ABCDEFG.ABC.ABC" }