この記事では、トピック、ドメイン、システム トピック、パートナー トピックなどの Azure Event Grid の基本的なリソースが 1 つのテナントにあり、Azure の宛先リソースが別のテナントにある場合のイベントの配信に関する情報を提供します。
サポートされている宛先とレベル
次の表では、サポートされている宛先へのテナント間配信をレベル (Basic または Standard) で利用でき、一般公開 (GA) とパブリック プレビューのどちらで利用できるかに関する情報を示します。
| 行き先 | Basic レベル | Standard レベル (名前空間) |
|---|---|---|
| イベント ハブ | 一般提供 | パブリック プレビュー |
| サービス・バス (トピック) | 一般提供 | NAの |
| Service Bus (キュー) | 一般提供 | NAの |
| Storage キュー | 一般提供 | NAの |
| Webhooks(ウェブフック) | パブリック プレビュー | パブリック プレビュー |
| 名前空間トピック | パブリック プレビュー | NAの |
| Blob Storage (デッドレターストレージ) | 一般提供 | パブリック プレビュー |
次のセクションでは、フェデレーション資格情報としてユーザー割り当て ID を持つ Azure Event Grid トピックが、別のテナントでホストされている Azure Storage キューの宛先にイベントを配信するサンプル シナリオを実装する方法について説明します。 手順の概要は次のとおりです。
- テナント A にユーザー割り当てマネージド ID を使用して Azure Event Grid トピックを作成します。
- フェデレーション クライアント資格情報を使用してマルチテナント アプリを作成します。
- テナント B に Azure Storage キューの宛先を作成します。
- トピックへのイベント サブスクリプションを作成するときに、テナント間配信を有効にし、エンドポイントを構成します。
ユーザー割り当て ID を使用してトピックを作成する (テナント A)
「ユーザー割り当てマネージド ID の管理」の記事の手順に従って、ユーザー割り当て ID を作成します。 次に、以下の手順の手順を使用して、トピックを作成するか既存のトピックを更新するときに、ユーザー割り当てマネージド ID を有効にします。
新しいトピックのユーザー割り当て ID を有効にする
トピックまたはドメインの作成ウィザードの [セキュリティ] ページで、[ユーザー割り当て ID を追加する] を選択します。
[ユーザー割り当て ID の選択] ウィンドウで、ユーザー割り当て ID を持つサブスクリプションを選択し、[ユーザー割り当て ID] を選択してから、[選択] を選択します。
既存のトピックのユーザー割り当て ID を有効にする
[ID] ページで、右ペインの [ユーザー割り当て済み] タブに切り替え、ツール バーの [+ 追加] を選択します。
[ユーザー マネージド ID の追加] ウィンドウで、次の手順を実行します。
- ユーザー割り当て ID を持つ Azure サブスクリプションを選択します。
- ユーザー割り当て ID を選択します。
- [追加] を選択します。
[ユーザー割り当て済み] タブの一覧を更新し、追加されたユーザー割り当て ID を確認します。
詳細については、次の記事をご覧ください。
マルチテナント アプリケーションを作成する
Microsoft Entra アプリを作成し、マルチテナントになるように登録を更新します。 詳細については、マルチテナント登録の有効化に関する記事を参照してください。
Graph API を使用して、マルチテナント アプリと Event Grid トピックのユーザー割り当て ID の間にフェデレーション ID 資格情報の関係を作成します。
- URL では、マルチテナント アプリのオブジェクト ID を使用します。
- [名前] に、フェデレーション クライアント資格情報の一意の名前を指定します。
-
[発行者] には、
https://login.microsoftonline.com/TENANTID/v2.0を使用します。ここで、TENANTIDは、ユーザー割り当て ID が存在するテナントの ID です。 - [サブジェクト] には、ユーザー割り当て ID のクライアント ID を指定します。
API 呼び出しが成功するのを確認して待ちます。
API 呼び出しが成功したら、フェデレーション クライアントの資格情報がマルチテナント アプリで正しく設定されていることの確認に進みます。
注
サブジェクト ID は、トピックに対するユーザー割り当て ID のクライアント ID です。
宛先ストレージ アカウントを作成する (テナント B)
ソース Event Grid トピックとユーザー割り当て ID を持つテナントとは異なるテナントにストレージ アカウントを作成します。 後で、ストレージ アカウント (テナント B) を使用して、トピック (テナント A) へのイベント サブスクリプションを作成します。
「ストレージ アカウントを作成する」の記事の手順に従って、ストレージ アカウントを作成します。
[アクセスの制御 (IAM)] ページを使用して、マルチテナント アプリを適切なロールに追加し、アプリがストレージ アカウントにイベントを送信できるようにします。 たとえばストレージ アカウント共同作成者、ストレージ キュー データ共同作成者、ストレージ キュー データ メッセージ送信者などです。 手順については、Azure キューに Azure ロールを割り当てるに関するページを参照してください。
テナント間配信を有効にし、エンドポイントを構成する
宛先ストレージ アカウントに配信するために渡されるフェデレーション クライアント資格情報を使用して、トピックのイベント サブスクリプションを作成します。
イベント サブスクリプションを作成するときに、テナント間配信を有効にし、[エンドポイントの構成] を選択します。
[エンドポイント] ページで、テナント B のサブスクリプション ID、リソース グループ、ストレージ アカウント名、キュー名を指定します。
次に、[配信用マネージド ID] セクションで次の手順を実行します。
ページの下部にある [作成] を選択して、イベント サブスクリプションを作成します。
ここで、イベントをトピックに発行し、イベントが宛先ストレージ アカウントに正常に配信されたことを確認します。