次の方法で共有


クライアントのクライアント アクセス URL を生成する方法

クライアント (ブラウザー 💻、モバイル アプリ 📱、または IoT デバイス 💡) では、クライアント アクセス URL を使用してリソースに接続して認証します。 この URL は、wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token> のパターンに従います。 この記事では、クライアント アクセス URL を取得するいくつかの方法について説明します。

Azure portal からコピーする

Azure portal の [キー] タブには、次の図に示すように、クライアント アクセス URL をすばやく生成するためのクライアント URL ジェネレーター ツールがあります。 ここで入力した値は保存されません。

Screenshot of the Web PubSub Client URL Generator.

サービス SDK から生成する

Web PubSub サーバー SDK を使用して、同じクライアント アクセス URL を生成できます。

  1. サーバー SDK の概要に関する記事に従って、WebPubSubServiceClient オブジェクト service を作成します

  2. WebPubSubServiceClient.getClientAccessToken を呼び出して、クライアント アクセス URL を生成します。

    • ユーザー ID を構成する

      let token = await serviceClient.getClientAccessToken({ userId: "user1" });
      
    • トークンの有効期間を構成する

      let token = await serviceClient.getClientAccessToken({
        expirationTimeInMinutes: 5,
      });
      
    • このクライアント アクセス URL を使用して接続するときに、グループ group1 に直接参加できるロールを構成する

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.joinLeaveGroup.group1"],
      });
      
    • このクライアント アクセス URL を使用して接続するときに、クライアントからグループ group1 にメッセージを直接送信できるロールを構成する

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.sendToGroup.group1"],
      });
      
    • このクライアント アクセス URL を使用して接続した後に、クライアントが参加するグループ group1 を構成する

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

実際のコードでは、通常、クライアント アクセス URL を生成するロジックをホストするサーバー側があります。 クライアント要求が入ると、サーバー側では、一般的な認証/認可ワークフローを使用してクライアント要求を検証できます。 クライアント アクセス URL を返すことができるのは、有効なクライアント要求だけです。

Generate Client Token REST API を呼び出す

サービスで Microsoft Entra ID を有効にし、Microsoft Entra トークンを使用して Generate Client Token REST API を呼び出して、クライアントで使用するトークンを取得できます。

  1. アプリケーションからの認可に関する記事に従って、Microsoft Entra ID を有効にします。

  2. Microsoft Entra トークンの取得に関する記事に従って、Postman で Microsoft Entra トークンを取得します。

  3. Microsoft Entra トークンを使用して、Postman で :generateToken を呼び出します。

    Note

    最新バージョンの Postman を使用してください。 Postman の古いバージョンでは、パスのコロン:をサポートするいくつかの問題があります。

    1. URI には「https://{Endpoint}/api/hubs/{hub}/:generateToken?api-version=2022-11-01」と入力します

    2. [認証] タブで、[ベアラー トークン] を選択し、前の手順でフェッチした Microsoft Entra トークンを貼り付けます

    3. [送信] を選択すると、応答にクライアント アクセス トークンが表示されます。

      {
        "token": "ABCDEFG.ABC.ABC"
      }
      
  4. クライアント アクセス URI は、wss://<endpoint>/client/hubs/<hub_name>?access_token=<token> 形式です