Azure AD B2B vs Azure Lighthouse - Azure Lighthouse は何がすごいのか？

# 本記事について

本記事では、Azure AD B2B と Azure Lighthouse を比較し、特に Azure Lighthouse を利用すると何ができるようになるのかをご紹介します。

# Azure AD とは？

まず、Azure AD について振り返りたいと思います。Azure AD はマイクロソフト社の ID as a Service です。特にマイクロソフト社のクラウドサービスである、Office 365 や Azure ではデフォルトの ID・アクセス管理基盤として利用されます。そのため、Office 365 や Azure を利用するときには、Azure AD の仕組みを知っておく必要があります。本記事では、特に Azure での利用について触れていきます。

* Azure AD の概念
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/7fb35d72-1d7b-5aa7-97ab-071642096a58.png)

* Azure AD と Office 365 と Azure の関係性
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/8b22d0d1-8298-8096-bf1e-b123ccbc00ab.png)


## Azure と Azure AD

Azure では、Azure AD が認証基盤となり、そのユーザーやグループの情報を使ってロールベースアクセス制御を行います。Azure ではサブスクリプションが課金の単位ですが、各サブスクリプションは必ず一つのディレクトリを信頼する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/1f460abc-3d13-7c90-5d4e-b6801841c976.png)

この信頼の向け先は変更することも可能で、詳細な手順や条件は[こちら](https://docs.microsoft.com/ja-jp/azure/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory)に記載されています。

# Azure AD B2B とは？

上記で見たように、Azure において Azure AD は絶対的な境界となります。ひとつのサブスクリプションは2つのディレクトリを同時に信頼するようなことはできません。ですが、実際には異なるディレクトリを持つ組織間でのコラボレーションが必要になります。そこで必要になるのが、Azure AD B2B という機能になります。

Azure AD B2B では、他社のディレクトリ内のユーザーを招待し、ゲストユーザーという形でリソースへのアクセスを許可します。なお、Azure AD B2B では、Azure AD / Microsoft アカウントのユーザーだけでなく、Google アカウントやほかのIdPのユーザーを招待して利用することもできます。(詳細は[こちら](https://docs.microsoft.com/ja-jp/azure/active-directory/b2b/direct-federation)。)

* Azure AD B2B の概念
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/f1149638-0da7-f7e7-b822-2bafb46dd5eb.png)

## Azure の利用時における、Azure AD B2B の特徴

Azure において、Azure AD のディレクトリは絶対的な境界です。そのため、Portal にログインした時、必ずひとつのディレクトリに入っている形になります。そのため、ゲストとして別のディレクトリに入っているときに、自社のディレクトリ配下のリソースを操作するときは、ディレクトリの切り替え（ゲスト --> 自社 または 自社 --> ゲスト）が必要になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/4819b135-7363-818a-d474-bee19b682ef2.png)

この仕組みの利点としては、ゲストユーザーに対して、テナント内のユーザーと同じように IAM 設定が行えることが挙げられます。

![210817.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/df450d45-f8b5-0b86-d249-75554291512a.png)

一方、ここで問題になるのが、複数のリソースにまたがる操作です。たとえば、Azure のリソースを操作する際には、

* ひとつのダッシュボードでまとめてリソースを見たい
* ログ検索を複数のリソースに対して行いたい
* ポリシーの強制を複数のリソースに対して行いたい

などのニーズが出てきます。もし、サブスクリプションが分かれていても、同じディレクトリの中に各リソースが存在していれば、（アクセス権さえあれば、）上記は実行可能です。しかし、リソースが属するディレクトリが分かれている場合、仮にB2Bでゲストユーザーとして招待されていたとしても、上記を実現することはできません。毎回ディレクトリの切り替えを行い、それぞれを確認・実施する必要があります。同時に検索をかけ、それぞれの条件に引っ掛かったときだけメールを送るなどといった作業はできません。

ここで必要になるのが Azure Lighthouse です。

# Azure Lighthouse とは？

Azure Lighthouse は、一言で言うと、サブスクリプションやリソースグループの管理を、別のディレクトリのグループやサービスプリンシパルに委任する仕組みです。

* Azure Lighthouse の概念

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/d1d00cbb-5f9b-1997-80ca-68a9b0168c4f.png)

上記のように管理を委任されると、ディレクトリを切り替えなくとも、ほかのディレクトリの中にあるサブスクリプションをフィルタリングできるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/af1c1300-35e8-1067-f091-785704f66dd7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/ab63b049-a457-641d-e0bf-49142b9104ab.png)

そして各リソースの画面では、異なるディレクトリの配下にあるリソースを同時に見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/cc4f0713-1c42-f24e-205d-d9ef3a68c241.png)

詳細は[こちらの記事](https://techcommunity.microsoft.com/t5/azure-sentinel/using-azure-lighthouse-and-azure-sentinel-to-monitor-across/ba-p/1043899)に譲りますが、異なるテナント配下の Log Analytics ワークスペースに対してひとつのクエリをかけるようなことも可能になります。

具体的な、Azure Lighthouse によるサブスクリプションやリソースグループの委任のステップについては、[こちらの記事](https://docs.microsoft.com/ja-jp/azure/lighthouse/how-to/onboard-customer)をご参照ください。

# Azure AD B2B vs Azure Lighthouse まとめ

今まで見てきたように、Azure AD B2B と Azure Lighthouse はともに、ディレクトリを超える際の方法になりますが、それぞれ使い方が異なります。Azure AD B2B はゲストユーザーを自社テナントに招待する形になるので、IAM の設定を自社ユーザー・ゲストユーザー双方に同じ UI で行えます。一方、複数ディレクトリにあるリソースの監視やセキュリティ運用においては、共通のダッシュボードやリソース間の検索が必要になるため、Azure Lighthouse が採用されるケースが増えてくると思われます。

* Azure AD B2B vs Azure Lighthouse まとめ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276225/b83eecb9-4840-b401-e1e1-76cc08d5ded4.png)

あるマイクロソフトのエンジニアは、Azure Lighthouse をディレクトリ間の"結婚"と評していましたが、今までディレクトリが絶対的な境界だったものが、境界を越えてリソースを扱えるようになります。

その最たる例が、Azure のログの送信です。今まで同じディレクトリの中にあるワークスペースにしか仮想マシンやリソースの診断ログを送れませんでした。しかし、Lighthouse を利用することで、異なるディレクトリ配下にあるワークスペースにもログが送れるようになります。実はこれは、今までログの収集が難しかった、[Azure AD B2C のログ収集](https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/azure-monitor)にも役立てられていたりしています。

# 最後に

本記事では、Azure AD B2B と Azure Lighthouse を比較し、特に Lighthouse を使うと何ができるのかをご紹介しました。まだまだ活用がされ始めたばかりの Azure Lighthouse ですが、複数のディレクトリに分かれた際のリソース管理では重要な役割を果たします。本記事がその一助となれば幸いです。

＊本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。