Microsoft Entra ID を使用して Web PubSub リソースへのアクセスを認可する
Azure Web PubSub Service では、Microsoft Entra ID を使用して Azure Web PubSub リソースへの要求を承認できます。
Microsoft Entra ID でロールベースのアクセス制御 (RBAC) を使用することで、セキュリティ プリンシパル [1] にアクセス許可を付与できます。 Microsoft Entra は、このセキュリティ プリンシパルを承認し、OAuth 2.0 トークンを返します。このトークンは、Web PubSub リソースが要求の承認に使用できます。
Web PubSub 要求の認可に Microsoft Entra ID を使用すると、アクセス キーによる認可と比較してセキュリティが強化され、使いやすさが向上します。 可能な場合、必要最小限の特権でアクセスできるように、Web PubSub リソースで Microsoft Entra 認可を利用することをお勧めします。
[1] セキュリティ プリンシパル: ユーザーやリソース グループ、アプリケーション、またはシステム割り当て ID やユーザー割り当て ID などのサービス プリンシパル。
Web PubSub の Microsoft Entra ID の概要
Microsoft Entra ID を使用する場合、Web PubSub リソースにアクセスするには認証が必要です。 この認証には、次の 2 つの手順が含まれます。
- 最初に、Azure では、セキュリティ プリンシパルを認証して OAuth 2.0 トークンを発行します。
- 次に、トークンが Web PubSub リソースに要求に追加されます。 Web PubSub サービスはトークンを使用して、サービス プリンシパルがリソースにアクセスできるかどうかを確認します。
Microsoft Entra ID を使用中のクライアント側の認証
ネゴシエーション サーバー/Function App は Web PubSub リソースとアクセス キーを共有し、Web PubSub サービスがアクセス キーによって生成されたクライアント トークンを使用してクライアント接続要求を認証できるようにします。
ただし、セキュリティを向上させるために Microsoft Entra ID を使用すると、アクセス キーが無効になることがよくあります。
この問題に対処するために、クライアント トークンを生成する REST API を開発しました。 このトークンを使用して、Azure Web PubSub サービスに接続できます。
この API を使用するには、ネゴシエーション サーバーは、まず Azure から Microsoft Entra Token を取得してそれを認証する必要があります。 サーバーは、 Microsoft Entra Token を使用して Web PubSub Auth API を呼び出し、 クライアント トークンを取得できます。 その後、 クライアント トークン がクライアントに返されます。このトークンを使用して Azure Web PubSub サービスに接続できます。
Microsoft では、サポートされているプログラミング言語用のヘルパー関数 (GenerateClientAccessUri など) を提供しています。
アクセス権の Azure ロールを割り当てる
Microsoft Entra は、Azure ロールベースのアクセス制御 を通じて、セキュリティで保護されたリソースへのアクセス権を承認します。 Azure Web PubSub では、Web PubSub リソースへのアクセスに使用される一般的なアクセス許可セットを含む一連の Azure 組み込みロールが定義されます。 Web PubSub リソースにアクセスするためのカスタム ロールを定義することもできます。
リソースのスコープ
Azure RBAC ロールをセキュリティ プリンシパルに割り当てる前に、プリンシパルに必要な適切なレベルのアクセス権を特定することが重要です。 できる限り狭いスコープにロールを付与することをお勧めします。 その下にあるリソースは、より広範なスコープを持つ Azure RBAC ロールを継承します。
Azure Web PubSub リソースへのアクセスのスコープは、次のレベルで指定できます (最も狭いスコープから順に示します)。
個々のリソース。
このスコープでは、ロールの割り当てはターゲット リソースにのみ適用されます。
リソース グループ。
このスコープでは、ロールの割り当てがリソース グループ内のすべてのリソースに適用されます。
サブスクリプション。
このスコープでは、ロールの割り当てがサブスクリプションにあるすべてのリソース グループ内のすべてのリソースに適用されます。
管理グループ。
このスコープでは、ロールの割り当てが、管理グループのすべてのサブスクリプションにあるすべてのリソース グループ内のすべてのリソースに適用されます。
Web PubSub リソース用の Azure 組み込みロール
Web PubSub Service Owner
データプレーンのアクセス許可へのフル アクセス (読み取り/書き込み REST API や認証 API を含む)。
このロールは、アップストリーム サーバーを構築するために最も一般的に使用されています。
Web PubSub Service Reader
Web PubSub リソースへの読み取り専用 REST API アクセス許可を付与するために使用します。
これは、Web PubSub データプレーンの読み取り専用 REST API のみを呼び出す管理ツールを作成する場合に使用します。
次のステップ
Azure アプリケーションを作成し、Microsoft Entra 承認を使用する方法については、以下を参照してください
マネージド ID を構成し、Microsoft Entra 認証を使用する方法については、以下を参照してださい
ロールとロールの割り当ての詳細については、以下を参照してください
カスタム ロールを作成する方法については、以下を参照してください
Microsoft Entra 承認のみを使用する方法については、以下を参照してください