Teams や SharePoint Online で新規サイトを作ると、Members などの SharePoint グループに「Everyone except external users(外部ユーザーを除く全員)」が自動追加され、意図せず社内の多くに編集権限が付くことがあります。原因と既定動作の止め方、既存サイトの是正手順をまとめます。
よくある症状:新規サイト作成後に「全社」に編集権限が付いてしまう
Microsoft Teams からチームを作成したり、SharePoint Online から「チーム サイト(Microsoft 365 グループに接続)」を新規作成した直後に、サイトの権限(Owners / Members / Visitors)を確認すると、どこかのグループに Everyone except external users(外部ユーザーを除く全員) が入っていることがあります。
この状態は、サイトの用途によっては大きな問題になります。なぜなら、Teams のメンバーではないユーザーでも、SharePoint のサイトにアクセスできたり、場合によっては 編集(Edit) 権限でページやファイルを変更できてしまうからです。
| 入ってしまった場所 | 起こりやすいこと | 代表的なリスク |
|---|---|---|
| Members(通常は編集) | 社内の多くのユーザーが編集・アップロード・ページ更新が可能 | 誤編集、情報改ざん、意図しない共有の拡大 |
| Visitors(通常は閲覧) | 社内の多くのユーザーが閲覧可能(ポータル用途では意図通りのことも) | 本来は部署限定の資料が社内に広く見える |
| リスト/ライブラリ固有の権限 | サイト全体は限定でも、特定ライブラリだけ全社に見える/編集できる | 棚卸し漏れによる部分的な情報漏えい |
「Everyone except external users」とは何か(誤解しやすいポイント)
SharePoint Online には、通常のユーザーや Microsoft 365 グループとは別に、特別な対象を表す「クレーム(Claim)」が存在します。その代表例が Everyone と Everyone except external users です。
名前の通り「外部ユーザーを除く全員」なので、ゲスト(外部共有で招待したユーザー)が含まれない点は安心材料に見えます。しかし実務上の問題は、“社内の全員” に権限が付くこと自体です。部署・プロジェクト単位で閉じておきたいチームサイトで、全社の編集が可能になるのは、最小権限(Least Privilege)の観点から危険です。
| 項目 | Everyone except external users | Microsoft 365 グループ(Teams メンバー) |
|---|---|---|
| 対象 | 基本的にテナント内の内部ユーザー全体 | そのチーム/グループに追加されたユーザーのみ |
| 管理単位 | 権限に入れたら即時に “全社” に効きやすい | メンバー管理(追加/削除)でコントロールしやすい |
| 意図しない拡大 | 追加した瞬間に範囲が大きく、気づきにくい | 人数の増減は追いやすい(グループ管理に統合できる) |
継承の問題ではない:既定動作は「テナント設定」側で制御できる
質問でよく出るのが「権限の継承を解除しないといけないのか?」という点ですが、このケースの本質は サイト単位の継承ではありません。多くの場合、原因は次のどちらか(または両方)です。
- テナント設定として、「Everyone except external users」クレームを People Picker(ユーザー/グループ選択)で表示・利用できる状態になっている
- サイト作成フローやプロビジョニング(テンプレート/自動作成スクリプト)が、既定でこのクレームをグループに追加している
つまり、継承解除を頑張るより先に、“そもそも選べる/追加できる状態” を減らすことが重要です。
最優先の対策:テナントで「Everyone except external users」を使えない(見えない)状態にする
基本方針は、SharePoint Online のテナント設定で Everyone except external users クレームの表示/利用を無効化し、新規サイトで「いつの間にか入る」状態を抑止することです。代表的には SharePoint Online 管理 PowerShell の Set-SPOTenant を使います。
| やりたいこと | 設定(例) | 期待できる効果 | 注意点 |
|---|---|---|---|
| People Picker で「Everyone except external users」を選べなくする | Set-SPOTenant -ShowEveryoneExceptExternalUsersClaim $false | 誤付与の防止、UI 経由の追加を抑制 | 既存サイトの権限は自動で直らない |
| PnP PowerShell でも同等の制御をしたい | Set-PnPTenant -ShowEveryoneExceptExternalUsersClaim $false | 運用スクリプトに組み込みやすい | 管理者権限・接続方式の整備が必要 |
| 全社向け閲覧が必要なサイトがある | Visitors(閲覧)に限定して追加 | “全社閲覧” を保ちつつ編集を防げる | サイト設計(情報区分)を明確にする |
実行手順:SharePoint Online 管理 PowerShell での設定変更
ここでは、最も基本となる SharePoint Online 管理 PowerShell での手順を紹介します。実行はテナント管理者(SharePoint 管理者など)のアカウントで行います。
事前準備のチェック
- 実行端末に SharePoint Online 管理 PowerShell(または対応モジュール)が用意されている
- 接続先の管理 URL(
https://<Tenant>-admin.sharepoint.com)が分かっている - 変更の影響(後述)を関係者に周知できる
現在の設定を確認する(推奨)
Connect-SPOService -Url https://<Tenant>-admin.sharepoint.com
Get-SPOTenant | Select ShowEveryoneExceptExternalUsersClaim
設定を無効化する
Connect-SPOService -Url https://<Tenant>-admin.sharepoint.com
Set-SPOTenant -ShowEveryoneExceptExternalUsersClaim $false
切り戻し(必要な場合)
Set-SPOTenant -ShowEveryoneExceptExternalUsersClaim $true
設定変更後は、People Picker で「Everyone except external users」が候補に出なくなる(または選択しづらくなる)ため、“うっかり全社に権限を付ける” を減らすことができます。もし自動プロビジョニングがこのクレームを前提にしている場合は、別途スクリプトの修正が必要です。
PnP PowerShell での同様の制御(運用スクリプトに組み込みたい場合)
現場では、サイト棚卸しや一括是正を PnP PowerShell で行っていることも多いため、同じ方針を PnP でも実現しておくと運用が統一しやすくなります。
# 例:管理センターに接続(環境に合わせて認証方式を選択)
Connect-PnPOnline -Url https://<Tenant>-admin.sharepoint.com -Interactive
# 現在値の確認
Get-PnPTenant | Select ShowEveryoneExceptExternalUsersClaim
# 無効化
Set-PnPTenant -ShowEveryoneExceptExternalUsersClaim $false
ポイントは「便利だから常にオン」ではなく、全社向け権限を付与する必要があるケースを限定し、既定は最小権限に寄せることです。
影響範囲の要点:既存サイトは自動で直らない
ここが最重要です。ShowEveryoneExceptExternalUsersClaim の変更は、主に「今後の新規作成サイト」や「UI からの追加しやすさ」に効く設定であり、既存サイトから自動的に “外部ユーザーを除く全員” が消えるわけではありません。
| 対象 | 設定変更の影響 | 追加で必要になる作業 |
|---|---|---|
| これから作成するサイト | 誤付与が起こりにくくなる(候補に出ない/選びにくい) | サイト設計(公開範囲、既定グループ)を標準化すると効果が大きい |
| 既存サイト(すでに約50サイトなど) | 基本的に権限はそのまま残る | 棚卸しして削除(手作業 or スクリプト) |
なぜ「Teams はプライベートなのに SharePoint は見えてしまう」のか
Teams の「プライベート/パブリック」は、主に Teams(Microsoft 365 グループ)への参加可否の話です。一方、SharePoint サイトは、SharePoint 側のグループに誰を入れたかでアクセスが決まります。
つまり、Teams がプライベートでも、SharePoint の Members/Visitors に「Everyone except external users」が入っていれば、Teams のメンバーではないユーザーでも SharePoint にはアクセスできる可能性があります。現場で混乱しやすいので、Teams と SharePoint の“権限の入口” が別であることを押さえておくと切り分けが早くなります。
運用でハマりやすいデメリットと、先回りの周知ポイント
このクレームを無効化すると、短期的には問い合わせが増えることがあります。代表例は次の通りです。
- 「今まで見えていたはずのサイトが見えない」:実は “全社付与” に依存した運用だった
- 「全社共有を素早くやりたい」:Visitors への追加や別グループでの運用設計が必要になる
- 自動作成・テンプレートが前提にしていた:プロビジョニング修正が必要
このため、設定変更の前後で次のような周知をセットにすると、現場が混乱しにくくなります。
| 周知すべき相手 | 伝える内容の例 | 合わせて用意すると良いもの |
|---|---|---|
| サイトオーナー/チームオーナー | 全社付与が既定ではなくなる、必要なら申請/手順に沿って設定する | 公開範囲の判断基準(社外秘/社内限定/全社公開) |
| ヘルプデスク | アクセス不可は仕様変更の可能性、まず権限(Visitors/Members)を確認 | 問い合わせテンプレ(サイトURL、ユーザー、必要権限) |
| 自動化/開発担当 | プロビジョニングで Everyone claim を使っていないか確認 | テンプレート改修のチェックリスト |
既存サイトの是正:まずは棚卸し(どこに入っているか)
設定変更だけでは既存サイトが直らないため、すでに作成済みのサイトは別途是正が必要です。効率良く進めるコツは「どのサイトの、どのグループ(またはどのライブラリ)に入っているか」を先に可視化することです。
棚卸しで確認したいチェック項目
| チェック項目 | 見る場所(例) | 判断のポイント |
|---|---|---|
| サイトの Owners/Members/Visitors に入っていないか | サイト設定 > サイトのアクセス許可 | Members に入っていたら優先度高(編集権限の可能性) |
| 特定のライブラリ/リストで固有権限になっていないか | 対象ライブラリ > 設定 > 権限 | サイトは安全でも、ライブラリだけ全社公開のことがある |
| 共有リンクで「組織内のユーザー」向けになっていないか | 共有設定/リンク管理(サイト/ファイル) | リンク運用が広いと、権限が狭くても実質公開になるケースがある |
既存サイトの是正:手作業での削除(少数サイト・緊急対応向け)
サイト数が少ない、または今すぐ止血したいサイトがある場合は、まず手作業での削除が確実です。
- 対象サイトを開く
- 歯車アイコン(設定)から「サイトのアクセス許可」を開く
- Owners / Members / Visitors を順に確認し、「Everyone except external users」を見つけたら削除する
- 念のため、重要なドキュメント ライブラリでも「権限の継承が切れていないか」を確認する
このときのポイントは「削除したら誰が困るか」を事前に把握することです。もし全社閲覧が必要だったサイトなら、削除ではなく Visitors(閲覧)にのみ残す、あるいは社内ポータルとして明確に位置付ける、といった運用設計に寄せた方が後戻りが少なくなります。
既存サイトの是正:PnP PowerShell による削除例(サイト単位)
サイトが多い場合はスクリプトでの是正が現実的です。以下は「関連付けられた Owners/Members/Visitors グループから、表示名が Everyone except external users のメンバーを削除する」例です。環境により認証方式やグループ構成が異なるため、まずは検証サイトで動作確認してから本番に適用してください。
# 例:サイト単位での是正(PnP.PowerShell)
$siteUrl = "https://<Tenant>.sharepoint.com/sites/<SiteName>"
Connect-PnPOnline -Url $siteUrl -Interactive
# 関連付けグループを取得
$ownerGroup = Get-PnPGroup -AssociatedOwnerGroup
$memberGroup = Get-PnPGroup -AssociatedMemberGroup
$visitorGroup = Get-PnPGroup -AssociatedVisitorGroup
$groups = @($ownerGroup, $memberGroup, $visitorGroup)
foreach ($g in $groups) {
if ($null -eq $g) { continue }
$members = Get-PnPGroupMembers -Identity $g
$targets = $members | Where-Object { $_.Title -eq "Everyone except external users" }
foreach ($t in $targets) {
Write-Host ("Remove from group: {0} / {1}" -f $g.Title, $t.LoginName)
Remove-PnPUserFromGroup -Identity $g -LoginName $t.LoginName
}
}
「Everyone except external users」が、関連付けグループではなく、カスタムグループやライブラリ固有権限に入っている場合は、別の探索ロジックが必要です。棚卸しで “どこに入っているか” を押さえておくと、スクリプトの分岐が書きやすくなります。
既存サイトを横断して是正する考え方(テナント全体)
約50サイト以上ある場合は、次の流れにすると進めやすくなります。
- まず サイト一覧 を取得し、サイトオーナー情報と合わせて台帳化する
- 次に、全サイトへ一律適用するのではなく、機密度の高いサイトから優先的に是正する
- 最後に、例外(全社閲覧が必要なポータル等)は “Visitors にのみ付与” などの形で整理する
| 優先度 | 対象の例 | 是正の方針 |
|---|---|---|
| 高 | 人事・経理・法務、個人情報を含むサイト | Members/Visitors から削除、共有リンク運用も見直す |
| 中 | 部署内の業務サイト、プロジェクトサイト | 原則削除(必要なら M365 グループでメンバー管理) |
| 低 | 社内ポータル、全社周知サイト | Visitors(閲覧)への付与は許容、編集権限は限定 |
「全社向け共有」を安全に実現する設計パターン
“全社に見せたい” ニーズ自体は珍しくありません。問題は、全社に 編集まで付けてしまうことです。以下は実務で破綻しにくいパターンです。
パターン:閲覧は全社、編集は限定
- サイトの Visitors(閲覧)に「Everyone except external users」を付与
- Members(編集)には部署メンバーや編集担当のみを入れる
- ニュース投稿やページ編集を担当する “編集者グループ” を明確にする
パターン:部署・プロジェクトは原則クローズ
- Teams/グループはプライベートを基本にする
- SharePoint 側でも Everyone 系のクレームを使わず、M365 グループのメンバーで制御する
- 共有が必要な資料は、専用の「社内共有」サイト(閲覧中心)へ移す
よくある質問(現場での切り分け)
| 質問 | 回答 |
|---|---|
| 継承解除は必要ですか? | この問題の主因は継承ではなく、グループに Everyone except external users が入ることです。まずはテナント設定とグループメンバーを見直してください。 |
| 設定を変えれば、既存サイトから自動で消えますか? | 消えません。既存サイトは棚卸しして、該当箇所から削除が必要です。 |
| “全社共有” を使いたい部署から反発が出そうです | 全社閲覧が必要なサイトは Visitors で実現し、編集は限定する設計に切り替えると、利便性とセキュリティのバランスが取りやすいです。 |
まとめ:新規作成の抑止と、既存サイト是正をセットで進める
「Everyone except external users」が新規サイトで自動付与されてしまう問題は、放置すると “社内の誰でも編集できるサイト” が増えていきます。対策は大きく二段構えです。
- テナント設定(PowerShell)で、Everyone except external users クレームを表示・利用しにくい状態にして 新規サイトの誤付与を抑止
- 既存サイトは棚卸しして、Owners/Members/Visitors やライブラリ固有権限から 手作業またはスクリプトで削除
併せて「全社閲覧は Visitors で」「編集は必要最小限で」という設計を標準化すると、今後のサイト増加にも耐えられる運用になります。

コメント