なぜ今これが重要なのか
Microsoft 365テナントで動くアプリケーションの数は年々増加している。Graph APIを通じて Sites.FullControl.All や Mail.Read といった強力な権限に同意済みのアプリが野放しになっているテナントは、正直なところ珍しくない。攻撃者がそこを突いてくるのは自明だ。
Entra IDには「ユーザー・グループ割り当て」という機能がある。これを有効にすると、割り当てを持つユーザーだけがそのアプリを使えるようになる。地味に見えて、実はゼロトラスト戦略の一環として非常に有効な手段だ。
割り当て機能の仕組みをおさらい
Entra IDのアプリ(厳密にはサービスプリンシパル)には、ユーザーまたはグループを割り当てる機能がある。割り当てが1件でも存在する状態になると、割り当てを持たないユーザーはそのアプリにサインインできなくなる。 何も割り当てがない初期状態では全ユーザーが使えるため、この「デフォルト全開」という設計を意図的に閉じていく作業が必要だ。
Microsoftドキュメントでは「エンタープライズアプリケーション」という用語が使われているが、実体はサービスプリンシパルだ。テナント内で作ったアプリ登録にも、Microsoftやサードパーティのマルチテナントアプリにもこのしくみはどちらにも適用できる。
管理センターからの操作
Entra管理センターの「エンタープライズアプリケーション」から対象アプリを開き、「ユーザーとグループ」ブレードから割り当てを追加するだけだ。個人ユーザーへの割り当ては無償で行えるが、グループへの割り当てにはEntra ID P1以上が必要な点は覚えておきたい。動的グループも使えるため、部署や役職属性と連動した自動管理も可能だ。
PowerShellによる一括操作
管理センターのGUIで1件ずつ作業するのが辛い規模になったら、Microsoft Graph PowerShell SDKを使う。ユーザーへの割り当ては New-MgUserAppRoleAssignment、グループへの割り当ては New-MgGroupAppRoleAssignment で行う。
出典: この記事は Leverage User and Group Assignments to Limit User Access to Apps の内容をもとに、筆者の見解を加えて独自に執筆したものです。