SharePoint|HTTP 要求が承認されていませんエラーの原因・改善方法を分かりやすく説明

SharePointで「HTTP 要求が承認されていません」となる原因と解決策:システム連携の壁を乗り越えよう!

 

「Power Automate(パワー・オートメイト)で作ったフローが、SharePoint(シェアポイント)のデータにアクセスしようとしたら、『HTTP 要求が承認されていません』ってエラーが出て止まってしまったんだけど、これってどういうこと?」「自動で情報を更新したいのに、システム連携がうまくいかないな…どうすれば直るの?」

こんな風に感じたことはありませんか? SharePointは、他のシステム(Power Automate、カスタムアプリ、外部サービスなど)からWeb技術を使ってアクセスされ、情報をやり取りすることがよくあります。しかし、この際に「HTTP 要求が承認されていません」というエラーメッセージが表示されると、どこに問題があるのか分からず、困惑してしまうかもしれません。このエラーは、業務の自動化やシステム連携を妨げる大きな問題となります。

SharePointで「HTTP 要求が承認されていません」となる原因はいくつか考えられますが、その多くは特定でき、適切な対処法を知っていれば、比較的簡単に解決できます。このエラーは、要求を出している側(フローやアプリなど)が、SharePointに対して「誰であるか」や「何をする許可があるか」を正しく伝えられていない場合に発生します。


 

「HTTP 要求が承認されていません」ってどんな意味?「身元不明か、許可なし」のサイン

SharePointで「HTTP 要求が承認されていません」というエラーメッセージが表示される場合、これは、ウェブ通信の標準であるHTTP(ハイパーテキスト・トランスファー・プロトコル)のリクエストにおいて、「認証」または「承認(許可)」の段階で問題が発生したことを意味します。これは、大きく分けて二つの状態を含んでいます。

 

1.1. 「401 Unauthorized」(未認証)の状態

これは、要求を送信した側が、「誰であるか」を示すための「身分証明書」や「鍵」(認証情報やトークン)を提示していないか、または提示したものが間違っている、あるいは期限切れであるために、SharePoint側がその身元を全く確認できない状態です。

  • 例えるなら: 会社の入り口で警備員に「身分証を見せてください」と言われたのに、身分証を持っていなかったり、他人の身分証を出してしまったりするような状況です。警備員は「あなたは誰ですか?」と問いかけている状態です。

 

1.2. 「403 Forbidden」(禁止)の状態

これは、要求を送信した側が、身元は確認できたものの(認証は成功したものの)、その身元を持つ者が「この操作を行うための許可(権限)」を持っていないために、SharePoint側が操作を拒否した状態です。

  • 例えるなら: 会社の入り口で身分証を見せて「私は〇〇部署の者です」と名乗ったけれど、その部署の人が入ることを禁止されている部屋に入ろうとした、あるいは許可されていない書類に手を伸ばそうとしたような状況です。警備員は「あなたは〇〇さんですね、しかしその行動は許可できません」と言っている状態です。

Power AutomateなどからSharePointにアクセスする場合、多くの場合、この両方の意味合いが「HTTP 要求が承認されていません」というメッセージの背景に存在している可能性があります。


 

「HTTP 要求が承認されていません」が起きる主な原因

SharePointで「HTTP 要求が承認されていません」となる場合、様々な理由が考えられます。エラーメッセージは明確ですが、その背景にある具体的な原因はいくつかありますので、一つずつ確認していくことが大切です。

 

1. フローが使用する「接続アカウントの認証情報」が正しくない(最も多い原因)

