Slide 1

Slide 1 text

木野 雅富 @masatomix Orchestratorに OAuthがやってきた 2022年版

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

3 #UiPathFriends #UiFes @masatomix 自己紹介 名前 木野 雅富 (きの まさとみ) 会社名 株式会社 プライム・ブレインズ ロール システムアーキテクト Twitter https://twitter.com/masatomix Qiita https://qiita.com/masatomix note https://note.com/masatomix UiPathとの関わり /属性 • 2017/04 くらいに UiPath Studioより先に Orchestrator にであう。 • ユーザヒアリングに基づいて、ユーザのリリース統制にあわせたOrchestrator の運用設計、設定、導入などを行っています。 • UiPath Japan MVP 2019,2020,2021,2022 趣味 • ボルダリング • ホットヨガ • 魚をさばくこと

Slide 4

Slide 4 text

4 #UiPathFriends #UiFes @masatomix • 相手先のアプリケーションを利用するために 必要な、アクセストークンをもらう仕組み。 図は UiPath Integration Service が相手先(Google)のア クセストークンをもらおうとしている図 ユーザが認可してトークンを取得できると、そのトークン を使ってGoogleのカレンダー情報を取得したり、メール を取得したりできます。 OAuthとは → UiPath(Integration Service)が、 Gmailなどにアクセスできるようになる

Slide 5

Slide 5 text

5 #UiPathFriends #UiFes @masatomix • UiPath Orchestrator(以下OC)自体も、OC2021.10あたりから OAuthに対応しました (OCがアクセストークンを発行できるようになった) (図は昨年のテックざんまいの図) Orchestrator自体もOAuthに対応している OCが発行してくれたトークンを使って ジョブを実行したり、スケジュール一 覧を取得できる

Slide 6

Slide 6 text

6 #UiPathFriends #UiFes @masatomix • ARの対話型サインイン 何気なく押しているこのボタン、OAuthの トークンを取得するボタンです。 OCにサインインする際、アクセストーク ンを発行してもらっています。 (Authorization Code GrantなOAuth といいます) 蛇足: ARログインもOAuthになった

Slide 7

Slide 7 text

7 #UiPathFriends #UiFes @masatomix • OC2022.4以降、マシンキー廃止 後のURの接続 接続ボタンを押した際、クライア ントID/クライアントシークレット を用いて、アクセストークンを発 行してもらっています。 (Client CredentialsなOAuthといいます) 蛇足: URログインもOAuthになった

Slide 8

Slide 8 text

8 #UiPathFriends #UiFes @masatomix • ユーザID/パスワードを他システムに渡さなくてOK! • スコープによる、権限の制御が可能 (どちらも昨年話したので割愛) • OAuth対応のサービスから呼び出せる OAuthの利点

Slide 9

Slide 9 text

9 #UiPathFriends #UiFes @masatomix • UiPath Integration Service 「Google のカレンダーが更新された」とき 「OCジョブを起動する」など、OAuth対応アプ リを活用できるサービスです OAuth対応のサービスから呼び出せる 具体例 これらだいたいOAuth対応アプリ

Slide 10

Slide 10 text

10 #UiPathFriends #UiFes @masatomix • Power Automate こちらも 「OneDriveのファイルが更新された」とき 「Teamsに投稿する」 などOAuth対応アプリ(コネクタといいます)を活用で きるサービスです OAuth対応アプリがコネクタとして登録 されていれば 「○○した」とき「△△する」 ができる OAuth対応のサービスから呼び出せる 具体例 これらだいたいOAuth対応アプリ

Slide 11

Slide 11 text

11 #UiPathFriends #UiFes @masatomix • コネクタ(OAuth対応アプリ)があれば「○○した」と き「△△する」ができる • UiPathコネクタがあれば Power Automateで 「OCのジョブが完了」したら 「Teamsに投稿する」 とかができそう → なければ作ればいい 利点: OAuth対応のサービスから呼び出せる 今回のメインテーマ

Slide 12

Slide 12 text

12 #UiPathFriends #UiFes @masatomix • 「OCのイベントが発生したら」という トリガー をもったコネクタを作ってみた UiPath カスタムコネクタをつくる 「OCのイベントが発生したら」 「Teamsに投稿する」というフローを作れる

Slide 13

Slide 13 text

13 #UiPathFriends #UiFes @masatomix • Power Automate でフロー保存時: • 「OCのイベントが発生したら」トリ ガーをフローに配置して保存 • OCのWebhookが勝手に登録される (Power Automateのサーバへ通知してねと いうWebhook) カスタムコネクタ(トリガー)ってこう動く • OC上でジョブが実行されると: • 上記のWebhookが動き出してPower Automateサーバへ通知 • Power Automate のフローが動き出す フロー保存時 Webhookに登録 ジョブ実行など イベント発生時 Webhookで通知

Slide 14

Slide 14 text

14 #UiPathFriends #UiFes @masatomix カスタムコネクタ(トリガー)の仕組み Power Automate でフロー保存時 フロー保存時 OCのWebhookが勝手に登録される (Power Automateサーバへ通知してね、という Webhook) ↑通知先はPower Automateのサーバ OCのWebhook一覧画面 Power Automateの 開発画面

Slide 15

Slide 15 text

15 #UiPathFriends #UiFes @masatomix カスタムコネクタ(トリガー)の仕組み OC上でジョブが実行されると フローが動いて、 Teamsに通知 ジョブが実行されると、先程のwebhook が動いてPower Automateサーバへ通知 ジョブの実行をトリガーに、 Teamsに通知することができました OCのジョブ画面 Webhookの通知 を受けるサーバ

Slide 16

Slide 16 text

16 #UiPathFriends #UiFes @masatomix UiPathやOCがOAuth対応アプリになったので、Power Automate上のコネクタとしてUiPathを簡単に登録できました。 OAuthの利点 OAuth対応のサービスから呼び出せる OAuth対応アプリなので、 • アクセストークンをどうやってAPIに渡すか • OCのURLやOCへのログイン情報を指定するUI などの開発は不要でした! (今回Swagger定義のみでノーコードです)

Slide 17

Slide 17 text

17 #UiPathFriends #UiFes @masatomix OCのバージョンが上がるにつれ、認証・認可が AR: 対話型サインイン(Authorization Code GrantなOAuth) UR: ClientID/Secretによる接続(Client Credentials なOAuth) API: 上記どちらかのOAuth(通常はARの方式とおなじ) とOAuthに集約されています。 またUiPath Orchestrator製品群がOAuth対応アプリとなったことで、 Power Automateなど他社サービスとの連携も容易になりました! 興味を持たれた方は、ぜひいろいろと触ってみてはいかがでしょうか! まとめ

Slide 18

Slide 18 text

18 #UiPathFriends #UiFes @masatomix • The OAuth 2.0 Authorization Framework : OAuthの仕様書(RFC6749) https://datatracker.ietf.org/doc/html/rfc6749 • 外部アプリケーション機能(OAuth)によるOrchestrator APIコール実装方法: 公式のよくまとまった記事。 https://bit.ly/2ZB83MD • [UiPath]外部アプリケーション機能(OAuth)によるOrchestrator APIコール実装方法(TypeScript版) https://qiita.com/masatomix/items/67247e1fcc7049cefcc0 • 外部アプリケーション機能(OAuth)によるOrchestrator APIコール実装方法: 公式のよくまとまった記事。 https://bit.ly/2ZB83MD • Qiitaで情報発信やってます! https://qiita.com/masatomix 参考文献 ご静聴ありがと うございました OCのコネクタのSwagger定義が 欲しい方、遠慮なくDMください @masatomix