Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En klient, vare sig det är en webbläsare 💻, en mobilapp 📱eller en IoT-enhet 💡, använder en URL för klientåtkomst för att ansluta och autentisera med din resurs.
URL:en följer mönstret nedan:
- För MQTT-klienter är
wss://<service_name>.webpubsub.azure.com/clients/mqtt/hubs/<hub_name>?access_token=<token>det . - För alla andra klienter är
wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>det .
Den här artikeln visar flera sätt att hämta URL:en för klientåtkomst.
- För snabbstart kopierar du en från Azure Portal
- För utveckling genererar du värdet med hjälp av Web PubSub Server SDK
- Om du använder Microsoft Entra-ID kan du också anropa REST API för generera klienttoken
Kopiera från Azure Portal
På fliken Nycklar i Azure Portal finns det ett verktyg för klient-URL-generator för att snabbt generera en URL för klientåtkomst åt dig, som du ser i följande diagram. Värden som matas in här lagras inte.
Observera att för MQTT-klienter bör du välja "MQTT-klient" i den nedrullningsbara menyn framför textrutan "Klientåtkomst-URL".
Generera från tjänst-SDK
Samma URL för klientåtkomst kan genereras med hjälp av Web PubSub Server SDK.
Följ Komma igång med server-SDK för att skapa ett
WebPubSubServiceClientobjektserviceGenerera URL för klientåtkomst genom att anropa
WebPubSubServiceClient.getClientAccessToken:Generera klientåtkomsttoken
// for web pubsub native clients let token = await serviceClient.getClientAccessToken(); // for mqtt clients let token = await serviceClient.getClientAccessToken({ clientProtocol: "mqtt" });Konfigurera användar-ID
let token = await serviceClient.getClientAccessToken({ userId: "user1" });Konfigurera livslängden för token
let token = await serviceClient.getClientAccessToken({ expirationTimeInMinutes: 5, });Konfigurera en roll som kan ansluta till gruppen
group1direkt när den ansluter med hjälp av den här URL:en för klientåtkomstlet token = await serviceClient.getClientAccessToken({ roles: ["webpubsub.joinLeaveGroup.group1"], });Konfigurera en roll som klienten kan skicka meddelanden till gruppen
group1direkt när den ansluter med hjälp av den här URL:en för klientåtkomstlet token = await serviceClient.getClientAccessToken({ roles: ["webpubsub.sendToGroup.group1"], });Konfigurera en grupp
group1som klienten ansluter till när den ansluter med hjälp av den här URL:en för klientåtkomstlet token = await serviceClient.getClientAccessToken({ groups: ["group1"], });
I verklig kod har vi vanligtvis en serversida som är värd för logiken som genererar URL:en för klientåtkomst. När en klientbegäran kommer in kan serversidan använda arbetsflödet för allmän autentisering/auktorisering för att verifiera klientbegäran. Endast giltiga klientbegäranden kan få tillbaka URL:en för klientåtkomst.
Generera från REST API :generateToken
Du kan också använda Microsoft Entra-ID och generera token genom att anropa REST API för generera klienttoken.
Kommentar
Web PubSub rekommenderar inte att du skapar Microsoft Entra-ID-token för Microsoft Entra ID-tjänstens huvudnamn manuellt. Detta beror på att varje Microsoft Entra-ID-token är kortlivad och vanligtvis upphör att gälla inom en timme. Efter den här tiden måste du manuellt generera en ersättningstoken för Microsoft Entra-ID. Använd i stället våra SDK:er som automatiskt genererar och ersätter utgångna Microsoft Entra-ID-token åt dig.
Följ Auktorisera från programmet för att aktivera Microsoft Entra-ID.
Hämta Microsoft Entra-token.
Använd Microsoft Entra-token för att anropa
:generateToken.Samla in följande information:
Värdenamn Så här hämtar du värdet TenantId TenantId är värdet för katalog-ID (klientorganisation) i fönstret Översikt för det program som du registrerade. ClientId ClientId är värdet för program-ID (klient)-ID från fönstret Översikt för det program som du registrerade. ClientSecret ClientSecret är värdet för den klienthemlighet som du precis lade till i steg 1 Hämta Microsoft Entra-ID-token från Microsofts identitetsplattform
Vi använder CURL-verktyget för att visa hur du anropar REST-API:erna. Verktyget paketeras i Windows 10/11 och du kan installera verktyget efter Install CURL.
# set necessary 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"Curl-kommandot ovan skickar en POST-begäran till Microsofts identitetsslutpunkt för att få tillbaka Microsoft Entra-ID-token . I svaret visas Microsoft Entra ID-token i
access_tokenfältet . Kopiera och spara den för senare användning.Använda Microsoft Entra-ID-token för att anropa
: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"Om du behöver generera token för MQTT-klienter lägger du till parametern
clientType=mqtti URL:en: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"När du har kört
cURLkommandot bör du få ett svar som liknar detta:{ "token": "ABCDEFG.ABC.ABC" }