🎃

SharePoint で誰かがアクセス権を持っていないユーザにファイルやアイテムを共有したときに通知(承認要求)を受け取りたい

2022/10/04に公開

SharePoint で誰かが誰かにファイルやアイテムを共有したときを Power Automate のトリガーにできるか?という質問を受けたので調べてみましたが、共有リンクの発行や、それに伴うアクセス権の変化などはトリガーにはできなさそうでした。
そうしたい背景としては怪しい共有を防ぎたいということと思いますので、そのあたりの代替案として、アクセス権をもっていないユーザに共有されたときに管理者が通知を受け取り、承認された場合のみ共有を許可するという設定ができるので、それを記事にします。

手順

サイト共有設定を変更する

以上で完了です。

動作確認

管理者でないユーザでアクセス権をもっていないユーザに共有する

管理者にメールが届く(承認すれば共有が完了)

おまけ

トリガーとしては使えませんが、どうしても Power Automate で何かしたい場合、HTTP 要求を使うことで、ファイルやアイテムごとのアクセス権限を取得することができます。
これを使ってスケジュール済みのフローを作成すれば、何時間に1回、権限の内容をチェックしてなにかを行うフローなど作成できるかもしれません。

ただし、アクセス権のないユーザ向けに共有リンクを作成すると、裏側で SharePoint グループが作成されたりする関係でかなり階層の深いかつややこしい構造になっているので、おすすめはできません。

ライブラリの場合
_api/web/GetFolderByServerRelativeUrl('{library_path}')/files?$expand=ListItemAllFields/RoleAssignments/Member/Users,ListItemAllFields/RoleAssignments/RoleDefinitionBindings

リストの場合
_api/web/lists/getbytitle('{list_name}')/items?$expand=RoleAssignments/Member/Users,RoleAssignments/RoleDefinitionBindings

Discussion