SharePointやOneDriveにアクセスしようとして「403 Forbidden」というエラーメッセージが表示されたことはありませんか。
昨日まで問題なくアクセスできていたファイルやフォルダが突然見られなくなり、仕事に支障をきたしてしまうケースは珍しくありません。
403 Forbiddenエラーは、認証は成功しているものの、ユーザーに必要なアクセス権限がないことを示すHTTPステータスコードです。
本記事では、SharePointで403エラーが発生する原因を詳しく解説し、ユーザー自身でできる対処法から管理者向けの解決策まで、包括的に説明します。
403 Forbiddenエラーとは

HTTPステータスコード403の意味
403 Forbiddenは、HTTPステータスコードの一つで、サーバーがリクエストを理解したものの、アクセスを拒否していることを示します。
認証情報は正しく提供されているが、認証されたユーザーが要求された操作を実行する権限を持っていない状態です。
SharePointでは、ファイル、フォルダ、サイト、リストなどのリソースにアクセスしようとした際に表示されます。
他のエラーコードとの違い
401 Unauthorized vs 403 Forbidden
401エラーは認証情報が提供されていないか、認証情報が間違っている場合に発生します。
つまり、「誰なのか確認できていない」状態です。
一方、403エラーは認証は成功しているが、権限がない場合に発生します。
つまり、「誰なのかは分かっているが、アクセスする権限がない」状態です。
404 Not Found vs 403 Forbidden
404エラーは、リソース自体が存在しない場合に発生します。
403エラーは、リソースは存在するが、アクセス権限がないために拒否されている状態です。
セキュリティ上の理由から、リソースの存在を隠すために403を返すこともあります。
SharePointで403エラーが発生する主な原因
原因1:アクセス権限の不足
最も一般的な原因は、ユーザーがファイルやフォルダに対して必要なアクセス権限を持っていないことです。
SharePointは権限ベースのアクセス制御を採用しており、ユーザーは明示的に権限を付与されなければリソースにアクセスできません。
サイト、ライブラリ、リスト、個別のアイテムなど、それぞれのレベルで異なる権限設定が可能です。
例えば、サイト全体には閲覧権限があっても、特定のフォルダやファイルには個別の権限が設定されており、アクセスできない場合があります。
原因2:サイトまたはOneDriveがロックされている
SharePointサイトやOneDriveが管理者によってロックされている場合、403エラーが発生します。
ロック状態には以下の種類があります。
NoAccess(アクセス不可)
サイトに一切アクセスできなくなり、403エラーが表示されます。
メンテナンス中やコンプライアンス上の理由でサイトを一時的に凍結する際に使用されます。
ReadOnly(読み取り専用)
サイトの閲覧は可能ですが、新規作成や編集、削除ができません。
アーカイブされたサイトや移行作業中のサイトで使用されます。
NoAdditions(追加不可)
既存のアイテムは編集できますが、新しいアイテムの追加はできません。
原因3:ブラウザのキャッシュとCookieの問題
ブラウザが古いキャッシュやCookieを保持している場合、403エラーが発生することがあります。
特に、以前にアクセス権限が変更された後、ブラウザが古い認証情報をキャッシュしている場合に問題が起こります。
別のユーザーアカウントで同じブラウザを使用した後に切り替えた場合も、Cookieの競合が発生する可能性があります。
原因4:アクセス許可のレプリケーション遅延
SharePoint Onlineでは、アクセス許可の変更がすべてのサーバーに反映されるまで時間がかかることがあります。
ファイルの共有設定を変更した直後にアクセスしようとすると、まだ権限が正しくレプリケートされておらず、403エラーになることがあります。
通常、レプリケーションには最大30分程度かかる場合があります。
原因5:OneDriveサイトが未プロビジョニング
ユーザーが初めてOneDriveにアクセスする前に、OneDrive URLに直接アクセスしようとすると、403エラーが発生します。
OneDriveはユーザーが初回アクセスした時点でプロビジョニング(初期化)されるため、それ以前はサイトが存在しない状態です。
管理者が直接ユーザーのOneDrive URLにアクセスしようとした場合によく発生します。
原因6:SharePoint Onlineサービスの問題
Microsoft側のSharePoint Onlineサービスに問題が発生している場合、広範囲で403エラーが発生することがあります。
サーバーメンテナンス、サービス障害、ネットワークの問題などが原因です。
この場合、特定のユーザーだけでなく、組織全体または複数のユーザーが同時に影響を受けます。
原因7:REST APIや開発ツールでの認証問題
SharePoint REST APIやPowerShell、カスタムアプリケーションを使用している場合の403エラーは、以下の原因が考えられます。
Azure ADアプリ登録の権限不足
Azure Active Directoryに登録されたアプリケーションに、必要なAPI権限が付与されていない場合です。
Sites.ReadWrite.Allなどの委任された権限が不足していることがあります。
Form Digest値の問題
SharePointへのPOSTリクエストには、有効なForm Digest値が必要です。
この値が取得できていないか、期限切れの場合に403エラーになります。
テナントURLの間違い
管理センターに接続する際、正しいテナント管理URL(例: https://domain-admin.sharepoint.com)を使用していない場合にエラーが発生します。
原因8:ユーザープロファイルの破損
まれなケースですが、SharePointのユーザープロファイルが破損している場合、特定のユーザーだけが403エラーを経験することがあります。
他のユーザーは正常にアクセスできるのに、特定のユーザーだけが継続的にエラーになる場合はこの原因が疑われます。
原因9:外部ユーザーの制限
外部ユーザー(組織外のゲスト)が特定のSharePoint機能にアクセスしようとすると、403エラーになることがあります。
特に、クラシックビューの「サイトコンテンツ」ページや特定の管理機能へのアクセスが制限されています。
外部共有設定やゲストユーザーの権限レベルによってアクセス範囲が制限されます。
ユーザー自身でできる対処法
対処法1:InPrivate/シークレットモードでアクセス
まず、ブラウザのプライベートモードでアクセスできるか試してみましょう。
Microsoft Edgeの場合
- Edgeを開く
- 右上の「…」メニューをクリック
- 「新しいInPrivateウィンドウ」を選択
- InPrivateウィンドウでSharePointにアクセス
Google Chromeの場合
- Chromeを開く
- 右上の「⋮」メニューをクリック
- 「新しいシークレットウィンドウ」を選択
- シークレットウィンドウでSharePointにアクセス
プライベートモードでアクセスできる場合、ブラウザのキャッシュやCookieが原因です。
対処法2:ブラウザのキャッシュとCookieをクリア
プライベートモードでアクセスできた場合、通常モードのキャッシュとCookieをクリアします。
Microsoft Edgeでのクリア方法
- Edgeを開く
- Ctrl + Shift + Deleteキーを押す
- 「時間の範囲」で「すべての期間」を選択
- 「Cookieおよびその他のサイトデータ」と「キャッシュされた画像とファイル」にチェック
- 「今すぐクリア」をクリック
Google Chromeでのクリア方法
- Chromeを開く
- Ctrl + Shift + Deleteキーを押す
- 「期間」で「全期間」を選択
- 「Cookieと他のサイトデータ」と「キャッシュされた画像とファイル」にチェック
- 「データを削除」をクリック
クリア後、ブラウザを再起動してから再度SharePointにアクセスしてください。
対処法3:30分待ってから再試行
アクセス許可が最近変更された場合、レプリケーションの完了を待つ必要があります。
ファイルやフォルダの共有設定を変更した直後の場合、30分程度待ってから再度アクセスしてみましょう。
この間、他の作業を進めるか、一時的に別の方法でファイルにアクセスできないか検討してください。
対処法4:別のブラウザで試す
使用しているブラウザに問題がある可能性があります。
普段使用しているブラウザと異なるブラウザでアクセスしてみてください。
Edge、Chrome、Firefox、Safariなど、複数のブラウザで試すことで、ブラウザ固有の問題かどうかを特定できます。
対処法5:ダイレクトURLではなくポータルからアクセス
OneDriveの場合、直接URLにアクセスするのではなく、Microsoft 365ポータルからアクセスしてみてください。
- https://www.office.com にアクセス
- Microsoft 365の資格情報でサインイン
- アプリランチャーから「OneDrive」タイルをクリック
これにより、OneDriveサイトが自動的にプロビジョニングされます。
対処法6:管理者に連絡
上記の方法で解決しない場合、または権限の問題が明らかな場合は、SharePoint管理者に連絡してください。
連絡する際、以下の情報を提供するとスムーズです。
エラーが発生した日時
アクセスしようとしたファイルやフォルダの完全なURL
エラーメッセージの全文(可能であればスクリーンショット)
プライベートモードでアクセスできたかどうか
他のユーザーも同じ問題を経験しているかどうか
管理者向けの対処法

対処法1:ユーザーの権限を確認
ユーザーが適切な権限を持っているか確認します。
権限チェック機能を使用
- SharePointサイトにアクセス
- サイトURLの末尾に「/_layouts/15/user.aspx」を追加
例:https://contoso.sharepoint.com/sites/marketing/_layouts/15/user.aspx - ページ上部の「アクセス許可の確認」をクリック
- ユーザー名またはメールアドレスを入力
- 「今すぐ確認」をクリック
この機能により、ユーザーがどのような権限を持っているかが表示されます。
サイト設定から権限を確認
- SharePointサイトで歯車アイコンをクリック
- 「サイトの設定」を選択
- 「ユーザーと権限」セクションで「サイトの権限」をクリック
- 該当するユーザーまたはグループを確認
対処法2:権限の付与または変更
権限が不足している場合、適切な権限を付与します。
個別ユーザーへの権限付与
- SharePointサイトで歯車アイコンをクリック
- 「サイトの設定」→「サイトの権限」を選択
- リボンの「アクセス許可の付与」をクリック
- ユーザー名またはメールアドレスを入力
- 適切な権限レベルを選択(閲覧、編集、フルコントロールなど)
- 「共有」をクリック
グループへの権限付与
- 同様に「サイトの権限」ページにアクセス
- 「アクセス許可の付与」をクリック
- グループ名を入力
- 権限レベルを選択して「共有」をクリック
対処法3:サイトのロック状態を確認
サイトがロックされていないか確認します。
SharePoint管理センターでの確認
- Microsoft 365管理センターにアクセス
- 管理センター→SharePointを選択
- 「サイト」→「アクティブなサイト」をクリック
- 該当するサイトを選択
- 「全般」タブでロック状態を確認
ロック状態が「NoAccess」や「ReadOnly」になっている場合、それが403エラーの原因です。
対処法4:PowerShellでサイトのロックを解除
サイトがロックされている場合、PowerShellを使用して解除できます。
準備:SharePoint Online Management Shellに接続
# SharePoint管理センターのURLを設定
$AdminURL = "https://contoso-admin.sharepoint.com"
# SharePoint Onlineに接続
Connect-SPOService -Url $AdminURL
ロック状態の確認
# サイトのロック状態を確認
Get-SPOSite -Identity "https://contoso.sharepoint.com/sites/marketing" | Select URL, LockState
サイトのロックを解除
# NoAccessまたはReadOnlyからUnlockに変更
Set-SPOSite -Identity "https://contoso.sharepoint.com/sites/marketing" -LockState "Unlock"
複数のロックされたサイトを一括確認
# NoAccessになっているすべてのサイトを表示
Get-SPOSite -IncludePersonalSite $true | Where-Object {$_.LockState -eq "NoAccess"} | Select URL, LockState
OneDriveサイトのロック解除
# 特定ユーザーのOneDriveをロック解除
Set-SPOSite -Identity "https://contoso-my.sharepoint.com/personal/user_contoso_com" -LockState "Unlock"
ロック解除後、数分待ってからユーザーに再度アクセスしてもらいましょう。
対処法5:OneDriveサイトをプロビジョニング
ユーザーのOneDriveがまだプロビジョニングされていない場合、PowerShellで手動プロビジョニングできます。
# SharePoint Onlineに接続(既に接続済みの場合は不要)
Connect-SPOService -Url "https://contoso-admin.sharepoint.com"
# 特定ユーザーのOneDriveをプロビジョニング
Request-SPOPersonalSite -UserEmails "user@contoso.com"
# 複数ユーザーのOneDriveを一括プロビジョニング
Request-SPOPersonalSite -UserEmails @("user1@contoso.com", "user2@contoso.com", "user3@contoso.com")
プロビジョニングには数分から数十分かかる場合があります。
対処法6:ユーザープロファイルの再作成
特定のユーザーだけが継続的に403エラーを経験している場合、ユーザープロファイルを再作成します。
手順
- Microsoft 365管理センターでユーザーのライセンスを一時的に削除
- SharePoint管理センター→「その他の機能」→「ユーザープロファイル」を開く
- 「ユーザープロファイルの管理」をクリック
- ユーザー名で検索してプロファイルを削除
- SharePointサイトの「サイトの設定」→「サイトコレクションの管理者」からユーザーを削除
- サイトの「UserInfo」リストからもユーザーを削除
- Microsoft 365管理センターでライセンスを再割り当て(これによりプロファイルが再作成される)
- サイトコレクション管理者として再度追加
この方法は最終手段として使用してください。
対処法7:SharePoint Onlineサービスの正常性を確認
組織全体または複数のユーザーが同時に403エラーを経験している場合、Microsoftのサービス障害が原因の可能性があります。
サービス正常性の確認方法
- Microsoft 365管理センターにアクセス
- 左側メニューで「正常性」→「サービス正常性」を選択
- SharePoint Onlineの状態を確認
- アドバイザリやインシデントが報告されていないかチェック
サービス障害が発生している場合、Microsoft側で対応されるまで待つ必要があります。
問題が報告されていない場合は、「問題の報告」からMicrosoftサポートに連絡できます。
対処法8:外部ユーザーの権限を調整
外部ユーザーが403エラーを経験している場合、以下の点を確認します。
外部共有設定の確認
- SharePoint管理センターで「ポリシー」→「共有」を選択
- 組織レベルの外部共有設定を確認
- 必要に応じて設定を調整
外部ユーザーに適切な権限レベルを付与
外部ユーザーには、通常「編集」権限レベル以上が必要です。
「閲覧」のみの権限では、一部の機能にアクセスできないことがあります。
モダンビューへの切り替えを推奨
クラシックビューで問題が発生している場合、モダンビューに切り替えることで解決することがあります。
REST APIやPowerShellでの403エラー対処法
開発者や管理者がREST APIやPowerShellでSharePointにアクセスする際の403エラー対処法です。
Azure ADアプリの権限確認
必要な権限の付与
- Azure Portalにアクセス
- Azure Active Directory→「アプリの登録」を選択
- 該当するアプリケーションを選択
- 「APIのアクセス許可」をクリック
- 以下の権限が付与されているか確認
- Sites.ReadWrite.All(委任された権限)
- Sites.FullControl.All(アプリケーション権限、必要な場合)
- 権限が不足している場合は「アクセス許可の追加」をクリック
- Microsoft Graph→「委任されたアクセス許可」を選択
- 必要な権限を追加して「アクセス許可の追加」をクリック
- 「○○に管理者の同意を与えます」をクリック
PowerShellでの認証情報確認
正しいテナントURLの使用
# 間違い:サイトURLを指定
Connect-SPOService -Url "https://contoso.sharepoint.com/sites/marketing"
# 正しい:テナント管理URLを指定
Connect-SPOService -Url "https://contoso-admin.sharepoint.com"
資格情報の再入力
別のテナントの資格情報を使用していないか確認してください。
複数のMicrosoft 365テナントを管理している場合によくある間違いです。
Form Digest値の取得
REST APIでPOSTリクエストを送信する場合、有効なForm Digest値が必要です。
// Form Digest値を取得
const digestUrl = siteUrl + "/_api/contextinfo";
const digestResponse = await fetch(digestUrl, {
method: "POST",
headers: {
"Accept": "application/json;odata=verbose"
}
});
const digestData = await digestResponse.json();
const digestValue = digestData.d.GetContextWebInformation.FormDigestValue;
// POSTリクエストでForm Digestを使用
const response = await fetch(apiUrl, {
method: "POST",
headers: {
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": digestValue
},
body: JSON.stringify(data)
});
403エラーを予防するベストプラクティス
定期的な権限監査
3〜6ヶ月ごとに、サイトやライブラリの権限設定を見直しましょう。
不要になった権限は削除し、最小権限の原則を維持します。
特に、プロジェクト終了後や組織変更後は権限の整理が必要です。
権限の継承を活用
可能な限り、親サイトやライブラリからの権限継承を使用します。
個別のアイテムレベルで細かく権限を設定すると、管理が複雑になり、エラーの原因になりやすくなります。
どうしても個別の権限が必要な場合は、ドキュメント化して管理しましょう。
SharePointグループの活用
個別ユーザーに直接権限を付与するのではなく、SharePointグループを介して権限を管理します。
これにより、権限の変更が必要な場合、グループのメンバーシップを変更するだけで済みます。
組織の部門やプロジェクトチームに応じたグループ構造を設計しましょう。
サイトロックの計画的な使用
サイトをロックする場合は、事前にユーザーに通知します。
リダイレクトURL機能を使用して、ロックされたサイトにアクセスしたユーザーに適切な情報を提供しましょう。
# テナント全体でNoAccessサイトのリダイレクトURLを設定
Set-SPOTenant -NoAccessRedirectUrl "https://contoso.sharepoint.com/sites/support/SitePages/SiteLocked.aspx"
外部共有のガイドライン策定
外部ユーザーとの共有に関するガイドラインを策定します。
どのような情報を外部と共有してよいか、どの権限レベルを使用すべきかを明確にします。
外部共有のログを定期的に確認し、不適切な共有がないかチェックしましょう。
ユーザー教育
ユーザーに対して、SharePointの権限の仕組みや、403エラーが発生した際の基本的な対処法を教育します。
簡単なトラブルシューティングガイドを作成し、社内ポータルに掲載するのも効果的です。
よくある質問と回答
Q1: 403エラーと401エラーの違いは何ですか?
401エラーは認証情報が提供されていないか、認証が失敗した場合に発生します。
一方、403エラーは認証は成功しているものの、リソースへのアクセス権限がない場合に発生します。
401の場合は正しいユーザー名とパスワードでサインインすれば解決しますが、403の場合は権限の付与が必要です。
Q2: プライベートモードではアクセスできるのに、通常モードではエラーになります
ブラウザのキャッシュやCookieが原因です。
通常モードでブラウザのキャッシュとCookieをクリアすることで解決します。
それでも解決しない場合は、ブラウザの拡張機能が干渉している可能性があるため、拡張機能を無効にして試してください。
Q3: 昨日まで問題なくアクセスできていたのに、突然403エラーになりました
以下の原因が考えられます。
サイト管理者が権限設定を変更した
サイトがロックされた
SharePoint Onlineのサービス障害
ブラウザのキャッシュ問題
まず、プライベートモードでアクセスできるか試し、できない場合は管理者に連絡してください。
Q4: 特定のユーザーだけが403エラーを経験しています
ユーザープロファイルの問題の可能性があります。
SharePoint管理センターでそのユーザーのプロファイルを確認し、必要に応じて再作成してください。
また、そのユーザーが複数のMicrosoft 365アカウントを持っている場合、間違ったアカウントでサインインしている可能性もあります。
Q5: PowerShellでSharePointに接続すると403エラーになります
以下を確認してください。
正しいテナント管理URL(https://domain-admin.sharepoint.com)を使用しているか
使用している資格情報が正しいテナントのものか
必要なPowerShellモジュールがインストールされているか
ユーザーアカウントにSharePoint管理者権限があるか
間違ったテナントの資格情報を使用している場合がよくあります。
Q6: REST APIで403エラーが発生しますが、ブラウザでは正常にアクセスできます
Azure ADアプリの登録で、必要なAPI権限が付与されていない可能性があります。
Sites.ReadWrite.AllまたはSites.FullControl.Allなどの権限を確認してください。
また、POSTリクエストの場合は有効なForm Digest値が含まれているか確認しましょう。
Q7: 外部ユーザーがサイトコンテンツページで403エラーになります
外部ユーザーはクラシックビューの一部の機能にアクセスできない制限があります。
モダンビューに切り替えることで解決することが多いです。
また、外部ユーザーには「編集」権限レベル以上を付与することをおすすめします。
Q8: サイトのロックを解除してもすぐにアクセスできません
ロック解除後、変更が反映されるまで数分かかることがあります。
5〜10分待ってから再度アクセスしてもらいましょう。
それでも解決しない場合は、ブラウザのキャッシュをクリアしてから試してください。
まとめ
SharePointの403 Forbiddenエラーについて、重要なポイントをまとめます。
403エラーの基本
認証は成功しているが、アクセス権限がない状態を示すHTTPステータスコードです。
401(認証エラー)や404(Not Found)とは異なります。
主な発生原因
アクセス権限の不足(最も一般的)
サイトまたはOneDriveがロックされている
ブラウザのキャッシュとCookieの問題
アクセス許可のレプリケーション遅延(最大30分)
OneDriveサイトが未プロビジョニング
SharePoint Onlineサービスの問題
REST API/PowerShellでの認証や権限設定の問題
ユーザープロファイルの破損
ユーザー向け対処法
InPrivate/シークレットモードでアクセスを試す
ブラウザのキャッシュとCookieをクリア
30分待ってから再試行(権限変更直後の場合)
別のブラウザで試す
Microsoft 365ポータル経由でアクセス
管理者に連絡(詳細情報を提供)
管理者向け対処法
ユーザーの権限を確認・付与
サイトのロック状態を確認
PowerShellでサイトのロックを解除
OneDriveサイトを手動プロビジョニング
ユーザープロファイルの再作成
SharePoint Onlineサービスの正常性を確認
外部ユーザーの権限を調整
PowerShellでの主要コマンド
# ロック状態の確認
Get-SPOSite -Identity <SiteURL> | Select URL, LockState
# ロックの解除
Set-SPOSite -Identity <SiteURL> -LockState "Unlock"
# OneDriveのプロビジョニング
Request-SPOPersonalSite -UserEmails "user@domain.com"
予防策
定期的な権限監査(3〜6ヶ月ごと)
権限の継承を活用し、個別設定は最小限に
SharePointグループを使った権限管理
サイトロックの計画的な使用とユーザーへの通知
外部共有のガイドライン策定
ユーザー教育とトラブルシューティングガイドの提供
403 Forbiddenエラーは、SharePointで最もよく遭遇するエラーの一つですが、原因を正しく理解し、適切な対処法を知っていれば、迅速に解決できます。
ユーザーと管理者が協力して、権限管理のベストプラクティスを維持することが、エラーを未然に防ぐ最も効果的な方法です。

コメント