イベントへのアクセスを制御する

完了

Azure Event Hubs では、認証と認可の両方を処理するために Microsoft Entra ID と Shared Access Signature (SAS) の両方がサポートされています。 Azure には、Microsoft Entra ID と OAuth を使用して Event Hubs データへのアクセスを承認するための以下の Azure 組み込みロールが用意されています。

マネージド ID を使用してアクセスを承認する

アプリケーションのマネージド ID からの Event Hubs サービスへの要求を承認するには、そのマネージド ID に対して Azure のロールベースのアクセス制御設定を構成する必要があります。 Azure Event Hubs で、Event Hubs との間で送受信を行うためのアクセス許可を含む Azure ロールを定義します。 Azure ロールがマネージド ID に割り当てられると、適切なスコープでの Event Hubs データへのアクセスが、そのマネージド ID に付与されます。

Microsoft ID プラットフォームを使用してアクセスを承認する

Event Hubs で Microsoft Entra ID を使用する主な利点は、資格情報をコード内に保存する必要がなくなることです。 代わりに、Microsoft ID プラットフォームから OAuth 2.0 アクセス トークンを要求することができます。 Microsoft Entra は、アプリケーションを実行しているセキュリティ プリンシパル (ユーザー、グループ、またはサービス プリンシパル) の認証を行います。 認証が成功すると、Microsoft Entra ID はアプリケーションにアクセス トークンを返し、アプリケーションは続けて、そのアクセス トークンを使用して Azure Event Hubs への要求を承認できます。

Shared Access Signature を使用して Event Hubs のパブリッシャーへのアクセスを承認する

イベント パブリッシャーはイベント ハブの仮想エンドポイントを定義します。 パブリッシャーは、イベント ハブへのメッセージ送信にのみ使用でき、メッセージ受信には使用できません。 通常、Event Hub はクライアントごとに 1 つのパブリッシャーを使用します。 Event Hub のパブリッシャーに送信されるすべてのメッセージは、その Event Hub 内でキューに格納されます。 パブリッシャーでは、きめの細かいアクセス制御を行うことができます。

各 Event Hubs クライアントには、クライアントにアップロードされる一意のトークンが割り当てられます。 トークンを保持するクライアントでは、1 つのパブリッシャーにのみ送信でき、それ以外のパブリッシャーには送信できません。 複数のクライアントが同じトークンを共有する場合、これらのクライアントそれぞれがパブリッシャーを共有します。

すべてのトークンは、Shared Access Signature キーを使用して割り当てられます。 通常、すべてのトークンは、同じキーで署名されます。 クライアントではキーが認識されません。そのため、クライアントがトークンを生成することはできません。 クライアントは、有効期限が切れるまで同じトークンで動作します。

Shared Access Signature を使用して Event Hubs へのアクセスを承認する

Event Hubs プロデューサーによって生成されたデータから消費するバックエンド アプリケーションを認証する場合、Event Hubs トークン認証では、クライアントに管理権限、または Event Hubs 名前空間あるいはイベント ハブ インスタンスまたはトピックに割り当てられるリッスン特権が求められます。 データは、コンシューマー グループを使用して Event Hubs から消費されます。 SAS ポリシーで詳細なスコープが提供されますが、このスコープは、コンシューマー レベルではなく、エンティティ レベルでのみ定義されます。 これは、名前空間レベルか、イベント ハブのインスタンスまたはトピックのレベルで定義された特権が、そのエンティティのコンシューマー グループに対するものであることを意味します。