次の方法で共有


マネージド ID の使用

この記事では、Azure Web PubSub でマネージド ID を作成して使用する方法について説明します。

重要

Azure Web PubSub では、1 つのマネージド ID のみをサポートできます。 システム割り当て ID とユーザー割り当て ID の "どちらか" を追加できます。

システム割り当て ID を追加する

Azure portal でマネージド ID を設定するには、Azure Web PubSub インスタンスを作成し、その機能を有効にします。

  1. Azure portal で、Web PubSub リソースを作成します。 ポータルでリソースに移動します。

  2. 左側のメニューで [ID] を選択します。

  3. [システム割り当て] タブを選択し、[状態][オン] に設定します。 [保存] を選択します。

    Azure portal でのシステム割り当て ID の追加を示すスクリーンショット。

ユーザー割り当て ID を追加する

ユーザー割り当て ID を使用して Web PubSub リソースを作成するには、ID を作成してから、その ID のリソース識別子をサービスに追加します。

  1. ユーザー割り当てマネージド ID リソースを作成します。

  2. Azure portal で、Web PubSub リソースを作成します。 ポータルでリソースに移動します。

  3. 左側のメニューで [ID] を選択します。

  4. [ユーザー割り当て] タブを選択し、[追加] を選択します。

  5. 先ほど作成した ID を検索して選択します。 [追加] を選択します。

    Azure portal でのユーザー割り当て ID の追加を示すスクリーンショット。

クライアント イベントのシナリオでマネージド ID を使用する

Azure Web PubSub はフル マネージド サービスであるため、マネージド ID を使用してトークンを手動で取得することはできません。 代わりに、Web PubSub はイベント ハンドラーにイベントを送信するときは、マネージド ID を使用してアクセス トークンを取得します。 そうすると、サービスによって、HTTP 要求の Authorization ヘッダーにアクセス トークンが設定されます。

イベント ハンドラーのマネージド ID 認証を設定する

  1. システム割り当て ID またはユーザー割り当て ID を追加します。

  2. [ハブ設定の構成] に移動し、イベント ハンドラーのアップストリームを追加または編集します。

    [ハブ設定の構成] ペインで使用する設定を示すスクリーンショット。

  3. [認証][マネージド ID を使用する] を選択し、[発行されたトークンの対象ユーザーを指定する] チェックボックスをオンにします。 対象ユーザーは、アクセス トークンの aud 要求になります。 この要求は、イベント ハンドラーの検証の一部として使用できます。

    認証には、次のいずれかのオプションを選択できます。

    • 既存の Microsoft Entra アプリケーションを使用します。 選択したアプリケーションのアプリケーション ID が使用されます。
    • サービス プリンシパルのアプリケーション ID URI を使用します。

    重要

    空のリソースを使用すると、実際には Microsoft Graph のトークン ターゲットが取得されます。 現在、Microsoft Graph ではトークン暗号化が有効なため、アプリケーションが Microsoft Graph 以外でトークンを認証することはサポートされていません。 アップストリーム ターゲットを表すサービス プリンシパルを常に作成するようにしてください。 作成したそのサービス プリンシパルのアプリケーション ID またはアプリケーション ID URI を設定します。

Azure Functions アプリでの認証

コードを変更することなく、Functions アプリのアクセス検証を簡単に設定できます。

  1. Azure portal で関数アプリに移動します。

  2. 左側のメニューで、[認証] を選択します。

  3. [ID プロバイダーの追加] を選択します。

  4. [基本] タブの [ID プロバイダー][Microsoft] を選択します。

  5. [要求が認証されない場合に実行するアクション] で、[Microsoft Entra ID でのログイン] を選択します。

  6. 既定では、新しい登録を作成するオプションが選択されています。 登録の名前を変更できます。 Microsoft Entra プロバイダーを有効にする方法の詳細については、「Microsoft Entra ID サインインを使用するように Azure App Service アプリまたは Azure Functions アプリを構成する」を参照してください。

    ID プロバイダーを追加するための基本情報を示すスクリーンショット。

  7. Web PubSub リソースに移動し、システム割り当て ID またはユーザー割り当て ID を追加します。

  8. Web PubSub リソースの左側のメニューで [設定] を選択します。

  9. [編集] を選択してハブ設定を編集してから、[編集] を選択してイベント ハンドラー設定を編集します。 [認証][マネージド ID を使用する] を選択し、[既存のアプリケーションから選択する] チェックボックスをオンにします。 作成したアプリケーションを選択します。

これらの設定を構成すると、ヘッダーにアクセス トークンを含まない要求は Functions アプリによって拒否されます。

アクセス トークンを検証する

Azure App Service または Azure Functions の Web Apps 機能を使用していない場合は、トークンを検証することもできます。

Authorization ヘッダー内のトークンは、Microsoft ID プラットフォームのアクセス トークンです。

アクセス トークンを検証するには、アプリで対象ユーザーと署名トークンも検証する必要があります。 トークンの署名は、OpenID 探索ドキュメント内の値に対して検証する必要があります。 たとえば、テナントに依存しないバージョンのドキュメントを確認してください。

Microsoft Entra ミドルウェアには、アクセス トークンを検証するための機能が組み込まれています。 サンプルを参照して、使用する言語で記述されたサンプルを見つけることができます。

トークンの検証を処理する方法を示すライブラリとコード サンプルが用意されています。 また、JSON Web Token (JWT) 検証に使用できるオープンソースのパートナー ライブラリもいくつかあります。 ほとんどすべてのプラットフォームと言語に、少なくとも 1 つのオプションがあります。 Microsoft Entra 承認ライブラリとコード サンプルの詳細については、「Microsoft ID プラットフォームの認証ライブラリ」を参照してください。

イベント ハンドラーを使って Azure Functions または Web Apps でホストする場合は、Microsoft Entra サインインを構成するのが簡単な方法です。

キー コンテナー参照にマネージド ID を使用する

Web PubSub では、マネージド ID を使用してキー コンテナーにアクセスし、シークレットを取得することができます。

  1. Azure Web PubSub 用のシステム割り当て ID またはユーザー割り当て ID を追加します。

  2. キー コンテナーで、アクセス ポリシーを使用して、マネージド ID に対する読み取りアクセス許可をシークレットに付与します。 詳細については、Azure portal でのキー コンテナー アクセス ポリシーの割り当てに関する記事を参照してください。

現在、この機能は次のシナリオで使用できます。

  • イベント ハンドラー URL テンプレートの設定でキー コンテナーからシークレットを取得するには、{@Microsoft.KeyVault(SecretUri=<secret-identity>)} という構文を使用します。