Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OrchestratorにOAuthがやってきた

 OrchestratorにOAuthがやってきた

Orchestrator APIの独自の認証方式が、OAuthに統一され、いずれ既存の方式は廃止となります(クラウドは、2021.10から非推奨、オンプレは2021.4ですでに非推奨に)。

この資料では、OAuthを適用したばあいの、Orchestrator APIの認証の処理シーケンスを解説しようと思います。

Masatomi KINO

October 31, 2021
Tweet

More Decks by Masatomi KINO

Other Decks in Programming

Transcript

  1. 3 #UiPathFriends #UiFes @masatomix ⾃⼰紹介 名前 ⽊野 雅富 (きの まさとみ)

    会社名 株式会社 プライム・ブレインズ ロール システムアーキテクト Twitter https://twitter.com/masatomix Qiita https://qiita.com/masatomix UiPathとの関わり /属性 • 2017/04 くらいに UiPath Studioより先に Orchestrator にであう。 • UiPath Orchestratorの構築、ユーザへのヒアリングに基づくユーザのリリース 統制にあわせたOrchestratorの運⽤設計、設定、導⼊。 • UiPath Japan MVP 2019,2020,2021 趣味 • ボルダリング • ホットヨガ
  2. 4 #UiPathFriends #UiFes 従来のAPIの認証機構が⾮推奨になり、 OAuthが標準となる UiPath公式の記事より引⽤ Automation Cloud クライアントID、ユーザーキーを使⽤して エンドポイント

    https://account.uipath.com/oauth/token をコールして認証します。 ※ 2021年10⽉にDeprecated(⾮推奨)となる予定です。 オンプレミス版 Orchestrator ローカルユーザーのUsernameとPasswordを使⽤して /api/account/authenticate をコールして認証します。 ※ v2021.4以降でDeprecated(⾮推奨)となっています。 出所: https://www.uipath.com/ja/resources/knowledge-base/implementing-orchestrator-api-with-oauth 廃⽌になる前に、OAuthってどん なものかを知っておきましょう。
  3. 5 #UiPathFriends #UiFes UiPath公式の記事より引⽤ OAuthとは「リソース所有者 の許可を得て、 認可サーバー が ク ライアントアプリケーション

    に アクセストークン を付与し、 保 護対象リソース に適切にアクセスするための標準的な⼿順を定め たもの」 OAuthとは オーオース︖ 認可サーバ︖ アクセストークン︖ 保護対象︖ ︖︖︖︖︖︖︖︖ よくわからないので、OAuth以前のOrchestrator APIの仕組み と照らし合わせてみましょう (以下OCと呼称) https://www.uipath.com/ja/resources/knowledge-base/implementing-orchestrator-api-with-oauth
  4. 6 #UiPathFriends #UiFes OAuth登場以前の Orchestrator API 認証仕様 0. ユーザはAPIを使うWEBアプリに、ユーザID/パスワードを 渡しておく(DBに保存される)。

    1. WEBアプリは、それをつかって「トークン」を取得する。 2. WEBアプリは、トークンを使ってAPIを呼び出す。 (APIは、データを取得するだけでなく ジョブを実⾏するとか、動作をともなうAPIもある) WEBアプリは「⾃前スケジューラ」 などを想定。 ⾃前スケジューラからOCのジョブ起 動をするときにAPIを利⽤する 処理シーケンス:
  5. 8 #UiPathFriends #UiFes OAuthの処理シーケンス 2. ユーザは認可したことをWEBアプリにつたえる。 3. WEBアプリがトークンを要求。認可サーバがト ークンを返却。 4.

    WEBアプリはトークンを使ってAPIを呼び出す。 5. APIは認可サーバにトークンの正当性をチェック してもらい、処理を継続する 0.「OCと連携する」的なボタンの押下 1. OCに画⾯遷移してユーザID/パスワー ドの⼊⼒を求められる (本⼈がトークン発⾏の認可をしてい るということ。また、認可サーバからは「認 可コード」という⽂字列が返却される)
  6. 9 #UiPathFriends #UiFes OAuthのなかでも ⼀般的な、 「Authorization Code Grant Flow」の説明です 重要なポイント

    重要なのは、ユーザID/パスワ ードをWEBアプリに⼊⼒する のではなく、認可サーバに⼊⼒ しているところ → ユーザはWEBアプリに、 ユーザID/パスワードを教え る必要がない
  7. 10 #UiPathFriends #UiFes ⽤語の整理 OAuth用語 図中用語 リソース所有者 ユーザxx 認可サーバ トークンを発行するサーバ

    (UiPathの場合はOCに同居し てる) クライアントアプリケーション WEBアプリ等 アクセストークン トークン 保護対象リソース OCがもっている情報
  8. 11 #UiPathFriends #UiFes UiPath公式の記事より引⽤ OAuthとは「リソース所有者 の許可を得て、 認可サーバー が クライアントアプリケーシ ョン

    に アクセストークン を付与し、 保護対象リソース に適切にアクセスするための標 準的な⼿順を定めたもの」 あらためてOAuthとは …なるほど。 出所: https://www.uipath.com/ja/resources/knowledge-base/implementing-orchestrator-api-with-oauth OAuth。 認可サーバ。 アクセストークン。 保護対象リソース。 読める、読めるぞぉ
  9. 15 #UiPathFriends #UiFes OpenID Connect対応も期待 OpenID ConnectというOAuthの拡張仕様に対応することで、認証にも使⽤できる可能性 クラウドのOCなども「Googleでログイン」とかできるアレです これはGoogleアカウントが「OAuth/OpenID Connect対応」してるって話、今回のはなしと

    は逆ですが。 Orchestrator が普及して、OCを 拡張するWebサービスあるけど いちいちサインアップめんどくさ いな、、お「OCアカウントでロ グイン」ってあるじゃん、みたい な世界が.. テナントごとにClientID発⾏する今のクラウドOCの仕組みだとできないかもなぁブツブツ
  10. 21 #UiPathFriends #UiFes • 認証後の認可画⾯(このWEBアプリに権限委譲していい︖ってい う画⾯)が出ないのですが、OK︖ • refresh_token※は常に返してほしいな(scopeにoffline_access を指定すると返ってくるけど) ※アクセストークンは3600秒で有効期限が切れるので、再取得にこのrefresh_tokenを⽤いる

    • OpenID Connect対応は⾏われる︖OC2021.4だと、クライア ント管理画⾯でopenidを指定できない。(むりやりSQLサーバのDB に直接にデータを⼊れたらid_tokenは返ってきたけど2021.10とかはどーか な︖︖) 未調査、きになるところ 中のスゴイヒト おしえて
  11. 23 #UiPathFriends #UiFes • The OAuth 2.0 Authorization Framework :

    OAuthの仕様書(RFC6749) https://datatracker.ietf.org/doc/html/rfc6749 • 外部アプリケーション機能(OAuth)によるOrchestrator APIコール実装⽅法: 公式のよくまとまった記事。 https://bit.ly/2ZB83MD • 外部アプリケーションを管理する: (おもにWEB)アプリの登録⽅法 https://docs.uipath.com/orchestrator/lang-ja/docs/managing-external-applications • 外部アプリに OAuth を使⽤する: アプリからAPIの呼び出し⽅法が記載されている https://docs.uipath.com/orchestrator/lang-ja/reference/using-oauth-for-external-apps • APIとスコープ対応表 https://docs.uipath.com/orchestrator/lang-ja/reference/permissions-per-endpoint 参考⽂献 ご静聴ありがと うございました