Megosztás a következőn keresztül:


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

Képernyőkép a Web PubSub-ügyfél URL-generátoráról.

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.

  1. A kiszolgálói SDK használatának első lépéseit követve hozzon létre objektumot WebPubSubServiceClientservice

  2. Ü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 csatlakozik

      let 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 csatlakozik

      let 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ával

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

  1. A Microsoft Entra-azonosító engedélyezéséhez kövesse az Engedélyezés alkalmazásból parancsot.

  2. Szerezze be a Microsoft Entra-jogkivonatot.

  3. A Microsoft Entra-jogkivonat használatával hívja meg a rendszer :generateToken.

  4. 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
  5. 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.

  6. 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"
    }