UiPath Orchestrator認証方式まとめ

# はじめに
- 本記事ではUiPath Orchestratorのユーザー認証方式についてどのようなオプションがあるかについて概要を説明します。
    - 対象はオンプレミスOrchestrator v2022.10およびAutomation Cloudとしております。
    - ここで言うOrchestratorユーザーとは、Orchestrator管理者とUiPath Studio/Robotの利用ユーザーの両方を想定しています。
    - 各認証方式の詳細な設定方法はWebガイドへのリンクを記載していますのでそちらをご参照ください。

# 基本認証における課題
- オンプレミスOrchestratorの既定では基本認証として下記情報を入力してログインを行います。
	- 組織名またはテナント名
	- ユーザー名またはメールアドレス
	- パスワード
- この認証方式には次の課題があります。
	- 知識認証(What you know)のみに依存するためパスワード漏洩によるセキュリティリスクが高い。
	- Orchestrator独自でパスワードの管理を厳格に行う必要があるため運用コストがかかる。
- Orchestrator単体では所有物認証(What you have)や生体認証(What you are)を組み合わせた多要素認証を実装することができませんが、**Azure AD認証やSAML認証など外部認証を利用し、連携するIDプロバイダーの認証オプションによって多要素認証を実現できます。**

# オンプレミスOrchestratorにおける認証方式
|認証方式|特徴|リンク|
|:-----:|:--|:----|
|基本認証|・既定で有効化、外部認証と併用可能<br>・外部認証を有効化した後、基本認証を無効化することも可能|[基本認証を許可または制限する](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/configuring-authentication-and-security#configuring-identity-providers-allowing-or-restricting-basic-authentication)|
|AD認証|・Orchestrator Webサーバーが所属するADドメインと連携可能<br>・ADにてパスワードを管理し、Orchestratorログイン時にWindows認証を行う<br>・ADユーザー・グループをOrchestratorユーザー・グループとして利用可能|[Active Directory との連携を構成する](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/configuring-the-active-directory-integration)|
|Azure AD認証<br>(Enterprise SSO)|・Azure ADにてパスワード管理と認証を行う<br>・Azure ADの認証設定によって多要素認証も可能<br>・Azure ADユーザー・グループをOrchestratorユーザー・グループとして利用可能|[Azure AD 連携を設定する](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/azure-ad-integration)|
|Azure AD認証<br>(SSOのみ)|・Azure ADにてパスワード管理と認証を行う<br>・Azure ADの認証設定によって多要素認証も可能<br>・Orchestratorユーザーを作成し、メールアドレスなどでAzure ADユーザーとマッピング|[SSO を構成する: Azure Active Directory](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/configuring-sso-azure-ad)|
|Google SSO|・Googleにてパスワード管理と認証を行う<br>・Googleの認証設定によって多要素認証も可能<br>・Orchestratorユーザーを作成し、メールアドレスなどでGoogleユーザーとマッピング|[SSO を構成: Google](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/configuring-sso-google)|
|SAML認証<br>(ADFS,Okta,PingOneなど)|・SAML認証に対応したIDプロバイダーにてパスワード管理と認証を行う<br>・IDプロバイダーの認証設定によって多要素認証も可能<br>・Orchestratorユーザーを作成し、メールアドレスなどでIDプロバイダーのユーザーとマッピング|[SSO を構成: SAML 2.0](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/configuring-sso-saml-20)|

- AD認証ではユーザー・パスワードをドメインコントローラー側で一元管理できます。
- Azure AD認証は「Enterprise SSO」と「SSOのみ」の2通りがあります。
	- 「Enterprise SSO」はユーザー管理と認証の両方をAzure AD側で行い、Orchestratorではディレクトリユーザーとして利用可能です。つまりOrchestrator本体でユーザーを作成するのではなくAzure AD側で作成したユーザーを利用するため、人事異動などによるユーザーの変更はAzure ADにて一元的に行うことができます。またパスワード管理と認証もAzure AD側で行われ、多要素認証を設定することも可能です。
	- 一方「SSOのみ」は、ユーザー管理はOrchestratorで行い、パスワード管理と認証をAzure AD側で行います。このためユーザーはAzure AD側でも管理する必要があり、Orchestratorローカルユーザーとのマッピングはメールアドレスで1対1に紐づけします。

# Automation Cloudにおける認証方式
|認証方式|特徴|リンク|
|:-----:|:--|:----|
|招待ベース|・Google, Microsoft, LinkedInアカウントまたはメールアドレスで認証|[招待ベースのモデル](https://docs.uipath.com/ja/automation-cloud/automation-cloud/latest/admin-guide/authentication-options#models-that-use-local-accounts-invitation-based-model)|
|Azure AD認証<br>(Enterprise SSO)|・Azure ADにてパスワード管理と認証を行う<br>・Azure ADの認証設定によって多要素認証も可能<br>・Azure ADユーザー・グループをOrchestratorユーザー・グループとして利用可能|[Azure AD 連携を設定する](https://docs.uipath.com/ja/automation-cloud/automation-cloud/latest/admin-guide/azure-ad-integration)|
|SAML認証<br>(ADFS,Okta,PingOneなど)|・SAML認証に対応したIDプロバイダーにてパスワード管理と認証を行う<br>・IDプロバイダーの認証設定によって多要素認証も可能<br>・Orchestratorユーザーを作成し、メールアドレスなどでIDプロバイダーのユーザーとマッピング|[SAML 連携を設定する](https://docs.uipath.com/ja/automation-cloud/automation-cloud/latest/admin-guide/configuring-the-saml-integration)|

- Azure AD認証(Enterprise SSO)やSAML認証はオンプレミスでの記述の通りです。
- Automation CloudではAD認証を行うことができません。オンプレミスADと連携したい場合には、Microsoftが提供している[Azure AD Connect](https://learn.microsoft.com/ja-jp/azure/active-directory/hybrid/whatis-azure-ad-connect)を利用してオンプレミスADとAzure ADを連携させます。つまりオンプレミスAD⇔Azure AD⇔Automation Cloudという形でAzure ADを経由して間接的にオンプレミスADと連携することができます。

# 外部認証利用時の考慮事項
個別に考慮が必要となる事項について纏めています。

## 1. ファイアウォール設定
- 外部認証を行う場合には、次のトラフィックが発生します。
	- Orchestratorのクライアント(ブラウザー/Studio/Robot) → 認証サーバー(Azure ADやOktaなどの認証エンドポイント)
	- Orchestrator/Automation Cloud → 認証サーバー
- つまり認証サーバー → Orchestratorへの通信は発生しないため、オンプレミスOrchestratorでも大がかりなファイアウォール設定やネットワーク構成の変更は不要となります。

## 2. 対話型サインインの利用
- Studio/Attended Robotでは、Orchestrator接続においてマシンキー・クライアント資格情報に加えて対話型サインインを利用することもできます。対話型サインインではマシンキー作成やユーザー設定における「ドメイン\ユーザー名」指定は不要となり、管理・運用を簡略化することができます。
- ユーザー側では初回利用時にはUiPath StudioまたはAssistantにて[サインイン]をクリックすることにより、既定のブラウザーが起動しOrchestratorへのログインを行います。この際、外部認証が有効化されていた場合には自動的にIDプロバイダーの認証画面にリダイレクトされます。

※ Oktaと連携したときのログイン画面
![Okta連携.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d53a0149-019d-6b64-a760-b6128eeab2a4.png)
- ログイン成功後にはバックグラウンドで取得したアクセストークンがStudio/Assistantに自動的に渡されるため、ユーザーはシームレスにUiPath製品を利用することができます。

## 3. 基本認証の無効化(オンプレミスOrchestratorの場合)
- 外部認証を有効化した場合でもそのままでは基本認証も継続して利用できるようになっています。よってセキュリティを高めるために明示的に基本認証を無効化することが推奨されます。
	- 基本認証を無効化するには管理ポータルに管理者でアクセスし、セキュリティ設定にて [この組織の基本認証を無効化] のトグルをオンにします。詳細は [基本認証を許可または制限する](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/configuring-authentication-and-security#configuring-identity-providers-allowing-or-restricting-basic-authentication) を参照してください。
![基本認証無効化.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/a796e227-7dc3-3e36-dcb4-430a52f0369e.jpeg)
	- ただし特定の管理ユーザーのみ基本認証を有効化したい場合があります。その時は管理ポータルのアカウント設定にて対象の管理ユーザーの設定にて [このユーザーに基本認証を常に許可] トグルをオンします。詳細は [アカウントとグループを管理する](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/managing-users) を参照してください。

## 4. グループによる権限割り当て
- AD認証またはAzure AD認証(Enterprise SSO)を利用した場合、ディレクトリグループを使用することもできます。Orchestrator管理画面へアクセスするユーザーおよびStudio/Attended Robotの利用ユーザーはADまたはAzure ADのグループを使用してロールおよびフォルダーへの割り当てを行うことができます。
- Unattended Robotユーザーはグループによる権限割り当てができないため、個別のディレクトリユーザーにて設定を行います。またログインパスワードも従来通りOrchestrator側にて設定が必要となります。

# おわりに
- このように外部認証を利用することによって、Orchestratorによるユーザー・パスワード管理の運用コストを軽減しつつ、企業のセキュリティポリシーに準拠したSSOを実現し、セキュリティを高めることができます。