プッシュトリガー(手動実行)の場合、フローの詳細画面に[実行のみのユーザー]という設定があります。この設定により動作が変わってきます。
「プッシュトリガー」については、以下にまとめましたので、それなに?という方は以下の記事にまとめてみましたのでご覧ください。
Power Automateのトリガー種別と注意事項について | たなの覚え書き (tana-techlog.net)
フローの共有
「ポーリングトリガー」は、特定の条件で自動的に実行されますが、「プッシュトリガー」の場合、誰かが手動で実行する必要があります。
そのためには、実行してもよいユーザーにフローを共有する必要があります。
それが、「実行のみのユーザー」という設定です。
フローの共有については、以下のDocsに記載がありますので、併せてご確認ください。
クラウド フローを他のユーザーと共有する方法 – Power Automate | Microsoft Docs
実行のみのユーザー
「プッシュトリガー」の場合、下記図のようにフローの詳細画面に「実行のみのユーザー」という枠があります。この[編集]をクリックすることで、フローを実行してもよいユーザーを設定することが可能です。
[実行のみのユーザー]-[編集]をクリックすると「実行専用アクセス許可を管理」という画面が表示されます。
設定の仕方は、通常、ユーザーやグループで設定する方法となりますが、SharePointコネクタを利用している場合は、SharePointの権限で設定することもできます。
実行専用アクセス許可を管理 – ユーザーとグループ
[ユーザーとグループ]タブには、ユーザーを指定することもできますし、Office 365 グループやセキュリティグループを設定することができます。
ここで注意が必要なのは、[ユーザーとグループ]タブで共有すると、共有したユーザーやグループ宛に必ずメールが送信されるということです。
システム側で自動的に送信されるため、送信を止めることができず、記載する内容も変更できません。
メール内の[Get Button]をクリックするとフローを実行することが可能な画面に遷移します。
[フローの実行]をクリックすると起動できます。
ただし、フローによっては、アクセスするサービスに権限がなく、実行エラーになるという場合もありますので、共有するユーザーが利用できる状態にあるのかを確認したうえで共有してください。
実行専用アクセス許可を管理 – SharePoint
SharePointコネクタを利用する場合は、[SharePoint]タブが表示されます。
SharePointの「サイト」と「リスト/ライブラリ」を選択し、[追加]ボタンをクリックすることで、フローを共有できます。
この設定でフローを共有した場合は、メールの送信はされません。
SharePointコネクタでリストやライブラリにアクセスするようなフローの場合は、[SharePoint]タブで設定したほうがよいと思います。
部門異動や退職者などで増減するユーザーがいた場合、SharePointのアクセス権限は見直しを行うと思います。
フローを実行するユーザー=SharePointにアクセスするユーザー という図式が成り立つのであれば、SharePointの権限管理だけすれば、フロー側の権限管理が必要なくなるからです。
使用する接続
「実行専用アクセス許可を管理」では、「使用する接続」という設定があります。
フロー内で利用しているコネクタを誰の接続で動作させるかという設定です。
既定では、「実行専用のユーザーによって提供されました」という値となっています。
この設定の場合は、フローを実行したユーザーの接続で実行されます。
つまり、SharePointのアクセスも、Teamsへのアクセスも実行したユーザーで動きます。
言い換えると、SharePointのリストに閲覧権限しかないユーザーが、リストのアイテムの更新をしようとしても権限がないのでエラーとなります。
Teamsへメッセージを投稿すると、投稿者がフローを実行したユーザーになります。
変更することも可能です。
プルダウンをみると「この接続(メールアドレス)を使用する」という選択肢がでます。
所有者として設定してあるユーザーの接続が選択肢として出てきます。
以下のメッセージが表示されるので[OK]をクリックします。
接続を以下のように変更することができます。
この場合、SharePointコネクタを利用した処理は、すべて「tana@xxxxx.onmicrosoft.com」のユーザーが実行することになります。
補足:ポーリングトリガー(自動実行)の場合
「ポーリングトリガー」の場合、[実行のみのユーザー]の設定はありません。
では、どのユーザーが動作されていることになるのか。
それは、トリガーやアクションの接続がどのユーザーで作成されているかによります。
基本的にフローを作成すると、作成したユーザーの接続を利用することになります。
ですから、最初に作成したユーザーになっていることが多いです。
トリガーやアクションの右側の[…](三点リーダー)をクリックすると、「マイコネクション」という設定があります。ここで設定されている。ユーザーで動作します。
この接続の変更は「プッシュトリガー」でも可能ですが、接続の設定より[実行のみのユーザー]の[使用する接続]の設定のほうが優先されます。
おわりに
どのユーザーで実行しているかを意識するのは重要です。
理由は以下の二点が挙げられます。
一点目は、権限の問題です。
各サービスには様々は権限があると思います。
たとえば、TeamsのメンバーがTeamsにメンバー追加しようとしてもできません。SharePointのリストアイテムに個別の権限を付与できるのは、SharePointにフルコントロール権限を持ったユーザーです。
フローの中で上記のような処理を行えば、権限がないためエラーとなります。
エラーコードが401や403の場合、この問題にぶつかった場合に発生することが多いかと思います。
どのユーザーの権限で動作しているかを把握できていれば、自己解決できますよね。
二点目は、「Power Platform要求数」の問題です。
以下の記事に記載した「Power Platform要求数」はどのユーザーの要求なのかいうことに影響します。
同じユーザーがたくさんのフローを作成し、すべての接続を自分で動作させている。かつ、一日に何回フローが実行されるかといったことを考えてみてもらうと影響あるなしが想像できるかと思います。
※ この点にいては、また別の記事で記載しようかなと思います。
Power Platform 要求数の制限(Power Automateの場合) | たなの覚え書き (tana-techlog.net)
今回の記事でリンクさせていただいた記事は関連性があるので、併せてご覧いただけると幸いです。
補足:ポーリングトリガーとWebhookトリガー
(2022/2/1 追加)
自動実行の種類には、ポーリングトリガーとWebhookがあり、これらの違いについて、「Microsoft Teams 踏み込み活用術」の著者であるOta Hirofumi さんがとても詳しく違いと見分け方を記載してくださっています。
ぜひこちらも読んでください。とても参考になります。
Power Automate のトリガー、ポーリングか Webhook かどっちなの? – idea.toString();
コメント