これは、Power AutomateなどからSharePointにアクセスする際に、最も一般的で、かつ中心的な原因です。

  • 原因:
    1. パスワードの変更や有効期限切れ:Power AutomateがSharePointに接続するために使っているMicrosoft 365アカウントのパスワードが最近変更されたにもかかわらず、Power Automateの接続情報が更新されていない。または、パスワードの有効期限が切れている。
    2. 多要素認証(MFA)の問題:接続に使用しているアカウントで多要素認証(MFA:パスワードだけでなく、スマートフォンアプリでの承認やSMSコードの入力など)が有効になっているが、再認証が求められているMFAの認証プロセスが正しく完了していない。
    3. アカウントが無効化されたり、ロックされたりした場合:接続に使用しているアカウントが、Microsoft 365管理者によって一時的にロックされたり、無効化されたりしている。
    4. 接続情報の破損や認証トークンの期限切れ:Power Automateで保存されているSharePointへの「接続情報」自体が破損している、または認証トークンが期限切れになっている。
  • 具体的な対処法:
    1. Power Automateの「接続」を再認証する:Power Automateポータル(https://www.google.com/search?q=make.powerautomate.com)にアクセスし、左メニュー「データ」→「接続」をクリックします。SharePointコネクタの接続(ステータスが「無効」や「エラー」になっている場合が多い)を探し、右側の「…」をクリックして「接続を修正」または「再接続」を選択します。画面の指示に従って、正しいユーザー名とパスワードで再度サインインし、MFAの認証プロセスを完了させてください。
    2. 新しい接続を作成し、フローで置き換える:既存の接続の再認証がうまくいかない場合や、接続が破損していると疑われる場合は、完全に新しいSharePointコネクタの接続を作成し直し、その新しい接続をフローの該当アクションに置き換えてください。
    3. 接続アカウントの状況を確認する:Power Automateの接続に使用しているアカウントで、SharePointサイトに直接サインインできるか、他のMicrosoft 365サービスにアクセスできるかを確認してください。アカウントが有効であるか、ロックされていないかを確認します。

 

2. フローが実行しようとしている「SharePointの操作に対する権限」が不足している

認証は通っているが、そのアカウントが、SharePointで実行しようとしている特定の操作を行う許可を持っていない場合です。これは403 Forbiddenに近いです。

  • 原因:
    • 接続アカウントが、操作対象のSharePointサイト、ドキュメントライブラリ、フォルダー、またはファイルに対して、必要なアクセス権限(例: 「編集」「フルコントロール」「アイテムの追加」など)を持っていない
    • 例えば、ファイルを「作成」しようとしているのに「閲覧」権限しかない場合。
    • SharePointサイトの「カスタムスクリプト」が無効になっているため、一部の高度なAPI操作が制限されている。
  • 具体的な対処法:
    1. 接続アカウントの「SharePoint権限」を確認し、付与を依頼する:Power Automateの接続に使用しているアカウントで、問題のSharePointサイトに直接サインインしてみてください。そして、フローが実行しようとしている操作(例: 特定のドキュメントライブラリへのファイル作成、特定のリストアイテムの更新など)を、手動でそのアカウントで実行できるか試します。もし手動でもできない場合、そのアカウントには必要な権限がありません。SharePointの管理者やサイトの所有者に連絡し、接続アカウントに、必要な操作(例: ファイル作成なら「共同作成者」以上、サイト設定なら「フルコントロール」)を許可する十分な権限を付与してもらうよう依頼してください。権限が付与されたら、必ずPower Automateの接続も再認証してください。
    2. SharePointサイトの「カスタムスクリプト」の設定を確認する(管理者向け):SharePoint管理センター(https://www.google.com/search?q=admin.sharepoint.com)にアクセスし、「設定」から「カスタムスクリプト」の項目を確認します。一部のAPI呼び出しや、古いカスタマイズが絡むと、これが認証エラーのように見えることがあります。必要であれば、「サイトで個人用スクリプトを許可する」などを有効にすることを検討します。(ただし、これはセキュリティ上の影響があるため、会社の承認が必要です。)

 

3. 会社の「ネットワーク設定」や「セキュリティポリシー」によるブロック

あなたの会社のネットワーク環境が、SharePointへの特定の通信を制限している場合があります。

  • 原因:
    • ファイアウォールやプロキシサーバーによるブロック: 会社のファイアウォールやプロキシサーバーが、SharePoint Onlineへの特定の通信をブロックしている。特に、認証サービス(https://www.google.com/search?q=login.microsoftonline.comなど)やSharePointのAPIエンドポイントへの通信が妨げられている場合。
    • VPN接続の問題: VPN経由でアクセスしている場合、VPNサーバーの負荷や設定が通信を妨げている。
    • 条件付きアクセスポリシー: Azure Active Directoryの「条件付きアクセス」ポリシーが、特定の場所、デバイス、またはアプリケーションからのアクセスを制限している。
  • 具体的な対処法:
    1. 会社のIT管理者に相談する:会社のファイアウォール、プロキシサーバー、VPN、条件付きアクセスなどが原因だと疑われる場合、必ず会社のIT部門やネットワーク管理者に連絡してください。彼らに、Power AutomateがSharePointにアクセスするために必要な通信(マイクロソフトが公開しているURLやIPアドレスのリスト)が許可されているか、また条件付きアクセスポリシーが適用されていないかを確認してもらいましょう。

 

4. HTTP要求の形式が誤っている(HTTPアクションの場合)

Power Automateの「HTTP要求を送信します」アクションを使ってSharePoint APIを呼び出している場合に発生します。

原因

  • APIのURLが間違っている、または存在しないリソースを指している。
  • 要求のメソッド(GET/POSTなど)が間違っている。
  • 認証に必要なヘッダー(例: Authorizationヘッダー)が不足しているか、形式が間違っている。
  • 要求ボディの形式(JSON/XMLなど)が誤っている。
  • SharePoint APIのバージョンが古い、または非推奨のAPIを呼び出している。

 

対処法

  1. HTTPアクションの設定を詳細に確認する:フローの「HTTP要求を送信します」アクションの設定を開き、「URI」「メソッド」「ヘッダー」「本文」「認証」の各項目が、参照しているSharePoint REST APIのドキュメントに正確に合致しているかを確認します。特に、認証セクションでのAzure AD認証の設定(クライアントID、テナントID、リソースなど)が正しいかを確認してください。
  2. APIドキュメントを再確認する:呼び出そうとしているSharePoint REST APIの公式ドキュメント(例: Microsoft DocsのSharePoint REST APIリファレンス)を再度読み込み、要求の形式が正しいか確認します。
  3. PostmanなどのツールでAPIを直接テストする:PostmanやInsomniaなどのAPIテストツールを使って、Power Automateから送ろうとしているのと同じリクエストを直接APIに送信してみます。これにより、問題がPower Automateのフローの組み方にあるのか、APIの要求内容自体に問題があるのか、あるいはAPIが正しい応答を返しているか(例えば403エラーを返しているのか、本当に401なのか)を切り分けられます。

 

5. SharePoint Server(オンプレミス版)の問題

もし会社でSharePoint Server(自社サーバーで運用するSharePoint)を使っている場合、サーバー側の問題も考えられます。

原因

  • SharePoint Serverの認証サービス(例: STS (Security Token Service))に問題がある。
  • IIS(Internet Information Services)の設定に問題がある。
  • SQL Serverデータベースとの接続問題。

 

対処法(SharePoint Server管理者向け)

  1. SharePoint認証サービスの状態を確認する:SharePoint中央管理サイトやサーバーマネージャーで、関連するSharePointサービス(特にSTS)が正常に稼働しているか確認します。
  2. IIS認証設定を確認する:IISマネージャーで、SharePoint Webアプリケーションの認証設定が正しく、匿名認証やWindows認証などが有効になっているか確認します。
  3. イベントログやULSログの確認:SharePointサーバーのイベントビューアやSharePointのULSログを確認し、エラーの原因に関する詳細な情報を探します。

「HTTP 要求が承認されていません」を防ぐための改善策

一度解決しても、再び同様のエラーが発生しないように、以下の点を意識し、予防策を講じましょう。

 

1. フローの「接続」が常に有効か確認し、定期的に再認証する

Power Automateポータルの「データ」→「接続」画面で、SharePointへの接続が常に「有効」な状態であることを確認する習慣をつけましょう。パスワード更新後や、長期間使用していないフローがある場合は、意識的に接続の再認証を行ってください。これが、401エラーの最も基本的な予防策です。

 

2. 「最小権限の原則」に基づき、適切な権限を付与する

フローが使用するアカウントには、SharePointで実行したい操作に対して、必要最小限の権限のみを付与しましょう。しかし、同時にその「最小限」の権限が不足しているとエラーになるため、フローの接続アカウントは、対象のサイトで実行する全ての操作に必要な権限(例えば、ファイルの作成も行うなら「編集」権限、サイト設定も変更するなら「フルコントロール」権限)を確実に持つようにしてください。

 

3. サービスアカウントの利用を検討する

会社のIT部門の許可が得られるのであれば、個人のMicrosoft 365アカウントではなく、特定のフローやシステム連携のためだけに用意された「サービスアカウント」をPower Automateの接続に使用することを強く推奨します。これにより、個人のパスワード変更や退職がフローに与える影響を最小限に抑え、より安定した運用が可能になります。サービスアカウントの管理は、会社のセキュリティポリシーに従って厳密に行う必要があります。

 

4. エラーハンドリングと通知を設定する

「HTTP 要求が承認されていません」エラーは、フローの停止に直結します。必ず「エラーハンドリング」を設定し、エラー発生時に自動でTeams通知やメール通知が飛ぶように設定してください。通知には、エラーコード、エラーメッセージ、フローの実行URLなどの詳細を含めると、トラブルシューティングがスムーズになります。また、一時的なネットワーク問題に備えて、各アクションに「再試行ポリシー」を設定しておくことも有効です。

 

5. フローのドキュメント化とテストを徹底する

使用している接続アカウント、アクセス先SharePointサイトのURL、必要な権限レベルなどを明確にドキュメント化しておきましょう。また、本番環境にデプロイする前に、必ずテスト環境でフローを十分にテストし、様々なシナリオ(権限不足、データがない場合、ネットワークエラーをシミュレートするなど)で、意図通りに動作するか、エラーが正しくハンドリングされるかを確認してください。


SharePointで「HTTP 要求が承認されていません」というエラーが表示されるのは、フローの認証情報に問題があるか、またはその認証情報を持つアカウントに操作の権限が不足していることが主な原因です。上記で解説した原因と対処法を一つずつ確認し、ベストプラクティスを実践することで、あなたはこれらの問題を解決し、SharePointとの連携フローを安定して稼働させられるようになるでしょう。