Azure AD の認証コンテキストで SharePoint Online のサイト単位で条件付きアクセスを適用させる
はじめに
Azure AD の条件付きアクセスでは基本的にアプリ単位でのアクセス制御となりますが、認証コンテキストを使用すると、SharePoint Online (SPO) のサイトごとにアクセス制御が可能になります。これにより、同一テナントにある SPO で各サイトの機密度に応じたアクセス制御が可能です。
注意点
認証コンテキストは 2022.7 時点でプレビューであり、また作成した認証コンテキストは削除できない、合計 25 個に制限されるという注意点があります。なので、本番環境には適さないかと思いますのでご注意ください。
認証コンテキストの仕様
今回はこちらのサイトを参考に進めておこうと思います。(公式ドキュメントはよく分からないです)
詳細な仕様はこちらに記載があるのですが、仕様のイメージとしては以下です。
- 認証コンテキスト=ラベルやタグのようなイメージ
- 認証コンテキスト自体にアクセスポリシーなどの設定はない
- 認証コンテキストを アクセス制御したい SPO サイトに紐づける
- 条件付きアクセスのアプリの箇所で認証コンテキストをアプリ代わりに指定する
- 上記の通りなので、一通りの条件が使用可能
設定
Azure AD の条件付きアクセスの設定ページから [認証コンテキスト(プレビュー)] を開き、[認証コンテキスト(プレビュー)] のタグを開きます。そして、名前を入力して保存します。(タグなので設定はこれだけ)
条件付きアクセスを設定します。[ポリシー] から新しいポリシーを作成します。ポリシー設定の [クラウドアプリまたは操作] からプルダウンで 認証コンテキスト(プレビュー) を選択し、対象の認証コンテキストにチェックを入れます。
今回は場所(IPアドレス)を条件にします。すべての場所を対象にして、すべての信頼できる場所を対象外にして、アクセス制御はブロックにします。これにより、信頼できる場所以外からのアクセスをブロックできます。
最後に認証コンテキストを SPO に紐づけます。設定には SPO 管理シェルを使用します。インストールのガイドはこちらです。
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
SPO 管理シェルにログインして、対象のサイトに認証コンテキストを指定します。
Connect-SPOService -Url https://<yourdomain>-admin.sharepoint.com/
Set-SPOSite -Identity https://<yourdomain>.sharepoint.com/sites/confidential -ConditionalAccessPolicy AuthenticationContext -AuthenticationContextName "信頼できる場所"
動作確認
まず https://<yourdomain>.sharepoint.com にログインしてみます。
ログインできました。
次に認証コンテキストに紐づけていないサイトを開きます。
こちらも開けました。
次に認証コンテキストを紐づけたサイト(confidential)を信頼できる場所から開きます。
こちらも開けました。
最後に信頼できる場所以外から開きます。
条件付きアクセスでブロックされることを確認できました。
まとめ
認証コンテキストを使用して、SPO サイトごとに条件付きアクセスを利かせられることを確認しました。便利な機能であるため、早く一般提供になってほしいです。
Discussion