SharePoint Onlineで「アクセスが拒否されました」と問い合わせを受けたとき、制限付きサイトアクセスのポリシーが原因であれば、Insightsレポートから拒否されたユーザーとサイトを調査できます。
調査の中心となるのは、ActionsBlockedByPolicyレポートです。過去28日間のアクセス拒否について、直近の拒否、拒否回数が多いユーザー、拒否が集中しているサイトをPowerShellで確認できます。画面上の集計だけで判断できない場合は、最大10,000件の拒否データをダウンロードして分析します。
ただし、このレポートが記録するのは、Restricted Access Controlによる拒否だけです。SharePoint権限、条件付きアクセス、共有設定などを原因とする、すべてのアクセス拒否を確認できるわけではありません。最初に調査対象を切り分けることが重要です。(Microsoft Learn)
SharePointアクセス拒否を調べるInsightsレポートで分かること
制限付きサイトアクセスに関するInsightsレポートには、次の2種類があります。
| レポート | 確認できる内容 | 主な用途 |
|---|---|---|
RACProtectedSites | Restricted Access Controlで保護されているサイト | ポリシー適用状況や保護対象サイトの確認 |
ActionsBlockedByPolicy | ポリシーによって拒否されたアクセス | 誰が、どのサイトで、どの程度拒否されているかの調査 |
RACProtectedSitesは、アクセス拒否の原因を直接調べるレポートではありません。どのサイトに制限付きサイトアクセスが設定されているかを確認し、ポリシーの適用漏れや過剰な適用を調査するために使います。
ActionsBlockedByPolicyでは、過去28日間の拒否を対象として、次の情報を確認できます。
| Contentの値 | 確認できる内容 |
|---|---|
AllDenials | 直近のアクセス拒否 |
TopUsers | 拒否回数が多いユーザー |
TopSites | 拒否回数が多いサイト |
SiteDistribution | サイト種別ごとの拒否分布 |
Microsoft Learnでは、AllDenialsは直近100件、TopSitesは上位100サイトとして案内されています。TopUsersについては、Restricted Access Controlの機能説明では上位100ユーザー、PowerShellコマンドレットのリファレンスでは上位10ユーザーと記載されており、ドキュメント間で差があります。表示件数は実際の出力を基準とし、全体を分析するときはダウンロードデータを使用するのが安全です。(Microsoft Learn)
このレポートで調査できるアクセス拒否の範囲
Restricted Access Controlは、SharePointサイトへのアクセスを、指定したMicrosoft EntraセキュリティグループまたはMicrosoft 365グループのメンバーに限定する機能です。
ユーザーがサイトの通常のアクセス権限を持っていても、制限付きアクセスグループに含まれていなければアクセスできません。反対に、制限付きアクセスグループに追加しただけでは、SharePointサイトのアクセス権限は付与されません。
つまり、アクセスには次の両方が必要です。
- SharePointサイトまたはコンテンツに対する通常のアクセス権限
- Restricted Access Controlで指定されたグループのメンバーシップ
この二重条件を理解していないと、「サイトのメンバーなのにアクセスできない」「グループに追加したのに開けない」といった問題が発生します。(Microsoft Learn)
ActionsBlockedByPolicyで調査できるケース
次のようなケースでは、ActionsBlockedByPolicyが有効です。
- サイトの権限は付与されているが、制限付きアクセスグループに含まれていない
- 異動したユーザーが、新しい部署の制限付きアクセスグループに追加されていない
- グループ構成を変更した後から、特定サイトへの拒否が増えた
- Restricted Access Controlを設定したサイトで、問い合わせが集中している
- 複数サイトで同じユーザーの拒否が繰り返されている
別の方法で調査すべきケース
| 想定される原因 | 主な確認先 |
|---|---|
| SharePointサイトの閲覧権限がない | サイト権限、Microsoft 365グループ、SharePointグループ |
| 共有リンクが失効・削除されている | 共有リンク、Microsoft Purview監査 |
| 管理されていない端末からのアクセス制限 | Microsoft Entraサインインログ、条件付きアクセス |
| 外部共有や許可ドメインの制限 | SharePoint管理センターの共有ポリシー |
| 認証コンテキストや秘密度ラベルによる制御 | Microsoft Purview、条件付きアクセス |
| アカウントの無効化やサインインブロック | Microsoft Entra管理センター |
| サイトやファイルが削除・移動されている | ごみ箱、監査ログ、変更履歴 |
ActionsBlockedByPolicyに該当データがないからといって、ユーザーの申告が誤っているとは限りません。Restricted Access Control以外の原因へ調査範囲を広げる必要があります。
Insightsレポートを実行するための要件
ライセンスと管理者ロールを確認する
Restricted Access ControlのInsightsレポートを利用するには、SharePoint Advanced Managementの前提条件を満たす必要があります。
現在のMicrosoft Learnでは、対象となる基本サブスクリプションに加えて、組織内の少なくとも1人にMicrosoft 365 Copilotライセンスが割り当てられている場合や、SharePoint Advanced Management Plan 1アドオンを契約している場合などが要件として案内されています。契約内容によって利用条件が異なるため、実際のテナントのライセンスを確認してください。
実行者には、原則として次のいずれかの管理者ロールが必要です。
- SharePoint Administrator
- SharePoint Advanced Management Administrator
また、最新版のSharePoint Online Management Shellを使用することが推奨されています。(Microsoft Learn)
SharePoint Online Management Shellを準備する
インストール済みのバージョンは、次のコマンドで確認できます。
Get-Module `
-Name Microsoft.Online.SharePoint.PowerShell `
-ListAvailable |
Select-Object Name, Version
未インストールの場合は、現在のユーザーにインストールします。
Install-Module `
-Name Microsoft.Online.SharePoint.PowerShell `
-Scope CurrentUser
PowerShell Galleryからインストールしたモジュールを更新する場合は、次のコマンドを実行します。
Update-Module `
-Name Microsoft.Online.SharePoint.PowerShell
PowerShell 7から実行する場合は、Windows PowerShell互換モードでモジュールを読み込みます。
Import-Module `
Microsoft.Online.SharePoint.PowerShell `
-UseWindowsPowerShell
その後、SharePoint Onlineの管理サイトへ接続します。
Connect-SPOService `
-Url "https://contoso-admin.sharepoint.com"
contosoは、自社テナントの名前に置き換えてください。多要素認証を使用している場合は、表示されたサインイン画面で認証します。(Microsoft Learn)
SharePointで誰がどのサイトに拒否されたか調べるPowerShell手順
アクセス拒否レポートの生成を開始する
最初に、ActionsBlockedByPolicyレポートを生成します。
Start-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy
このコマンドは、直前の28日間を対象としたRestricted Access Controlのアクセス拒否レポート生成を開始します。
コマンドを実行しても、その場ですぐに全データが表示されるわけではありません。レポート生成には数時間かかる場合があります。(Microsoft Learn)
レポートの状態とReportIdを確認する
生成状況を確認します。
Get-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy
出力されたレポートの状態を確認し、完了したレポートのReportIdを控えます。
以降の例では、ReportIdを変数に設定して使用します。
$reportId = "00000000-0000-0000-0000-000000000000"
実際には、状態確認コマンドで表示されたGUIDへ置き換えてください。
ReportIdを間違えると、別の期間のレポートを参照したり、該当レポートが見つからなかったりします。生成日時とレポート種別を合わせて確認することが重要です。
直近のアクセス拒否100件を確認する
誰がどのサイトで拒否されたかを調べるときは、まずAllDenialsを確認します。
Get-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy `
-ReportId $reportId `
-Content AllDenials
このコマンドでは、過去28日間に発生した直近100件のアクセス拒否を確認できます。問い合わせを受けた直後の調査や、ポリシー変更後の影響確認に適しています。(Microsoft Learn)
実務では、次の情報を照合します。
- 問い合わせをしたユーザー
- 拒否されたサイト
- 拒否が発生した時期
- 同じユーザーによる繰り返し
- 同じサイトへの拒否の集中
直近100件より前のデータは画面上に表示されないため、拒否件数が多いテナントではCSVのダウンロードが必要です。
拒否回数が多いユーザーを確認する
複数サイトにアクセスできないユーザーや、異動後のグループ設定漏れを探す場合は、TopUsersを使用します。
Get-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy `
-ReportId $reportId `
-Content TopUsers
特定ユーザーだけ拒否回数が多い場合は、共通して使用している制限付きアクセスグループから、そのユーザーが漏れている可能性があります。
ただし、単純にグループへ追加する前に、当該ユーザーが本当にサイトへアクセスすべきかをサイト所有者や情報管理責任者へ確認してください。
拒否回数が多いサイトを確認する
アクセス拒否が集中しているサイトを調べる場合は、TopSitesを使用します。
Get-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy `
-ReportId $reportId `
-Content TopSites
上位サイトに拒否が集中している場合、次のような設定ミスを疑います。
- 本来利用すべきグループがRestricted Access Controlに登録されていない
- 部署再編後も古いセキュリティグループを使用している
- Teamsの利用者とSharePoint側の制限グループが一致していない
- サイト所有者が想定する利用者範囲と、管理者が設定した制限範囲が異なる
TopSitesは、問い合わせが多いサイトを優先的に調査するときにも役立ちます。
サイト種別ごとの拒否分布を確認する
サイトの種類ごとの傾向は、SiteDistributionで確認します。
Get-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy `
-ReportId $reportId `
-Content SiteDistribution
特定のサイト種別だけ拒否が多い場合は、そのサイトの作成方法やグループ運用に共通の問題がないか確認します。
たとえば、Teamsに接続されたサイトで拒否が多ければ、Teamsメンバーと制限付きアクセスグループのメンバーが一致しているかを調査します。
最大10,000件のアクセス拒否をダウンロードする
直近100件だけでは原因を判断できない場合は、アクセス拒否レポートをダウンロードします。
まず、保存先となるフォルダーを作成し、カレントディレクトリを移動します。
$reportPath = "C:\Reports\SharePoint-RAC"
New-Item `
-Path $reportPath `
-ItemType Directory `
-Force |
Out-Null
Set-Location $reportPath
ダウンロード時は、次の形式で実行します。
Get-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy `
-ReportId $reportId `
-Content AllDenials `
-Action Download
Microsoft Learnでは、ダウンロードによって最大10,000件の拒否を確認できると案内されています。ダウンロードファイルは、コマンドを実行したカレントディレクトリに保存されます。(Microsoft Learn)
現在の保存先は、次のコマンドで確認できます。
Get-Location
Get-SPORestrictedAccessForSitesInsightsは、-ActionにViewまたはDownload、-ContentにAllDenials、TopSites、TopUsers、SiteDistributionを指定できる構文です。利用中のモジュールでパラメーターエラーが出る場合は、最新版へ更新したうえで、ローカル環境のヘルプを確認してください。(GitHub)
Get-Help `
Get-SPORestrictedAccessForSitesInsights `
-Full
ダウンロードしたファイルにはユーザー識別子やサイト情報が含まれる可能性があります。アクセス権を限定した管理者用フォルダーへ保存し、不要になったファイルを放置しないようにしてください。
RACProtectedSitesで保護対象サイトを確認する
アクセス拒否の調査では、拒否履歴だけでなく、どのサイトにRestricted Access Controlが設定されているかも確認します。
保護サイトレポートを生成する
Start-SPORestrictedAccessForSitesInsights `
-RACProtectedSites
レポートの状態を確認する
Get-SPORestrictedAccessForSitesInsights `
-RACProtectedSites
完了したレポートのReportIdを控えます。
$protectedSitesReportId = "00000000-0000-0000-0000-000000000000"
ページビューが多い保護サイト上位100件を表示する
Get-SPORestrictedAccessForSitesInsights `
-RACProtectedSites `
-ReportId $protectedSitesReportId
表示されるのは、Restricted Access Controlで保護されているサイトのうち、ページビューが多い上位100サイトです。
単なるサイトURL順ではないため、「利用頻度が高く、影響範囲も大きい保護サイト」を優先して確認できます。(Microsoft Learn)
保護されているサイトの割合を確認する
Get-SPORestrictedAccessForSitesInsights `
-RACProtectedSites `
-ReportId $protectedSitesReportId `
-InsightsSummary
この結果から、テナント全体のサイト数に対して、Restricted Access Controlで保護されているサイトがどの程度あるかを確認できます。
サイト数だけを見るのではなく、機密情報を扱うサイトが保護対象に含まれているか、一般公開範囲の広いサイトへ誤って設定していないかを確認することが重要です。
保護サイトレポートをダウンロードする
Get-SPORestrictedAccessForSitesInsights `
-RACProtectedSites `
-ReportId $protectedSitesReportId `
-Action Download
ダウンロードファイルは、コマンドを実行したフォルダーに保存されます。(Microsoft Learn)
拒否されたサイトの設定を個別に確認する
レポートで問題のサイトを特定したら、サイトに設定されているRestricted Access Controlの状態を確認します。
$siteUrl = "https://contoso.sharepoint.com/sites/Finance"
Get-SPOSite `
-Identity $siteUrl |
Select-Object `
Url,
RestrictedAccessControl,
RestrictedAccessControlGroups
確認するポイントは次のとおりです。
RestrictedAccessControlが有効になっているか- 登録されているグループGUIDが正しいか
- 古い部署や廃止済みグループを参照していないか
- 対象ユーザーがいずれかの制限グループに所属しているか
- 対象ユーザーがSharePoint側の通常のアクセス権限も持っているか
制限付きアクセスグループへユーザーを追加しても、SharePointの閲覧権限がなければアクセスできません。反対に、SharePointサイトのメンバーであっても、制限付きアクセスグループに含まれていなければ拒否されます。(Microsoft Learn)
レポート結果から原因を判断する方法
| レポートの傾向 | 想定される原因 | 次に確認すること |
|---|---|---|
| 1サイトに拒否が集中 | サイト側の制限グループ設定ミス | RestrictedAccessControlGroups、サイト所有者の想定利用者 |
| 1ユーザーが複数サイトで拒否 | 共通グループへの追加漏れ | ユーザーの異動履歴、Entraグループ所属 |
| 複数ユーザーが同時期から拒否 | グループ削除、ポリシー変更 | 変更履歴、Purview監査、管理者の作業記録 |
| Teams関連サイトだけ拒否 | Teamsメンバーと制限グループの不一致 | Teamsメンバー、Microsoft 365グループ、サイトURL |
| 問い合わせはあるがレポートにない | RAC以外の拒否 | サイト権限、Entraサインインログ、共有設定 |
| 古い拒否しか表示されない | レポート生成待ち、ReportIdの選択ミス | レポート状態、生成日時、対象期間 |
特に有効なのは、TopSitesで影響の大きいサイトを特定し、AllDenialsでユーザーとサイトの組み合わせを確認する流れです。
1人の問い合わせだけを見てグループを変更するのではなく、同じサイトで他のユーザーにも拒否が発生していないかを確認すると、個人の設定漏れかサイト全体の設定ミスかを切り分けやすくなります。
Teamsの共有チャネルとプライベートチャネルに注意する
Teamsの標準チャネルは、チームに接続されたSharePointサイトを使用します。一方、共有チャネルとプライベートチャネルは、それぞれ独立したサイトコレクションです。
親となるTeams接続サイトへRestricted Access Controlを設定しても、共有チャネルサイトやプライベートチャネルサイトには自動適用されません。それぞれのサイトに個別設定が必要です。(Microsoft Learn)
そのため、次のような状況が起こり得ます。
- 標準チャネルのファイルにはアクセスできるが、プライベートチャネルでは拒否される
- 親サイトは保護されているが、共有チャネルサイトが保護されていない
- Teams上のメンバーとSharePoint側の制限グループが一致していない
Teams関連の問い合わせでは、ユーザーが開こうとしている実際のSharePointサイトURLを確認してください。親チームのサイトだけを確認すると、原因を見落とすことがあります。
よくあるエラーと対処方法
コマンドレットが見つからない
次のようなエラーが出る場合があります。
The term 'Start-SPORestrictedAccessForSitesInsights'
is not recognized
主な原因は、SharePoint Online Management Shellのバージョンが古いことです。
Update-Module `
-Name Microsoft.Online.SharePoint.PowerShell
更新後はPowerShellをいったん終了し、再度起動してください。
PowerShell 7の場合は、次の読み込みも確認します。
Import-Module `
Microsoft.Online.SharePoint.PowerShell `
-UseWindowsPowerShell
レポートがすぐに表示されない
Insightsレポートは即時生成ではありません。Microsoft Learnでは、生成に数時間かかる場合があるとされています。状態が処理中であれば、同じレポートを繰り返し生成せず、Get-SPORestrictedAccessForSitesInsightsで完了状況を確認します。(Microsoft Learn)
レポートが空になる
次の点を確認してください。
- Restricted Access Controlを使用しているサイトが存在するか
- 過去28日間にポリシーによる拒否が発生しているか
ActionsBlockedByPolicyとRACProtectedSitesを取り違えていないか- 正しいSharePoint管理サイトへ接続しているか
- 完了したレポートのReportIdを指定しているか
- 問題の原因が通常のSharePoint権限や条件付きアクセスではないか
ダウンロードしたファイルが見つからない
ファイルは、コマンドを実行したカレントディレクトリに保存されます。
Get-Location
保存先を固定したい場合は、実行前にSet-Locationを使用してください。
Set-Location "C:\Reports\SharePoint-RAC"
TopUsersの表示件数が想定より少ない
Microsoft Learnの機能説明とコマンドレットリファレンスでは、TopUsersの件数に関する記載が一致していません。
表示された上位ユーザーだけで結論を出さず、必要に応じてアクセス拒否データをダウンロードし、ユーザーごとの拒否件数を集計してください。(Microsoft Learn)
アクセス拒否レポートを運用に組み込むポイント
Insightsレポートは、問い合わせ発生時だけでなく、Restricted Access Controlの運用確認にも利用できます。
効果的な確認順序は次のとおりです。
RACProtectedSitesで保護対象サイトを把握するActionsBlockedByPolicyのTopSitesで拒否が集中するサイトを探すTopUsersで影響を受けているユーザーを確認するAllDenialsで具体的なユーザーとサイトの組み合わせを確認する- 必要に応じて最大10,000件をダウンロードする
- サイトの制限グループと通常権限を照合する
- 修正理由と変更内容を記録する
レポートは過去28日間のデータを基に生成されるため、リアルタイム監視の代わりにはなりません。問い合わせ日時、レポート生成日時、ReportId、調査対象期間を記録しておくと、後から判断根拠を説明しやすくなります。(Microsoft Learn)
ポリシーを解除すれば一時的にアクセスできるようになる場合でも、原因確認なしにRestricted Access Controlを削除するのは避けるべきです。まず、ユーザーが業務上アクセスすべき対象かを確認し、適切なグループまたは権限を修正してください。
SharePointのアクセス拒否を調査するときは、最初にActionsBlockedByPolicyを生成し、TopSites、TopUsers、AllDenialsの順で影響範囲を絞り込みます。そのうえで、対象サイトのRestrictedAccessControlGroupsとユーザーのグループ所属、通常のSharePoint権限を照合すれば、ポリシー設定と権限設定のどちらに原因があるかを判断しやすくなります。

コメント