Power Automateで業務の自動化を進める際、個人のアカウントではなくサービスアカウント(共有アカウント)を使ってフローを実行したいケースは少なくありません。サービスアカウントを利用すると、担当者が変わってもフローが停止しない利点がありますが、ライセンスやコネクタの制限により意図通りに動作しないことがあります。この記事では、サービスアカウントでつまずく原因を具体的に切り分け、制限事項を確認しながら適切に設定する手順を解説します。
【要点】この記事で確認すること
- 最初に見る場所: 使用しているPower Automateのライセンス(無料/有料)と、サービスアカウントの種類(通常ユーザー/サービスプリンシパル)です。
- 切り分けの軸: フローが失敗する原因が「アカウントの権限不足」「ライセンス不足」「コネクタの制約」のいずれなのかを確認します。
- 注意点: サービスアカウントに割り当てるライセンスはNCEライセンスが推奨されます。また、共有メールボックスやテナントレベルの操作には追加の考慮が必要です。
ADVERTISEMENT
目次
サービスアカウントが原因でフローが動かない理由
Power Automateで自動化を実現するには、フローを実行するアカウントに適切なライセンスと権限が付与されている必要があります。サービスアカウントは、本来人間が使うことを想定したライセンス設計とは異なるため、思いがけない制限に遭遇します。
サービスアカウントの種類と特徴
会社のIT環境では、主に以下の3種類のアカウントが使われます。
- 通常のユーザーアカウント(個人用):各従業員に割り当てられる標準的なアカウントです。Power AutomateはOffice 365のライセンスに含まれる無料プランから利用できますが、有料プランが必要な高度な機能(プレミアムコネクタやRPAなど)は別途サブスクリプションが必要です。
- 共有メールボックス/共有アカウント:複数人で利用するメールボックスや、特定の業務用に作成されたアカウントです。多くの場合、ライセンスが割り当てられていないため、Power Automateのフローを実行するには専用のライセンスが必要です。
- サービスプリンシパル(アプリ登録):Azure ADに登録したアプリケーションのIDを使う方法で、Microsoft Graph APIを介してフローを実行します。この方法はライセンス不要ですが、設定が複雑で管理画面の操作が制限される場合があります。
現場で起こるつまずきの多くは、「共有メールボックスにライセンスを付けずにフローを作成した」「サービスプリンシパルを使っているのにユーザー用のコネクタを指定した」といった設計ミスです。
確認すべき3つの制限事項
サービスアカウントでフローを動かす前に、以下の3つのポイントを確認してください。
ライセンスの制限
Power Automateには無料プラン(Office 365に含まれるもの)と有料プラン(Power Automate per user、per flowなど)があります。サービスアカウントに有料プランを割り当てていない場合、次のような制限があります。
- 1日あたりのフロー実行回数が制限される(無料プランは500回/日程度)。
- プレミアムコネクタ(SQL Server、Salesforce、Adobe Signなど)が利用できない。
- 「所有者」以外のユーザーがフローを実行できない(共有フロー制限)。
サービスアカウントには「Power Automate per user with attended RPA」や「Power Automate per flow」などのライセンスを割り当てる必要があります。特に最近はNCE(New Commerce Experience)ライセンスが標準となっていますので、必ず管理者にご確認ください。
コネクタの制限
コネクタには「標準コネクタ」と「プレミアムコネクタ」があります。サービスアカウントでも利用できるコネクタは、割り当てられたライセンスに依存します。また、コネクタの種類によっては「ユーザーアカウントでのみ動作する」という制限があるものもあります。例えば、Microsoft Teamsのコネクタは、サービスアカウントでサインインしていても、実際のメッセージの送信にはユーザーの代理権限が必要なため、想定通り動かないことがあります。
コネクタの制限を確認するには、Power Automateの画面で目的のコネクタを選択し、「必要な権限」の欄を参照してください。そこに「ユーザーアカウントが必要」などと明記されていれば、サービスアカウントでは利用できません。
承認フローと自動化の制限
サービスアカウントで承認フローを使う場合、承認者が誰なのかが問題になります。承認フローは「開始者がフロー所有者」として扱われるため、サービスアカウントが開始者だと、すべての承認依頼がそのサービスアカウントに送られてしまい、人間が承認できなくなります。回避策としては、フローの開始者を別のユーザーにするか、Teamsのアダプティブカードを利用して別ルートで承認を取る方法があります。
また、スケジュール実行やファイル変更のトリガーは、サービスアカウントでも問題なく動作しますが、トリガー条件が複雑になるとタイムアウトエラーが発生しやすくなります。この場合、フローの分割や並列処理を検討してください。
サービスアカウントでフローを設定する操作手順
以下の手順で、サービスアカウントに適切な権限とライセンスを設定し、フローを作成してください。
- サービスアカウントの作成とライセンス割り当て
Microsoft 365管理センターで新しいユーザー(共有メールボックスではなくユーザーとして)を作成します。このアカウントにPower Automateの有料ライセンス(例:Power Automate per user)を割り当てます。サービスプリンシパルを使う場合は、Azure ADでアプリ登録を行い、必要なAPIアクセス許可を付与します。 - Power Automateへのサインインと環境の選択
作成したサービスアカウントでPower Automate(make.powerautomate.com)にサインインします。適切な環境(Dev/Prod)が選択されていることを確認してください。 - コネクタの接続設定
フローで使うコネクタ(例えば、SharePoint、Outlook、Teams)を追加します。接続を作成する際は、サービスアカウントの資格情報でサインインします。プレミアムコネクタを使用する場合は、割り当てられたライセンスがプレミアムに対応しているか確認してください。 - フローの作成とテスト
目的のトリガーとアクションを設定し、フローを保存します。テスト実行を行い、エラーメッセージがないか確認します。よくあるエラーとして「アクセスが拒否されました」「ライセンスが不足しています」が表示される場合は、権限やライセンスを見直します。 - 共有設定の確認
フローを他のユーザーと共有する場合、「所有者」としてサービスアカウントを追加し、「実行専用」や「編集者」の権限を適切に設定します。サービスアカウントだけが所有者だと、他のユーザーがフローを編集できないので注意してください。 - エラー時の通知設定
サービスアカウントは誰も日常的にログインしないため、フローが失敗した場合の通知先を別のユーザー(管理者など)に設定します。フローの「設定」→「通知」から、障害通知をメールなどで送るように構成してください。
失敗パターンと回避策の比較表
サービスアカウントでよく発生するトラブルとその対策を表にまとめました。
| 失敗パターン | 原因 | 回避策 |
|---|---|---|
| フローが「権限エラー」で停止する | サービスアカウントに必要なライセンス(プレミアムなど)が未割り当て | 管理者に依頼して適切なライセンスを割り当てる。per flowライセンスも検討。 |
| トリガーが動作しない(例:新しいメールが届いたとき) | サービスアカウントのメールボックスが共有メールボックスで、トリガーに対応していない | 専用のユーザーアカウントを作成し、ライセンスを付与してそのメールボックスを使用する。 |
| 承認依頼がサービスアカウント宛に届く | 承認アクションの「割り当て先」がサービスアカウントになっている | 承認アクションの設定で、割り当て先を実際の承認者のメールアドレスに変更する。動的なコンテンツを使う。 |
| コネクタの接続が切れる | サービスアカウントのパスワードが変更された、または認証が期限切れ | パスワードの期限を無期限にするか、定期的にパスワードを更新してコネクタを再接続する。サービスプリンシパルなら証明書認証を使う。 |
| フロー実行回数制限に達する | 無料ライセンスの上限(500回/日)を超えた | 有料ライセンスにアップグレードするか、フローの実行頻度を見直す。 |
管理者に確認すべき情報
サービスアカウントのトラブルを解決するためには、管理者から以下の情報を入手しておくとスムーズです。
- Power Automateのライセンス体系:現在テナントで使用可能なライセンスの種類(per user、per flow、無料)と、Service Account用に割り当て可能なシートの有無。
- 条件付きアクセスポリシー:多要素認証が必要な場合、サービスアカウントに適用されているかどうか。条件付きアクセスでブロックされていると、コネクタが接続できません。
- Azure ADのアプリ登録状況:サービスプリンシパルを使う場合、適切なAPIアクセス許可(Microsoft Graph、Office 365など)が付与されているか。
- データ損失防止(DLP)ポリシー:特定のコネクタがブロックされていないか。DLPポリシーによりサービスアカウントのフローが制限されることがあります。
これらの情報は、Power Automateの管理センター(admin.powerplatform.microsoft.com)から環境レベルで確認できますが、組織のポリシーによっては閲覧権限が制限されています。必要な権限がない場合は、管理者へ問い合わせてください。
よくある質問(FAQ)
Q1. サービスアカウントにはどのライセンスがおすすめですか?
一般的には「Power Automate per user with attended RPA」が最も汎用性が高いです。フロー専用で使うなら「Power Automate per flow」も選択肢です。無料ライセンスは実行回数制限が厳しいため、業務用途には向きません。
Q2. サービスアカウントのパスワードはどう管理すればいいですか?
パスワードの定期的な変更がポリシーで義務付けられている場合は、コネクタの再接続が発生します。可能ならパスワードを無期限に設定するか、サービスプリンシパル+証明書認証に切り替えることで、メンテナンスフリーにできます。
Q3. 共有メールボックスでPower Automateを使えますか?
共有メールボックス自体にはライセンスを割り当てられません。そのため、共有メールボックスを監視するフローを作成するには、ライセンス付きのユーザーアカウントから共有メールボックスにアクセス許可を設定する必要があります。Outlookコネクタで「共有メールボックスのフォルダー」を指定する方法もありますが、制限が多いため、専用アカウントの作成をおすすめします。
Q4. サービスプリンシパルはどのような場合に使いますか?
大量の自動化を実行する場合や、ユーザーに依存しないシステム間連携に適しています。ただし、Power Automateの画面から直接作成できるフローではなく、Azure Logic Appsと組み合わせた高度なシナリオで使われることが多いです。初心者には通常のユーザーアカウントをおすすめします。
まとめ
サービスアカウントでPower Automateを運用する際は、ライセンスの種類とコネクタの制限を事前に確認することが成功の鍵です。アカウントの種類(通常ユーザー、共有メールボックス、サービスプリンシパル)によって利用できる機能が異なるため、目的に合った設計が必要です。また、承認フローや通知設定など、人間の介入が必要な部分はサービスアカウントに向かないケースがあるため、回避策を用意しておきましょう。この記事で紹介した手順と比較表を参考に、安定した自動化環境を構築してください。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
