Jak vygenerovat adresu URL přístupu klienta pro klienty
Článek
Klient, ať už jde o prohlížeč 💻, mobilní aplikaci 📱nebo zařízení 💡IoT, používá adresu URL klientského přístupu k připojení a ověření s vaším prostředkem.
Adresa URL se řídí následujícím vzorem:
Pro klienty MQTT je to wss://<service_name>.webpubsub.azure.com/clients/mqtt/hubs/<hub_name>?access_token=<token>.
Pro všechny ostatní klienty je to wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>.
Tento článek ukazuje několik způsobů, jak získat adresu URL klientského přístupu.
Rychlý start potřebujete tak, že ho zkopírujete z webu Azure Portal.
Pokud používáte Microsoft Entra ID, můžete také vyvolat rozhraní REST API pro generování tokenu klienta.
Kopírování z webu Azure Portal
Na kartě Klíče na webu Azure Portal je k dispozici nástroj Generátor adres URL klienta, který vám rychle vygeneruje adresu URL klientského přístupu, jak je znázorněno v následujícím diagramu. Tady zadané hodnoty se neukládají.
Všimněte si, že pro klienty MQTT byste měli vybrat "MQTT Client" v rozevírací nabídce před textovým polem Adresa URL klientského přístupu.
Generování ze sady SDK služby
Stejnou adresu URL klientského přístupu lze vygenerovat pomocí sady SDK serveru Web PubSub.
GetClientAccessTokenOptions option = new GetClientAccessTokenOptions();
option.setWebPubSubClientProtocol(WebPubSubClientProtocol.MQTT);
WebPubSubClientAccessToken token = service.getClientAccessToken(option);
Konfigurace ID uživatele
GetClientAccessTokenOptions option = new GetClientAccessTokenOptions();
option.setUserId(id);
WebPubSubClientAccessToken token = service.getClientAccessToken(option);
Konfigurace doby života tokenu
GetClientAccessTokenOptions option = new GetClientAccessTokenOptions();
option.setExpiresAfter(Duration.ofDays(1));
WebPubSubClientAccessToken token = service.getClientAccessToken(option);
Konfigurace role, která se může připojit ke skupině group1 přímo při připojení pomocí této adresy URL klientského přístupu
GetClientAccessTokenOptions option = new GetClientAccessTokenOptions();
option.addRole("webpubsub.joinLeaveGroup.group1");
WebPubSubClientAccessToken token = service.getClientAccessToken(option);
Konfigurace role, kterou může klient odesílat zprávy do skupiny group1 přímo při připojení pomocí této adresy URL klientského přístupu
GetClientAccessTokenOptions option = new GetClientAccessTokenOptions();
option.addRole("webpubsub.sendToGroup.group1");
WebPubSubClientAccessToken token = service.getClientAccessToken(option);
Nakonfigurujte skupinu group1 , ke které se klient připojí, jakmile se připojí pomocí této adresy URL klientského přístupu.
GetClientAccessTokenOptions option = new GetClientAccessTokenOptions();
option.setGroups(Arrays.asList("group1")),
WebPubSubClientAccessToken token = service.getClientAccessToken(option);
V reálném kódu obvykle máme stranu serveru, která hostuje logiku vygenerující adresu URL klientského přístupu. Když přijde požadavek klienta, může strana serveru k ověření požadavku klienta použít obecný pracovní postup ověřování/autorizace. Adresu URL klientského přístupu můžou získat zpět pouze platné požadavky klientů.
Vyvolání rozhraní REST API pro generování tokenu klienta
Ve vaší službě můžete povolit MICROSOFT Entra ID a pomocí tokenu Microsoft Entra vyvolat rozhraní REST API generovat klientský token a získat token, který má klient použít.
Pokud chcete povolit MICROSOFT Entra ID, postupujte podle autorizace z aplikace .
K vyvolání :generateToken pomocí nástroje Postman použijte token Microsoft Entra:
Poznámka:
Použijte nejnovější verzi nástroje Postman. Starší verze Postmanu mají nějaký problém s podporou dvojtečky : v cestě.
Pro identifikátor URI zadejte https://{Endpoint}/api/hubs/{hub}/:generateToken?api-version=2024-01-01. Pokud chcete vygenerovat token pro klienty MQTT, připojte parametr &clientType=mqtt dotazu k adrese URL.
Na kartě Ověřování vyberte Nosný token a vložte token Microsoft Entra načtený v předchozím kroku.
V odpovědi vyberte Odeslat a zobrazí se přístupový token klienta: