Power AutomateフローでSharePointリストの複数項目を一括更新しようとした際に、「アクセスが拒否されました」や「権限が不足しています」といったエラーが発生することがあります。この問題は、フローを実行するアカウントの権限設定やサイトの共有範囲に起因するケースが大半です。本記事では、SharePointの権限モデルとPower Automateの実行コンテキストを踏まえ、原因の切り分け方法と具体的な修正手順を解説します。設定変更が必要な場合は社内のSharePoint管理者と連携しながら対応を進めてください。
【要点】この記事で確認すること
- 最初に見る場所: フローの「実行ユーザー」が、更新対象のSharePointリストに対して「編集」以上の権限を持っているか確認します。フロー作成者と実行ユーザーが異なる場合は特に注意が必要です。
- 切り分けの軸: エラーの原因を「アカウント権限の不足」「共有範囲の制限」「Azure ADアプリのアクセス許可」の3つに分けて調査します。フローがリストアイテムを1件ずつ更新する場合は成功するが、複数件まとめて更新すると失敗するときは、主に権限スコープの問題です。
- 注意点: SharePointサイトのアクセス許可を変更する際は、既存の権限設定や親サイトからの継承に影響を与える可能性があります。また、Azure ADでのAPIアクセス許可の追加は全体管理者の承認が必要な場合があるため、変更前に必ず管理者に相談してください。
ADVERTISEMENT
目次
1. 権限エラーの一般的な原因
Power AutomateでSharePointリストの複数項目を更新する際に発生する権限エラーの根本的な原因を理解するためには、実行アカウントの権限モデルとPower Automateの動作の違いを把握する必要があります。
1.1 実行アカウントに必要な権限
Power Automateフローは、フロー作成者のアカウント、または接続参照で指定されたアカウントの権限で実行されます。SharePointリストのアイテムを更新するには、そのリストに対して「編集」または「フルコントロール」のアクセス許可が必要です。しかし、複数項目を一度に更新するアクション(例:「複数の項目を更新」アクション)は、内部的にリストの「一覧権限(EnumeratePermissions)」や「サイト全体の読み取り」を要求する場合があります。そのため、単一項目更新では問題なくても、複数項目更新で権限エラーが発生することがあります。
1.2 複数項目更新に特有の権限要件
「複数の項目を更新」アクションは、指定した条件に合致するアイテムをすべて更新するために、リスト全体に対するスキャンと書き込みを行います。この処理では、リストのメタデータやバージョン情報へのアクセスが必要となるため、実行ユーザーは少なくとも「読み取り」と「編集」の両方の権限を持っている必要があります。さらに、リストの「すべてのアイテムを読み取る」権限が不足していると、フィルター条件に合うアイテムを特定できずエラーになります。また、サイトの共有範囲が「サイトメンバー以外はアクセスできない」設定になっている場合、フローを実行するサービスプリンシパル(もし接続で使用している場合)がアクセスを拒否されることもあります。
2. 共有範囲の設定が原因となるケース
SharePointサイトには、外部共有や匿名共有などの共有範囲設定があります。Power Automateフローがリストアイテムを更新するとき、共有範囲の制限が原因でエラーが発生することがあります。
2.1 サイトコレクション共有と外部共有の影響
SharePoint管理センターで設定されている共有範囲が「組織内のユーザーのみ」や「既存のゲストのみ」に制限されている場合、フロー実行アカウントがサイトのメンバーでなければアクセスできません。特に、フローの接続にサービスプリンシパル(アプリ専用のID)を使用している場合、そのサービスプリンシパルがサイトのメンバーとして追加されていないとエラーが発生します。また、外部共有が無効になっていると、組織外のユーザーが関わるフロー(例:パートナー企業との共有リスト)は更新できません。
2.2 フローを共有している場合の許可範囲
Power Automateフローは他のユーザーと共有できますが、共有されたフローを実行するユーザーは、フロー内で使用しているコネクタ(SharePoint)の権限を自身のアカウントで持っている必要があります。フロー作成者が独自の接続を使用していて、実行ユーザーがその接続を使えない場合は、権限エラーになります。この場合、実行ユーザー用の接続を作成するか、フロー内で「実行ユーザーとして実行」オプションを適切に設定する必要があります。
| 共有範囲設定 | Power Automateへの影響 | 対処方法 |
|---|---|---|
| サイトメンバーのみアクセス可能 | 実行アカウントがサイトメンバーでないとエラー | アカウントをサイトメンバーグループに追加する |
| 組織内のユーザーのみ(外部共有無効) | 外部ユーザーやサービスプリンシパルがアクセス不可 | 外部共有を有効にするか、サービスプリンシパルを追加 |
| 匿名共有リンクが有効 | 匿名ユーザーの更新は許可されないためエラー | 匿名リンクでは更新不可。認証ユーザーで接続 |
| フローの接続が作成者専用 | 共有されたフローを別ユーザーが実行できない | 実行ユーザー用の接続を作成するか、フローを委任 |
3. ロール設定(アクセス許可)の確認手順
権限エラーの原因を特定するために、以下の手順で実行アカウントのロール設定を確認します。この作業はSharePoint管理者の権限が必要な場合があります。管理者でない場合は、該当する操作を管理者に依頼してください。
- ブラウザで対象のSharePointサイトにアクセスし、右上の歯車アイコンから「サイト設定」をクリックします。
- 「サイトのアクセス許可」をクリックし、現在の権限設定を確認します。「アクセス許可の継承」が有効になっている場合は、親サイトの権限も確認する必要があります。
- 「詳細なアクセス許可の設定」をクリックし、フロー実行アカウント(ユーザーまたはセキュリティグループ)が一覧に表示されているか確認します。表示されていない場合は「アクセス許可の付与」からアカウントを追加します。
- アカウントが表示されている場合は、その権限レベルを確認します。複数項目更新には「編集」以上の権限が必要です。「読み取り」のみの場合は権限不足です。
- リストレベルでの権限設定も確認します。リストに特殊な権限が設定されている場合(例:特定のグループのみアクセス可能)、そのグループに実行アカウントが含まれているか確認します。
- Power Automateフローの「編集」画面で、使用しているSharePoint接続のアカウントを確認します。接続が「自分(フロー作成者)」になっている場合、実行ユーザーが異なれば権限エラーになる可能性があります。
4. 失敗パターンと対処法
実際に遭遇しやすい失敗パターンをいくつか紹介します。同様のケースに当てはまる場合は、該当する対処法を試してください。
4.1 パターンA: フロー作成者と実行ユーザーが異なる
フロー作成者(管理者)が自分のアカウントでSharePoint接続を作成し、そのフローを一般ユーザーと共有した場合、一般ユーザーがフローを実行しようとすると権限エラーが発生します。これは、作成者のアカウントで接続が確立されているため、実行ユーザーはその接続を利用できないからです。対処法としては、フロー内のSharePointアクションで「実行ユーザーとして」オプションを有効にするか、各実行ユーザーに個別の接続を作成させる必要があります。ただし、「実行ユーザーとして」オプションは一部のアクションでしかサポートされていないため、事前に確認してください。
4.2 パターンB: サービスプリンシパルを使用している場合の権限不足
Azure ADに登録したアプリケーション(サービスプリンシパル)をPower Automateの接続として使用している場合、そのサービスプリンシパルにSharePointサイトのアクセス許可が付与されていないとエラーになります。サービスプリンシパルはサイトのメンバーとして直接追加する必要があります(SharePoint管理センターまたはサイト設定から)。また、Azure AD上で「Sites.ReadWrite.All」などのAPIアクセス許可がアプリに付与されていることも確認してください。APIアクセス許可の追加はテナント全体に影響するため、必ずグローバル管理者の承認を得てから行います。
4.3 パターンC: 一覧権限が不足している
複数項目更新アクションでは、リストの一覧権限(すべてのアイテムを読み取る権限)が必要です。実行アカウントが「編集」権限を持っていても、リストの詳細設定で「すべてのアイテムの読み取り」が制限されている場合(例えば、アイテムレベルの権限が設定されている場合)エラーになります。この場合は、リストの詳細設定から「アイテムレベルの権限」を「すべてのアイテムを読み取る」に変更するか、実行アカウントを適切なグループに追加します。
5. 管理者へ確認すべき設定項目
権限エラーを解決するために、SharePoint管理者やAzure AD管理者に確認が必要な設定項目をまとめました。以下の情報を伝えることで、迅速な対応が期待できます。
- SharePoint管理センター: サイトの共有範囲設定(外部共有の有効/無効、許可されるリンクの種類)を確認してもらいます。また、サイトのアクセス許可で、フロー実行アカウントがサイトメンバーとして追加されているか確認します。
- Azure AD: フローで使用しているアプリ登録(サービスプリンシパル)がある場合、そのアプリに付与されているMicrosoft Graph APIまたはSharePoint APIのアクセス許可を確認します。特に「Sites.ReadWrite.All」が必要です。
- Power Automate管理センター: DLP(データ損失防止)ポリシーによって、特定のコネクタの使用が制限されている場合があります。SharePointコネクタが制限されていないか確認します。
- 監査ログ: 権限エラーが発生した時刻の監査ログを確認することで、どのアカウントがどのリソースにアクセスしようとして失敗したかを特定できます。管理者に依頼してログを取得してもらってください。
6. よくある質問(FAQ)
ここでは、よく寄せられる質問とその回答をまとめます。参考にしてください。
Q1: リストアイテムを1件ずつ更新するフローは成功するのに、複数件まとめて更新すると権限エラーになります。なぜですか?
単一項目更新(例:「項目の更新」アクション)は、特定のアイテムIDに対して直接書き込みを行うため、必要な権限はそのアイテムに対する編集権限だけです。一方、「複数の項目を更新」アクションは、リスト全体をクエリして条件に合うアイテムを検索し、それらを更新します。この検索処理には「すべてのアイテムを読み取る」権限が必要です。そのため、読み取り権限が不足している場合にエラーが発生します。対処法として、実行アカウントにリストの「読み取り」権限(できれば「編集」権限)を追加してください。
Q2: フローを実行するたびに権限エラーが発生します。フロー作成者は問題なく実行できます。どうすればいいですか?
このケースは、フロー作成者と実行ユーザーが異なるためです。フロー内のSharePoint接続が作成者のアカウントで固定されている可能性があります。Power Automateでフローを開き、該当のSharePointアクションの「接続」を確認してください。もし「自分(作成者)」になっていれば、実行ユーザーがその接続を使えません。対処法として、アクションのプロパティで「実行ユーザーとして接続する」オプション(利用可能な場合)を有効にするか、フローを各ユーザーにコピーしてそれぞれの接続を設定してもらうことが考えられます。また、フローを共有する際に、実行ユーザーにもSharePointサイトの適切な権限が付与されていることを確認してください。
Q3: 管理者に確認したいのですが、具体的に何を伝えればいいですか?
管理者に依頼するときは、以下の情報を伝えるとスムーズです。
– フロー名と実行ユーザーのアカウント(例:user@company.com)
– エラーの完全なメッセージ(スクリーンショットがあるとベスト)
– エラーが発生したSharePointサイトのURL
– フローで使用しているコネクタの種類(SharePoint、Azure ADなど)
– 実行ユーザーがサイトのメンバーかどうか、権限レベルは何か(自分で確認できれば)
これらの情報をもとに、管理者はAzure ADのAPIアクセス許可やSharePoint管理センターの設定を確認できます。
Q4: サービスプリンシパルで動作させたいですが、権限エラーが続いています。どこを確認すればいいですか?
まず、サービスプリンシパル(アプリ登録)にAzure AD上で「Sites.ReadWrite.All」のAPIアクセス許可が付与されているか確認してください。ただし、これだけではSharePointサイトの個別の権限設定が不足しているため、サービスプリンシパルをサイトのメンバーとして追加する必要があります。SharePoint管理センターまたはサイト設定から「アクセス許可の付与」を選択し、サービスプリンシパルの名前(アプリの表示名)を検索して追加します。このとき、権限レベルは「編集」以上を割り当ててください。また、サービスプリンシパルを使用する場合、Azure ADの「管理者の同意」が必要な場合もあります。その点も管理者に確認してください。
まとめ
Power AutomateでSharePointの複数項目更新を行う際の権限エラーは、実行アカウントの権限不足、共有範囲の制限、またはAzure ADアプリのアクセス許可不足が主な原因です。まずはフロー実行ユーザーがSharePointリストに対して「編集」権限を持っているか確認し、サイトの共有範囲設定をチェックしてください。それでも解決しない場合は、フロー内の接続設定や、サービスプリンシパルを使用している場合はAPIアクセス許可とサイトメンバー追加を確認します。これらの切り分けを迅速に行うためには、SharePoint管理者やAzure AD管理者と連携することが重要です。本記事の手順を参考に、原因を特定し適切な設定変更を行ってください。
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
