Introduction
日常業務のさなか、インシデントアラートを受信しました。
早速内容を確認しにいきましょう。
どれどれ
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-001.png)
もしも外部への情報漏洩が発生していたら大変です。
アラートメールに添付されているリンクからMicrosoft 365 Defender ポータルに移動して詳細を確認します。
どれどれ
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-002.png)
ふむふむ、まだわかりません。
ファイルの共有状況を見ると、、
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-003.png)
怪しいものが出てきましたね。
ここの外部ユーザーがアラートの原因でした。
想定した共有先かどうか確認するために詳細を見にいきます。
しかし
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-004.png)
??
ユーザーが見つかりません?
対象のユーザーをMicrosoft Entra 管理センターから検索しても存在しません。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-005.png)
存在しないアカウントがアラートのトリガーになっている・・・?
これは。。。亡霊!?
ファイルが生成される限り一生謎アラートが発生し続ける!?
本題
結論はもちろん亡霊ではありません。
SharePoint Onlineの仕様でEntra IDからユーザーアカウントを削除してもSharePoint Onlineのサイトコレクションにはユーザーアカウントが保持されるようです。なぜ。
SharePoint Onlineのサイトコレクションを覗いてみましょう。
アラート対象のSharePointサイトを特定し、URLの末尾に下記を入力します。
HTML_layouts/15/people.aspx?MembershipGroupId=0
こんな感じのURLになるはずです。
HTMLhttps://{$TenantId}.sharepoint.com/sites/{$SPO_SiteName}/_layouts/15/people.aspx?MembershipGroupId=0
アクセスしてみました。ユーザーがたくさん出てきますね。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-006_1.png)
ボカしているのでわかりませんが今回のアラートで検知したユーザーも見つかりました。
対象のユーザーをチェックして、操作メニューから「サイトコレクションからのユーザーの削除」を選択します。
![](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2023-12-07-dose-not-exist-user-for-microsoft-cloud-app-security-from-alert-workaround-007.png)
ユーザーが削除されました。問題解決!
まとめ
存在しないアカウントによるアラート検知も発生しなくなり、一件落着です。
同じような事象が発生して困っている人はぜひお試しください。
昔から退場者がSharePointの権限一覧に残ってしまっている!?
という事象もあり、すぐに当たりはついたのですがMCASのアラートポリシーがこの事象の影響範囲にあることは意識していなかったので記事にしてみました。
余談
実は外部ユーザーアカウントや退職者アカウントを各サイトのサイトコレクションから軒並み削除していく処理を用意したのですが、思った以上に権限が必要となってしまいました。
お手軽感が無いので公開を保留中です。
機能としては
- 月に一度(ここは任意のタイミング)
- 各サイトのサイトコレクション ユーザーの一覧を取得
- Entra IDのユーザー実在チェック
- 存在しない場合はサイトコレクションのユーザーから削除
をぐるぐるするだけのシンプルスタイルです。
しかし処理内容自体が曲者で、実行者がグローバル管理者ロールやSharePoint管理者ロールと言った強いロールを保有していても、一覧取得やサイトコレクションのユーザー削除はできないという点に難があります。
下記サイトではできると書いている(他の権限の記載がない)ので環境起因の可能性があります。
SharePoint でのユーザー プロファイルの削除に関する問題のトラブルシューティング - SharePoint in Microsoft 365 | Microsoft Learn
複数環境での検証がを実施して、どこの環境でも再現する場合は別記事として公開しようと思います。
おしまい