0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerAutomate:他テナント接続の注意点

0
Posted at

きっかけ

PowerAutomate:メール→Teams通知テンプレフローを応用して、プロジェクト管理ツール(Backlog、Redmine)のチケット登録・更新情報をメール受信してTeams特定チャネルに通知する仕組みを作りました。

■Teams通知サンプル画面

■機能概要(実装内容は非公開で💦)

  • メール受信をトリガーにPowerAutomateフローを発動
  • 定型文メールを要素分解し、URL、送信者、担当者、コメントなどを抽出
  • 抽出情報を成形しTeams特定チャネルに投稿
  • 同一チケットNoの記事はTeamsスレッド表示
  • BacklogチケットメンションはTeams該当チーム所属メンバ検索(Office365グループ)でTeamsメンション設定

この仕組みが社内で好評だったため、あるプロジェクトで他社テナント(2社)に当社メンバがゲスト参加するTeamsに通知する仕組みを実現してほしいと依頼がありました。
※当社は他社ユーザのゲスト参加ができないため、他社Teamsをゲスト利用

■やりたい(やりたかった)こと

  • 自社アカウントでメール受信
  • メール受信トリガーで自社PowerAutomateフローを発動
  • 他社のTeams/Office 365 グループと接続

PowerAutomateの他社テナント接続に苦戦したので、内容をメモします。

結論、2社とも自社PowerAutomateでの他社接続が期待通り動かず、他社側でM365アカウントを準備いただき、他社アカウントで接続含めてPowerAutomateフローを作成してやりたいことを実現しました💦

他社テナントでの接続

フローで他社接続を行うもの(Teams/Office 365 グループ)について、新しい接続を追加します。

新しい接続の追加

メニュー「接続」→上部の「+新しい接続」を選択します。
項目が大量にあるので右上の検索で接続対象を絞り込みます。(ここではTeams)


接続の認証

作成ボタンを押下するとアカウント選択画面が表示されます。
他社接続(ゲストアカウント)するため、「別のアカウントを利用する」を選択し、「サインイン オプション」で「組織へのサインイン」を選択します。
ドメイン名に他社ドメインを入力して「次へ」を押し、自社アカウント(ゲスト)を選択します。
他社側でPowerAutomateからTeams接続OKなら確認画面が表示され、接続NGの場合は「これ以上アクセスできません」となります。
※今回試した他社2社は、1社はOK、1社はNGでした。


接続追加の確認

メニュー「接続」を選択すると、自社・他社の追加接続が表示されます。

一覧表示だとどちらが自社・他社の接続か区別できないので、接続を選択して接続が利用されるフローで見極めてください。


フローでの他社接続反映

他社接続するアクション(Teams/Office 365 グループなど)の三点メニューからマイコネクションを切り替えて他社接続します。

どちらが自社・他社の接続か区別できないので、選択を切り替えて見極めてください💦

動作確認結果

2社のうち、接続設定できた1社について、PowerAutomateフローを仕込みました。
結果、自社でメール受信、自社PowerAutomateフローを実施、他社Teamsへの投稿に成功したのですが、1時間ほど経つとエラーになってました。
原因究明のため、Copilotに質問すると以下回答でした。

<質問>
PowerAutomateのTeamsコネクタで他テナントと接続したフローを作成しました。最初はうまく動いたのですが、時間がたつと接続が他テナントでなく自社に変わってしまってました。何が原因でしょうか?

<copilot回答>
状況からすると 「Teams コネクタの接続(Connection)が“他テナントのコンテキスト”として固定されておらず、トークン更新(リフレッシュ)のタイミングで“ホームテナント(自社)側のセッション”に引っ張られてしまう」 ことが一番ありがちな原因です。
Power Automate の接続は Microsoft Entra ID(旧 Azure AD)の アクセス トークン/更新トークンで維持され、時間経過や条件変更で更新トークンが取り直しになると、その時点でブラウザやサインイン状態がデフォルト(自社テナント)になっていると、結果的に接続が自社側として再確立されることがあります。
 :
Power Automate のアクセストークンは短命(通常1時間程度)で、
更新タイミングで 更新トークンが条件不一致で無効扱いになると即再認証が発生します。
つまり:
 アクセストークン期限(約1時間)
 → 更新トークン使用
 → 条件不一致で更新失敗
 → 自動再認証(=ホームテナントで処理)
 → 接続が自社に変わる
という流れになっている可能性が高いです。

参考:Power Automate で接続が「無効な接続」になる原因

coPilotから対策案をもらいましたが、 『他テナントに “メンバーアカウント” を作成してもらう(最強で唯一安定)』 とのことでした。
※テナント管理者権限でなにがしか設定変更すれば回避できるかもしれませんが、1個人のために余計な設定変更はしたくないとなりそう…

接続ができた1社(1時間で接続が切れる)について、1時間ごとに再接続(平日日勤帯のみ)を行ってましたが、かなりつらかったので、結局他社側でアカウント作成いただきました。
ただ、同社訪問時しか利用できないアカウントだったので、不具合発生しないよう、1時間ごとの再接続の期間にフローを整え、アカウント作成後に移行しました。Teams通知されてるのでそれなりに動いてそうですが、細かいエラーは分からないので、折を見て状況確認しようと思います…

再接続は接続一覧から他社接続してるコネクタを選択し、画面上部メニューの「アカウントを切り替える」から 接続の認証(「アカウントを選択する」以降) を行います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?