WebPubSubServiceClient で Azure Identity を使用する

この記事では、Microsoft Entra IDを使ってAzure Web PubSubへのリクエストを承認するWebPubSubServiceClientの作成方法を紹介します。

前提条件

Important

Microsoft EntraのIDに、アプリケーションが呼び出すSDK操作に必要なデータプレーン権限を含むAzureロールを割り当てます。 クライアントアクセストークンを生成し接続するためには、アイデンティティには Microsoft.SignalRService/WebPubSub/clientConnection/generateToken/action と Microsoft.SignalRService/WebPubSub/clientConnection/writeの両方が必要です。 組み込みの Web PubSubサービスオーナー の役割は両方の権限を持ちながら、すべてのデータプレーンAPIへのアクセス権を付与します。 より狭い組み込みロールには両方の権限が含まれることはありません。 最小権限アクセスの場合は、アプリケーションが必要とする権限のみを含むカスタムロールを使いましょう。

サービス クライアントを作成する

言語を選びましょう:

Azure Identity パッケージと Azure Web PubSub パッケージをインストールします:

dotnet add package Azure.Identity
dotnet add package Azure.Messaging.WebPubSub

DefaultAzureCredentialを作成し、WebPubSubServiceClientに渡します:

using Azure.Identity;
using Azure.Messaging.WebPubSub;

var credential = new DefaultAzureCredential();
var client = new WebPubSubServiceClient(
    new Uri("<endpoint>"),
    "<hub>",
    credential);

その他の認証情報の種類については、Azure Identityクライアントライブラリ(.NET)を参照してください。

依存関係の挿入を使用する

依存性注入パッケージをインストールしてください:

dotnet add package Microsoft.Extensions.Azure

サービス コレクションに WebPubSubServiceClient を登録します:

using Azure.Identity;
using Microsoft.Extensions.Azure;
using Microsoft.Extensions.DependencyInjection;

void ConfigureServices(IServiceCollection services)
{
    services.AddAzureClients(builder =>
    {
        builder.AddWebPubSubServiceClient(
            new Uri("<endpoint>"),
            "<hub>",
            new DefaultAzureCredential());
    });
}

詳細については、.NETのAzure Web PubSubサービスクライアントライブラリおよび完全なサンプルをご覧ください。