Oh! 365 blog

主に SPO や Teams に関する情報を発信しています。

SharePoint Online でサイトの権限一覧を取得する

SharePoint Online において、サイトの権限の一覧を取得したいシーンがよくあります。従来、監査目的で、適切に権限の管理ができているかを見るために、CSOM 等の API を使用してサイトやライブラリ、ファイル単位で権限を一覧化する場面が多々ありましたが、SharePoint Online の標準機能のレポート機能で、サイトコレクション内の固有の権限が付与されたファイルの一覧を CSV ファイルに出力する機能が提供されるようになったため、備忘録として残しておきます。

できること

手元の環境で動作を検証してみたところ、今回紹介するレポート機能では以下のことができそうです。

  • サイトコレクションの管理者のみ実行可能
  • 固有の権限が付与されたサイトやフォルダ、ファイルが対象に、権限の一覧を CSV ファイルに出力可能
  • 外部ユーザーも対象となる
  • サイトコレクション単位で出力 (トップサイトだけでなく、配下のサブサイトも対象になる)

以下のようにサイト、ライブラリ、ファイルなどの単位で固有の権限が付与されたコンテンツの権限一覧が出力されます。SharePoint グループ経由で権限を付与している場合は、SharePoint グループ名のまま表示されるので、SharePoint グループに所属しているユーザーの確認は別途必要になりますね。

f:id:keisuke-blog:20210418124146p:plain
出力されたレポートの例

標準機能でこのレベルのレポートが出てきたのはすごいですね。サイトコレクション単位で固有の権限が付与されたコンテンツの一覧が CSV ファイルに出力できるので、多くの場面ではこのレポートが十分使えそうです。テナント全体でとか、複数のサイトコレクションを一括で、というシナリオだとスクリプトの実装を検討する必要がありますが、少ないサイトであれば十分利用できそうです。残念ながら、このレポートは画面操作で出力する必要があるので、API から取得するということはできなさそうです(2021年 4 月時点)スクリプトを 1 から実装するのは大変ですが、Power Automate が使える環境であれば、サイトコレクションの一覧だけ取得 UI Flow で自動化してしまうのはアリかもしれません。

公開情報は以下です。
docs.microsoft.com

機能の説明も引用しておきます。

特定の SharePoint サイトまたは OneDrive 上のすべての一意のファイル、ユーザー、アクセス許可、およびリンクの CSV ファイルを作成できます。 これにより、使用されている共有方法や、ファイルやフォルダーがゲストと共有されているかどうかを確認することができます。 レポートを実行するには、サイト管理者である必要があります。

レポートの出力手順

以下の手順で利用できます。

1. サイトコレクションの管理者でサイトの利用状況ページにアクセスします。

f:id:keisuke-blog:20210418121954p:plain

2. ページ下部にある "外部ユーザーと共有” の "レポートを実行" というボタンを押します。
f:id:keisuke-blog:20210418121854p:plain

※ 表示されていない場合、権限が足りないことが想定されます。
※ 検証では、フルコントロールを与えても表示されませんでした。アクセス権の取得対象がサイトコレクション全体なので、サイトコレクションの管理者が必要と考えられます。


3. レポートの出力先フォルダを指定します。
f:id:keisuke-blog:20210418123348p:plain

※ 今のところ、サイト作成時にデフォルトで存在する "ドキュメント" という名前のドキュメント ライブラリのみが選択できるようです。
※ ポップアップの上部に [+新規] というボタンもあるので、既存のフォルダがない場合はこのポップアップ上からも新規フォルダを作成可能です。

4. 保存ボタンを押すと、指定したフォルダにレポートが出力されます。
※ 少し時間がかかります。手元の環境では数分で完了しましたが、コンテンツが多いとさらに時間が必要かもしれません。

日本語が文字化けする場合

日本語のファイル名が含まれていると、そのまま Excel で開くと以下のように文字化けしてしまいました。

f:id:keisuke-blog:20210418124617p:plain

Excel にインポートするときに文字コードを指定するか、一旦メモ帳などで開いてから文字コードを変換することで回避可能です。手元の環境では以下の手順で回避できることを確認しました。

1) 出力された CSV をメモ帳で開く。
2) 文字コードを [ANSI] または [UTF-8(BOM 付き)] に変更して保存しなおす。

OneDrive の場合

OneDrive for Business の場合は、"OneDrive の設定" から、利用できそうです。

f:id:keisuke-blog:20210418125907p:plain

おわりに

サイトの利用状況の公開情報もありますが、具体的な内容ではないですが、分析機能が強化されたと記載がありました。"外部ユーザーと共有” の項目に表示されているファイルの一覧がレポートされるのかと勘違いしそうですよね。

SharePoint サイトの利用状況データを表示する - SharePoint

[ 外部ユーザーと共有] レポートをエクスポートして、さらに分析やレポートを行うことができるようになりました。 サイト所有者と管理者は、ページの右下隅にある [ レポートの実行] ボタンをクリックして、このデータを CSV ファイルに抽出できます。

今回の投稿は以上です。