Microsoft 365への週末アクセス、どう制御する?
Microsoft 365(M365)のアクセスを特定の時間帯や曜日に制限したい——そんなニーズに応える方法として、条件付きアクセスポリシー(Conditional Access Policy) と Azure Automation Runbook を組み合わせたアプローチが注目されている。
ベータ機能の存在と課題
MVPのDaniel Bradley氏が最近紹介したように、Microsoftは現在、条件付きアクセスポリシーに時間帯ベースのブロック機能をベータ提供している。Graph APIのベータエンドポイントからアクセス可能で、接続を許可する曜日や時刻を条件として設定できるとみられる。
しかしこのベータ機能には公式ドキュメントが一切存在しない。Microsoftが顧客需要の低さから開発を後退させているとも考えられ、実運用への採用はリスクを伴う。
背景:「つながらない権利」と働き方の変容
時間外のシステムアクセス制限が話題になった背景として、2016年のフランスの法律がある。同法は従業員に対し、週末や休暇中にIT機器の使用を避ける権利(いわゆる「つながらない権利」)を付与したものだ。日本でも近年、労働時間外のメール対応やSlack通知に関する議論が高まっており、同様の要件を検討する企業は増えている。
もっともCOVID-19以降はリモートワークが普及し、時間や場所を問わない働き方が一般化した。現在は「いつでもアクセスできること」を重視する企業が多いのも事実だ。
ベータ不要——今すぐ実現できる構成
Office 365 IT ProsのTony Redmond氏によれば、ベータ機能を使わずとも以下の組み合わせで同等の効果を得られる。
- 条件付きアクセスポリシー: 管理者アカウントや緊急アクセス(Break Glass)アカウントを除く全ユーザーのM365アクセスをブロックするシンプルなポリシーを作成する
- 動的グループ(Dynamic Group): ブロック対象ユーザーを自動的に管理するAzure ADの動的グループを構成する
- Azure Automation Runbook: 金曜20時にポリシーを有効化し、月曜7時に無効化するスケジュール実行を設定する
RunbookではMicrosoft Graph PowerShell SDKを使い、対象ポリシーの有効/無効を切り替えると同時に、対象グループのメンバー全員のサインインセッションを強制失効(Revoke-MgUserSignInSession)させることもできる。必要な権限は Policy.ReadWrite.ConditionalAccess、Group.Read.All、User.RevokeSessions.All、GroupMember.Read.All の4つだ。
まとめ
ベータ機能に頼らずとも、条件付きアクセスポリシー+Azure Automationという今日すぐ使える組み合わせでM365のアクセス時間帯制御は実現できる。法令対応やセキュリティ強化の観点からアクセス管理を見直したい企業にとって、実績のある安定した手法として検討する価値がある。
元記事: Conditional Access Policies are the Best Way to Block Weekend Access to Microsoft 365