Sdílet prostřednictvím


Jak vygenerovat adresu URL přístupu klienta pro klienty

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.
  • Pro vývoj vygenerujte hodnotu pomocí sady SDK serveru Web PubSub.
  • 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.

Snímek obrazovky s generátorem adres URL klienta Web PubSub

Generování ze sady SDK služby

Stejnou adresu URL klientského přístupu lze vygenerovat pomocí sady SDK serveru Web PubSub.

  1. Postupujte podle pokynů v části Začínáme se serverovou sadou SDK a vytvořte objekt.WebPubSubServiceClientservice

  2. Vygenerujte adresu URL klientského přístupu voláním WebPubSubServiceClient.getClientAccessToken:

    • Generování přístupového tokenu klienta MQTT

      let token = await serviceClient.getClientAccessToken({ clientProtocol: "mqtt" });
      
    • Konfigurace ID uživatele

      let token = await serviceClient.getClientAccessToken({ userId: "user1" });
      
    • Konfigurace doby života tokenu

      let token = await serviceClient.getClientAccessToken({
        expirationTimeInMinutes: 5,
      });
      
    • 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

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.joinLeaveGroup.group1"],
      });
      
    • 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

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.sendToGroup.group1"],
      });
      
    • Nakonfigurujte skupinu group1 , ke které se klient připojí, jakmile se připojí pomocí této adresy URL klientského přístupu.

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

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.

  1. Pokud chcete povolit MICROSOFT Entra ID, postupujte podle autorizace z aplikace .

  2. Pomocí funkce Získat token Microsoft Entra získejte token Microsoft Entra pomocí nástroje Postman.

  3. 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ě.

    1. 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.

    2. Na kartě Ověřování vyberte Nosný token a vložte token Microsoft Entra načtený v předchozím kroku.

    3. V odpovědi vyberte Odeslat a zobrazí se přístupový token klienta:

      {
        "token": "ABCDEFG.ABC.ABC"
      }