親チームのSharePointサイトにRestricted Access Controlを設定したのに、Teamsの共有チャネルやプライベートチャネルではアクセス制限が効かない——これは設定ミスではなく、Microsoft TeamsとSharePoint Onlineのサイト構造による仕様です。
標準チャネルは親チームのSharePointサイトを共用しますが、共有チャネルとプライベートチャネルには、それぞれ独立したSharePointサイトが作成されます。そのため、親サイトに適用したRestricted Access Controlは継承されず、各チャネルサイトへ個別に設定しなければなりません。
さらに注意したいのが、共有チャネルに他テナントから参加している外部参加者です。これらのユーザーはRestricted Access Controlの評価対象外であり、許可グループへ追加したり削除したりしてもアクセス可否は変わりません。(Microsoft Learn)
Teams共有・プライベートチャネルだけアクセス制限が効かない理由
Teamsで扱うファイルはSharePoint Onlineに保存されますが、チャネルの種類によって保存先が異なります。
| チャネルの種類 | ファイルの保存先 | 親サイトのアクセス制限 | 必要な対応 |
|---|---|---|---|
| 標準チャネル | 親チームのSharePointサイト内のフォルダー | 適用される | 原則として親サイトへの設定のみ |
| プライベートチャネル | チャネル専用の独立したSharePointサイト | 継承されない | チャネルサイトへ個別設定 |
| 共有チャネル | チャネル専用の独立したSharePointサイト | 継承されない | チャネルサイトへ個別設定 |
標準チャネルは、同じSharePointサイトのドキュメントライブラリ内にチャネルごとのフォルダーが作成される構造です。一方、プライベートチャネルと共有チャネルを作成すると、そのチャネル専用のSharePointサイトが自動作成されます。(Microsoft Learn)
Restricted Access ControlはTeams単位やMicrosoft 365グループ単位ではなく、SharePointサイト単位で評価される制御です。したがって、次のような構成では、親サイトだけが保護された状態になります。
営業部チーム
├─ 親SharePointサイト
│ ├─ 一般(標準チャネル)
│ └─ 製品情報(標準チャネル)
│
├─ 予算管理(プライベートチャネル)
│ └─ 専用SharePointサイト
│
└─ 取引先共同作業(共有チャネル)
└─ 専用SharePointサイト
親SharePointサイトへRestricted Access Controlを設定しても、「予算管理」と「取引先共同作業」の専用サイトにはポリシーが存在しません。これが、特定のチャネルだけSharePointアクセス制限が効かないように見える主な原因です。
Restricted Access Controlは権限付与ではなく「追加の通過条件」
Restricted Access Controlを理解するときは、通常のSharePoint権限とは別の制御層である点が重要です。
ユーザーがサイトやファイルへアクセスするには、次の両方を満たす必要があります。
アクセス可能
= SharePointまたはTeams上のアクセス権限がある
AND
Restricted Access Controlの許可グループに所属している
許可グループにユーザーを追加しても、それだけではサイトやTeamsチャネルへのアクセス権は付与されません。反対に、Teamsチャネルのメンバーであっても、Restricted Access Controlの許可グループに含まれていなければ、SharePoint上のファイルを開けなくなります。(Microsoft Learn)
たとえば、プライベートチャネルのメンバーであるAさんを、Restricted Access Controlの許可グループへ追加し忘れた場合、次の状態になります。
- Teams上ではチャネルが表示される
- チャネルの投稿や会話には参加できる
- ファイルタブを開くとアクセス拒否になる
- SharePointへの直接リンクでもファイルを開けない
逆に、Bさんを許可グループへ追加しただけで、プライベートチャネルのメンバーに追加していない場合もアクセスできません。許可グループはあくまでアクセス制限を通過するための条件であり、チャネルメンバーシップの代わりにはならないためです。
共有・プライベートチャネルでは親チームのMicrosoft 365グループが自動設定されない
Microsoft 365グループに接続された通常のチームサイトでは、接続先のMicrosoft 365グループがRestricted Access Controlの既定グループとして提示されます。
しかし、共有チャネルサイトとプライベートチャネルサイトは、親チームのMicrosoft 365グループへ直接接続されたサイトではありません。そのため、親チームのグループを使った既定の設定は適用されず、許可するMicrosoft EntraセキュリティグループまたはMicrosoft 365グループを管理者が指定する必要があります。(Microsoft Learn)
実務では、チャネルごとに次のような専用セキュリティグループを作成すると管理しやすくなります。
SG-RAC-Teams-営業部-予算管理
SG-RAC-Teams-営業部-取引先共同作業
特に共有チャネルでは、親チームに所属していない社内ユーザーをチャネルへ直接追加できます。親チームのMicrosoft 365グループだけを許可グループに指定すると、これらのチャネル専用メンバーがSharePointで拒否される可能性があります。
プライベートチャネルでも、親チーム全体のグループを指定すると、Restricted Access Controlが「プライベートチャネルのメンバーだけを通す追加ゲート」として機能しにくくなります。チャネル単位のセキュリティグループを用意し、Teamsのメンバー構成と一致させる運用が安全です。
共有チャネルの外部参加者はRestricted Access Controlの評価対象外
共有チャネルでは、Microsoft Entra B2B Direct Connectを利用して、別テナントのユーザーを外部参加者として招待できます。
この外部参加者は、共有チャネルのSharePointサイトに設定したRestricted Access Controlでは評価されません。ポリシーが評価されるのは、共有チャネルのSharePointサイトを持つリソーステナント側の内部ユーザーです。(Microsoft Learn)
つまり、次の操作を行っても、外部参加者のアクセスには影響しません。
- 外部参加者をRestricted Access Controlの許可グループへ追加する
- 外部参加者を許可グループから削除する
- 外部参加者が許可グループに含まれていないことを確認する
外部参加者のアクセス可否は、共有チャネルのメンバーシップと関連するSharePointサイトの権限によって決まります。
共有チャネルの外部アクセスで確認すべき項目
Restricted Access Controlだけに頼らず、少なくとも次の設定を確認します。
| 確認場所 | 主な確認内容 |
|---|---|
| Teamsの共有チャネル管理 | 外部参加者、所有者、メンバーが適切か |
| Teams管理センター | 共有チャネルのメンバーとポリシー |
| Microsoft Entra管理センター | テナント間アクセス設定、B2B Direct Connect |
| SharePoint管理センター | チャネルサイトの共有設定 |
| Microsoft Purview | 機密情報、DLP、保持、監査の設定 |
共有チャネルの外部参加者は、一般的なTeamsゲストとは仕組みが異なります。共有チャネルでは、他テナントのユーザーがB2B Direct Connectによる外部参加者として参加します。一方、プライベートチャネルには、親チームへゲストとして登録済みのユーザーを追加できます。両者を同じ「外部ユーザー」として扱わないことが重要です。(Microsoft Learn)
Restricted Access Controlを設定する前の確認事項
Restricted Access ControlはSharePoint Advanced Managementの機能です。管理画面に設定項目が表示されない場合は、権限だけでなくライセンス条件も確認してください。
Microsoftの現行ドキュメントでは、対応する基本サブスクリプションに加え、Microsoft 365 Copilotライセンス、SharePoint Advanced Management Plan 1、Microsoft 365 E7などの条件が示されています。契約条件は変更される可能性があるため、導入時点のMicrosoft公式情報を確認する必要があります。(Microsoft Learn)
また、設定作業には次の準備が必要です。
- SharePoint管理者またはSharePoint Advanced Management管理者のロール
- 最新版のSharePoint Online Management Shell
- サイトへのアクセスを許可するMicrosoft EntraセキュリティグループまたはMicrosoft 365グループ
- Teamsチャネルと許可グループのメンバーを同期する運用ルール
- 変更前後の動作確認に使用するテストユーザー
1つのサイトには、最大10個のMicrosoft EntraセキュリティグループまたはMicrosoft 365グループを指定できます。動的セキュリティグループも利用できます。(Microsoft Learn)
Teamsの共有・プライベートチャネルサイトを洗い出す方法
最初に、テナント内に存在するチャネルサイトを一覧化します。親チームのサイトだけを確認しても、共有チャネルやプライベートチャネルのサイトは把握できません。
SharePoint管理センターで確認する
SharePoint管理センターでは、次の順に対象サイトを確認します。
- SharePoint管理センターを開く
- 「サイト」を展開する
- 「アクティブなサイト」を開く
- チーム名やチャネル名で検索する
- 親サイトとは別に作成されたチャネルサイトを確認する
- Teams管理センターでチャネルの種類とメンバーを照合する
チャネルのメンバーであれば、Teamsの対象チャネルから「共有」または「ファイル」タブを開き、「SharePointで開く」を選択する方法でもサイトURLを確認できます。
PowerShellでチャネルサイトを一覧化する
多数のチームを管理している場合は、IsTeamsChannelConnectedプロパティで抽出する方法が確実です。
Connect-SPOService `
-Url "https://contoso-admin.sharepoint.com"
$channelSites = Get-SPOSite -Limit All |
Where-Object {
$_.IsTeamsChannelConnected -eq $true
} |
Select-Object Title, Url, Template |
Sort-Object Url
$channelSites | Format-Table -AutoSize
IsTeamsChannelConnectedがTrueのサイトは、Teamsのプライベートチャネルまたは共有チャネルに接続されたサイトです。(Microsoft Learn)
TEAMCHANNEL#1だけで共有チャネルと判断しない
テンプレートIDだけでチャネル種別を分類するのは避けてください。
共有チャネルサイトのテンプレートIDはTEAMCHANNEL#1ですが、現在のMicrosoft公式ドキュメントでは、プライベートチャネルサイトにもTEAMCHANNEL#0またはTEAMCHANNEL#1が使用されると説明されています。したがって、TEAMCHANNEL#1だから共有チャネルであるとは断定できません。(Microsoft Learn)
チャネル種別はTeams管理センターで確認し、次の情報を台帳化します。
| 管理項目 | 記録例 |
|---|---|
| 親チーム | 営業部 |
| チャネル名 | 予算管理 |
| チャネル種別 | プライベート |
| SharePointサイトURL | https://contoso.sharepoint.com/sites/... |
| 許可グループID | Microsoft EntraグループのGUID |
| 外部参加者 | なし |
| Restricted Access Control | 有効 |
| 最終確認日 | 2026-07-23 |
テナント全体でサイトレベルのアクセス制限を有効化する
個別サイトへ設定する前に、テナントでサイトレベルのアクセス制限を許可します。
SharePoint管理センターでは、次の順に設定します。
- 「ポリシー」を開く
- 「アクセス制御」を選択する
- 「サイトレベルのアクセス制限」を開く
- アクセス制限を許可する設定を有効にする
- 保存する
PowerShellでは次のコマンドを実行します。
Set-SPOTenant -EnableRestrictedAccessControl $true
テナント設定が反映されるまで、最大1時間程度かかる場合があります。設定直後に個別サイトの項目が表示されなくても、すぐに失敗と判断せず、時間を置いて再確認します。(Microsoft Learn)
共有・プライベートチャネルサイトへ個別設定する手順
SharePoint管理センターから設定する
対象となるチャネルサイトごとに、次の操作を繰り返します。
- SharePoint管理センターの「アクティブなサイト」を開く
- プライベートチャネルまたは共有チャネルのサイトを選択する
- 詳細パネルの「設定」タブを開く
- 「制限付きサイトアクセス」の編集を選択する
- 指定したグループのユーザーだけにアクセスを制限する設定を有効にする
- Microsoft EntraセキュリティグループまたはMicrosoft 365グループを追加する
- 保存する
親チームのサイトではなく、チャネル専用サイトのURLを選択していることを必ず確認してください。(Microsoft Learn)
PowerShellから設定する
対象サイトと許可グループのGUIDを指定して設定します。
$siteUrl = "https://contoso.sharepoint.com/sites/Sales-Budget"
$allowedGroupIds = @(
[Guid]"11111111-1111-1111-1111-111111111111",
[Guid]"22222222-2222-2222-2222-222222222222"
)
Set-SPOSite `
-Identity $siteUrl `
-RestrictedAccessControl $true
Set-SPOSite `
-Identity $siteUrl `
-AddRestrictedAccessControlGroups $allowedGroupIds
現在の設定は、次のコマンドで確認できます。
Get-SPOSite -Identity $siteUrl |
Select-Object `
Url,
RestrictedAccessControl,
RestrictedAccessControlGroups
許可グループの一覧を丸ごと置き換える場合は、RestrictedAccessControlGroupsを使用します。
Set-SPOSite `
-Identity $siteUrl `
-RestrictedAccessControlGroups $allowedGroupIds
既存グループを残したまま追加する場合は、AddRestrictedAccessControlGroupsを使用します。両者を混同すると、必要な許可グループを意図せず削除する可能性があります。(Microsoft Learn)
設定後に実施すべきアクセステスト
管理者アカウントだけで確認すると、サイト管理者権限などの影響により正しい判定ができないことがあります。権限の異なるテストユーザーを用意してください。
| テストユーザーの状態 | 想定結果 |
|---|---|
| チャネルメンバーで、許可グループにも所属 | アクセスできる |
| チャネルメンバーだが、許可グループに未所属 | アクセス拒否 |
| 許可グループに所属しているが、チャネル権限がない | 原則としてアクセス拒否 |
| ファイルの直接権限があるが、許可グループに未所属 | アクセス拒否 |
| 他テナントから共有チャネルへ参加している外部参加者 | Restricted Access Controlでは判定されない |
少なくとも、次の操作をそれぞれ確認します。
- Teamsのチャネルからファイルを開く
- SharePointサイトのURLを直接開く
- ファイルの直接リンクを開く
- Microsoft 365の検索結果からファイルを開く
- Microsoft 365 Copilotから対象コンテンツが参照されるか確認する
- モバイル版Teamsからファイルを開く
Restricted Access Controlは、サイト、ファイル、検索、Microsoft 365 Copilotのアクセス時にも評価されます。ただし、検索やCopilotへの反映には時間がかかることがあり、サイト内のアイテム数が多いほど遅くなる場合があります。(Microsoft Learn)
よくある設定ミスと対処方法
| 設定ミス | 発生する問題 | 対処 |
|---|---|---|
| 親チームサイトだけ設定した | 共有・プライベートチャネルサイトが未保護 | 全チャネルサイトを抽出して個別設定 |
| Teamsだけメンバーを追加した | SharePointファイルでアクセス拒否 | 許可グループにも追加 |
| 許可グループだけ更新した | Teamsチャネルが表示されない | Teams側でもチャネルメンバーに追加 |
| 親チームのグループだけ指定した | 共有チャネル専用の社内メンバーが拒否される | チャネル専用グループを使用 |
| 外部参加者も制御できると考えた | 共有チャネルの外部アクセスを止められない | Teams、Entra、SharePointの外部共有設定で管理 |
TEAMCHANNEL#1を共有チャネルと断定した | プライベートチャネルを誤分類する | Teams管理センターで種別を確認 |
| グループ一覧を上書きした | 既存の許可ユーザーがアクセス不能になる | 変更前に現在値を取得 |
| 新規チャネルを管理対象に追加しなかった | 後から作られたサイトが未保護になる | チャネル作成時の確認工程を設ける |
共有操作も許可グループ内に制限する場合
Restricted Access Controlを設定しても、既定ではSharePointの共有操作そのものが、必ずしも許可グループの範囲に限定されるわけではありません。
許可グループ外のユーザーに対する共有操作も制限したい場合は、次のテナント設定を検討します。
Set-SPOTenant `
-AllowSharingOutsideRestrictedAccessControlGroups $false
この設定を有効にすると、Restricted Access Controlの許可グループに含まれていないユーザーやグループへの共有を制限できます。
ただし、テナントレベルの設定であるため、既存の共有運用へ影響する可能性があります。いきなり本番テナント全体へ適用せず、対象サイト、既存共有リンク、業務委託先、ゲスト利用への影響を確認してから展開してください。(Microsoft Learn)
新しいチャネルが作成された後も保護を維持する運用
共有チャネルやプライベートチャネルを新しく作成すると、新しいSharePointサイトも作成されます。既存サイトへRestricted Access Controlを設定しただけでは、将来作成されるチャネルサイトは自動的に保護されません。
運用手順には、次の確認を組み込みます。
- 共有・プライベートチャネルの作成を申請制にする
- チャネル作成後にSharePointサイトURLを記録する
- チャネル専用の許可グループを作成する
- Teamsメンバーとグループメンバーを照合する
- チャネルサイトへRestricted Access Controlを設定する
- 内部ユーザーによるアクセステストを実施する
- 共有チャネルの場合は外部参加者を別途確認する
- 定期的にサイト一覧と設定状況を監査する
特に、Teams管理者とSharePoint管理者が別担当の場合は、「Teamsでチャネルを作成した時点でSharePoint側へ作業依頼を出す」という連携ルールが必要です。
PowerShellで保護サイトと拒否状況を監査する
SharePoint Advanced Managementでは、Restricted Access Controlが設定されたサイトや、ポリシーによるアクセス拒否を確認するためのインサイトレポートを生成できます。
保護対象サイトのレポートは、次のコマンドで生成します。
Start-SPORestrictedAccessForSitesInsights `
-RACProtectedSites
アクセス拒否のレポートは、次のコマンドで生成します。
Start-SPORestrictedAccessForSitesInsights `
-ActionsBlockedByPolicy
Microsoft Purviewの監査ログでは、サイトへの制限適用、制限解除、許可グループの変更なども確認できます。レポート生成には数時間かかる場合があるため、障害対応時の即時確認だけでなく、定期監査にも利用するのが適しています。(Microsoft Learn)
親サイトだけでなく「すべてのチャネルサイト」を管理対象にする
Teamsの共有チャネルやプライベートチャネルでSharePointアクセス制限が効かない場合、最初に確認すべきなのは親サイトの設定内容ではありません。対象チャネルが独立したSharePointサイトを持っているかどうかです。
対応の要点は次のとおりです。
- 標準チャネルは親チームのSharePointサイトを使用する
- 共有・プライベートチャネルは独立したSharePointサイトを使用する
- 親サイトのRestricted Access Controlはチャネルサイトへ継承されない
- 各チャネルサイトへ許可グループを個別設定する
- Teamsチャネルと許可グループのメンバーを一致させる
- 共有チャネルの外部参加者はRestricted Access Controlの評価対象外
- 新しいチャネルが作成されるたびに設定対象へ追加する
まずPowerShellでIsTeamsChannelConnectedが有効なサイトを一覧化し、親サイトしか設定されていないチャネルを洗い出してください。その後、チャネルごとの許可グループを用意し、内部ユーザーと外部参加者を分けてアクセス確認を行うことで、設定漏れと意図しないアクセス拒否の両方を防げます。

コメント