Power Automate × SharePointワークフローで「HTTP未承認(401エラー)」が出た!原因と解決方法を徹底解説!
「Power Automate(パワー・オートメイト)で作ったフローが、SharePoint(シェアポイント)のファイルやデータにアクセスしようとしたら、『HTTP未承認』ってエラーが出て止まってしまった…」「『401 Unauthorized』っていうエラーメッセージが表示されて、フローが動かないんだけど、これってどういう意味?」「SharePointのデータが更新されないと仕事が進まないから、このエラーの原因を知って直したいな…」
こんな風に感じたことはありませんか? Power AutomateでSharePointの情報を操作するフローは非常に便利ですが、時々「HTTP未承認」というエラーに遭遇することがあります。このエラーが出ると、フローはSharePointに対して何らかの操作(例:ファイルの作成、リストアイテムの更新、情報の取得など)を実行できなくなり、作業が中断してしまいます。
Power AutomateのSharePointワークフローで「HTTP未承認」エラー(通常はHTTPステータスコード「401」を示します)が出る場合、その意味と発生する理由をしっかり理解し、適切な対処法を知っていれば、多くの場合、比較的簡単に解決できます。このエラーは、フロー自体が壊れてしまったわけではありません。SharePoint側が、フローの「身元」を正しく確認できなかった、あるいは「鍵」が合わなかった状態なのです。
「HTTP未承認(401エラー)」ってどんな意味?「認証に失敗した」というサイン
Power Automateで発生する「HTTP未承認」エラー、またはHTTPステータスコード「401 Unauthorized(アンオーソライズド)」は、日本語で言うと「未認証」や「認証に失敗」といった意味になります。
簡単に言えば、Power AutomateのフローがSharePointのサイトやデータにアクセスするために、自身の「身分証明書」や「鍵」(つまり、接続情報や認証トークン)を提示したけれど、SharePoint側がその証明書や鍵を「正しくない」「期限切れだ」「誰なのか確認できない」と判断し、アクセスを拒否した状態を表します。
「権限がない」エラーとは明確に違う
よく似たエラーに「403 Forbidden(フォービビデン)」というものがありますが、これは「認証は通った(身元は確認できた)けれど、その『鍵』を持つあなたには、この場所への『アクセス許可』がない」という意味です。つまり、誰であるかは認識しているが、その操作を実行する「権利」がない状態です。
それに対して、401エラーは、そもそも「身元確認」の段階で問題が発生しているのです。「鍵が間違っているか、身分証明書が期限切れで、誰なのか確認できない」という、「認証そのものができない」状態を示します。
Power Automateでの表示
Power Automateのフローの実行履歴では、エラーになったSharePoint関連のステップをクリックすると、「ステータス コード: 401」という表示とともに、「Unauthorized」や「Access Denied」といったメッセージ、あるいは「接続が無効」というメッセージが表示されることが多いです。このメッセージには、エラーの原因に関するヒントが書かれていることもあります。
「HTTP未承認(401エラー)」はなぜ起きるの?主な原因を考える
401エラーが発生する原因は、フローがSharePointに接続するために使っている「認証情報」や「接続」に問題がある場合がほとんどです。
1. 接続アカウントのパスワード変更や有効期限切れ
これは最も一般的な原因です。Power AutomateがSharePointに接続するために使っているあなたのMicrosoft 365アカウントのパスワードが、最近変更されたにもかかわらず、Power Automateの接続情報が更新されていない場合に発生します。また、パスワードの有効期限が切れてしまっている場合も同様です。フローは古いパスワード情報で接続しようとするため、認証に失敗します。
2. 多要素認証(MFA)の問題
もしあなたのアカウントや、Power Automateの接続に使用しているサービスアカウントで多要素認証(MFA:パスワードだけでなく、スマートフォンアプリでの承認やSMSコードの入力など、複数の方法で本人確認を行うセキュリティ機能)が有効になっている場合、そのMFAの認証プロセスが正しく完了していないことが原因となることがあります。例えば、再認証が求められているのに、あなたがスマートフォンで「承認」ボタンを押していない場合などです。
3. 接続情報が破損している、または認証トークンの期限切れ
ごく稀に、Power Automateで保存されているSharePointへの「接続情報」自体が、何らかの理由で破損してしまったり、接続に使われる認証トークンが期限切れになってしまったりすることがあります。Power Automateの接続は、一度認証すれば一定期間その状態が維持されますが、セキュリティポリシーや、長期間使用されていない接続は自動的に無効になることがあります。
4. アカウントが無効化されたり、ロックされたりした場合
接続に使用しているあなたのアカウントが、会社のMicrosoft 365管理者によって一時的にロックされたり、無効化されたりした場合にも、Power AutomateはSharePointに接続できなくなり、401エラーが発生します。例えば、パスワードを何度も間違えすぎた場合などに、アカウントがロックされることがあります。
5. 条件付きアクセスポリシーの影響
会社のIT部門がAzure Active Directory(アジュール・アクティブ・ディレクトリ)で「条件付きアクセス」というセキュリティルールを設定している場合、それが原因で401エラーが発生することがあります。例えば、「特定の場所からしかアクセスできない」「特定のデバイスからしかアクセスできない」といったルールが設定されている場合、Power Automateからの自動的なアクセスがブロックされることがあります。
6. SharePointサイトの認証設定や外部共有設定
SharePointサイトが特定の認証方法(例: ゲストユーザーとの外部共有の設定が不適切)を使用していたり、あるいはサイト自体の認証プロバイダーに問題があったりする場合、フローからのアクセスが予期せず拒否されることがあります。また、SharePoint Onlineでは、特定のカスタムスクリプトが許可されていないサイトでは、一部のHTTP要求が制限されることもあります。
7. 不適切なAPI URLやヘッダー(HTTPアクションの場合)
もしフローで「HTTP要求を送信します」アクションを使ってSharePoint APIを呼び出している場合、そのAPIのURLが間違っていたり、認証に必要なヘッダー(Authorizationヘッダーなど)が不足していたり、あるいはAPIのバージョンが古すぎたりすると、認証に失敗して401エラーが返されることがあります。
「HTTP未承認(401エラー)」の具体的な修復・改善方法
401エラーは、原因が認証にあるため、基本的には「接続を再認証する」ことで解決することがほとんどです。以下の方法を順番に試していくことが推奨されます。
1. 接続の「再認証」を行う(最も重要で効果的!)
これが401エラーを解決する最も確実で効果的な方法です。
- Power Automateポータルにサインインします。ウェブブラウザでPower Automateのポータルサイト(https://www.google.com/search?q=make.powerautomate.com)にアクセスし、あなたのMicrosoft 365アカウントでサインインしてください。
- 左側のメニューから「データ」を展開し、「接続」をクリックします。画面の左側にあるナビゲーションメニューを見てください。そこに「データ」という項目があるはずです。これをクリックして展開し、「接続」を選んでください。
- 無効になっているSharePoint関連の接続を探し、「接続を修正」または「再接続」を選びます。接続の一覧が表示されます。この中で、ステータスが「無効」や「エラー」になっているSharePointコネクタの接続(多くの場合、赤い警告アイコンが表示されています)を探してください。該当の接続の右側にある「…」(三点リーダー)をクリックし、表示されるメニューから「接続を修正」または「再接続」を選択します。
- 画面の指示に従って再認証を完了します。新しいウィンドウやポップアップが表示され、サインインを求められますので、正しいユーザー名とパスワードを入力し、再度サインインして認証を完了させてください。
- 多要素認証(MFA)が有効な場合: スマートフォンアプリでの承認、SMSコードの入力、生体認証など、MFAの手順が求められますので、指示に従って認証を完了させてください。これを忘れると、再び認証に失敗します。
- 接続が「有効」になったことを確認し、フローを再テストします。接続のステータスが「有効」になったことを確認したら、エラーが出ていたフローに戻り、再度テスト実行してみてください。多くの場合、これで問題は解決します。
2. 新しい接続を作成し、フロー内で置き換える
既存の接続の再認証がどうしても解決しない場合や、接続が破損していると疑われる場合に試す方法です。
- 新しいSharePointコネクタの接続を作成します。「データ」→「接続」の画面で、「+ 新しい接続」をクリックします。検索ボックスに「SharePoint」と入力して選択し、新しい接続を作成します。この際、フローで利用したい、有効なアカウント情報で認証を行います。
- フロー内の古い接続を新しい接続に置き換えます。エラーが出ているフローを編集モードで開きます。フロー内の各SharePoint関連のアクション(例:「SharePointのアイテムを取得」)をクリックし、設定画面で「接続」のドロップダウンメニューを開きます。そこに、新しく作成した接続が表示されているはずですので、これを選択し直してください。フロー内のすべての該当アクションでこの作業を繰り返します。
- フローを保存してテストします。変更を保存し、フローを再度テスト実行して問題が解決したか確認します。
3. 接続アカウントの「権限」を徹底的に確認する
401エラーは認証の問題ですが、非常に稀に権限不足が認証失敗のように見えることもあります。また、再認証は通っても、そのアカウントに実際に必要な権限がない場合に後続でエラーになります。
- 接続に使用しているアカウントでSharePointに直接サインインしてみます。Power Automateの接続に使用しているMicrosoft 365アカウントで、問題のSharePointサイトに直接サインインしてみてください。
- フローが実行しようとしている操作を手動で試します。フローが実行しようとしている操作(例:特定のドキュメントライブラリへのファイル作成、特定のリストアイテムの更新など)を、手動でそのアカウントで実行できるか試します。
- もし手動でもできない場合、そのアカウントには必要な権限がありません。
- 権限の付与を依頼します。SharePointの管理者やサイトの所有者に連絡し、フローが実行したい操作に対して、接続アカウントに十分な権限(例:ファイルを「作成」するなら「共同作成者」以上、リストアイテムを「更新」するなら「編集」以上)を付与してもらうよう依頼してください。権限が付与された後、必ず上記の手順1で接続の再認証も行ってください。
4. 条件付きアクセスポリシーを確認する(会社のIT管理者向け)
会社のIT部門がAzure Active Directoryで「条件付きアクセス」というセキュリティルールを設定している場合、それが原因で401エラーが発生することがあります。
- Azure Portalで条件付きアクセスポリシーを確認します。会社のIT管理者は、Azure Portal(portal.azure.com)にアクセスし、「Azure Active Directory」→「セキュリティ」→「条件付きアクセス」を確認します。Power Automateからのアクセスが、特定のポリシー(例:未承認の場所やデバイスからのアクセス制限、特定のクライアントアプリからのアクセス制限)によってブロックされていないかを確認してもらいます。
- ポリシーの調整を依頼します。もし条件付きアクセスポリシーが原因であると判明した場合、管理者に、Power Automateからのアクセスを許可するようにポリシーを調整してもらうよう依頼します。これには、特定のIPアドレスからのアクセスを許可する、信頼できる場所からのアクセスを許可する、特定のユーザーをポリシーの対象から除外するなどの方法があります。
5. HTTPアクションのパラメータを確認する(HTTPアクションを使う場合)
もしフローが「HTTP要求を送信します」アクションを使ってSharePoint APIを呼び出している場合に401エラーが出るなら、APIのパラメータに問題がある可能性があります。
- APIのURL、ヘッダー、ボディを確認します。HTTPアクションの設定で、APIのURLが正しいか、認証に必要なヘッダー(Authorizationヘッダーなど)が正しく設定されているか、リクエストボディの形式が正しいかを確認します。
- SharePoint REST APIの認証を確認します。SharePoint REST APIにアクセスする場合、通常はOAuth認証や、アプリ専用の認証(SharePoint Add-in ModelやAzure ADアプリ登録)が使われます。これらの認証設定が正しく、かつトークンが有効かを確認してください。
6. SharePointサイトの特定の機能設定を確認する(管理者向け)
ごく稀に、SharePointサイトの特定のセキュリティ設定が影響する場合もあります。
- 「カスタムスクリプト」の設定を確認する:SharePoint Onlineの特定のサイトでは、「カスタムスクリプト」の実行が許可されていない場合があります。一部のAPI呼び出しや、古いカスタマイズが絡むと、これが認証エラーのように見えることがあります。SharePoint管理センターで、該当サイトの「カスタムスクリプト」の設定を確認してください。
- 外部共有設定を確認する:もしフローがゲストユーザーや外部共有コンテンツにアクセスしようとしていて401が出る場合、サイトの外部共有設定や、ゲストユーザーの認証状態に問題がある可能性があります。
今後の「HTTP未承認(401エラー)」を防ぐための改善策
一度解決しても、再び401エラーが発生しないように、以下の点を意識し、予防策を講じましょう。
1. 定期的な接続の確認と再認証を習慣にする
Power Automateの「接続」画面(「データ」→「接続」)を定期的に確認し、使用しているSharePointへの接続が常に「有効」な状態であることを確認する習慣をつけましょう。特に、パスワードを更新した後や、長期間(90日以上)使用していないフローがある場合は、意識的に接続の再認証を行うことで、401エラーの発生を防ぐことができます。
2. サービスアカウントの利用を検討する
会社のIT部門の許可が得られるのであれば、個人のMicrosoft 365アカウントではなく、特定のフローやシステム連携のためだけに用意された「サービスアカウント」をPower Automateの接続に使用することを検討します。これにより、個人のパスワード変更や退職がフローに与える影響を最小限に抑え、より安定した運用が可能になります。サービスアカウントの管理は、会社のセキュリティポリシーに従って厳密に行う必要があります。
3. エラーハンドリングの導入と通知を設定する
フローにエラーハンドリング(エラーが発生した時に特定の処理を行う仕組み)を導入し、401エラーを含む実行時エラーが発生した場合に、自動でTeams通知やメール通知が飛ぶように設定します。これにより、問題発生を早期に検知し、迅速に対応できます。通知には、エラーコード、エラーメッセージ、フローの実行URLなどの詳細を含めると、トラブルシューティングがスムーズになります。
4. 再試行ポリシーの活用
ネットワークの一時的な問題やAPIの一時的な不具合による401エラーの場合に備え、SharePoint関連の各アクションの「設定」で「再試行ポリシー」を設定しておきましょう。これにより、フローが自動で数回再試行し、軽微な一時的エラーであれば自動で回復し、正常に完了する可能性を高められます。
5. フローのドキュメント化と所有者の管理
重要なフローについては、使用している接続アカウント、アクセス先SharePointサイトのURL、必要な権限レベルなどを明確にドキュメント化しておきましょう。また、フローの所有者も明確にし、担当者が変更になった場合の引き継ぎをスムーズに行えるように準備してください。

