はじめに
Workato の OPA (On-Prem agent) を導入することで、クラウドサービスだけでなく、社内の API、データベース、ファイルシステムなどのオンプレミスシステムともシームレスにデータ連携が可能になります。
OPA がインストールされた、ローカルのファイルシステムについては、当然アクセスできます。「\\<サーバ名>\<共有フォルダ名>」の形式で表されるネットワークフォルダーを UNC (Universal Naming Convention) パスと呼びますが、この形式で指定されたネットワークフォルダーについてもアクセスすることができるのでしょうか?
OPA には、Linux 版などもありますが、本記事では Windows 版の OPA かつ、サービスとしてインストールした場合に対象を限定いたします。
UNC パスのネットワークフォルダーもアクセス可能
結論からすると、ネットワークフォルダーもアクセス可能です。ただし、デフォルトの設定でインストールを行った場合は、匿名アクセス可能なネットワークフォルダーのみがアクセス可能となります。
認証が必要なフォルダにアクセスする場合は注意が必要
規定のインストールのままでは、認証が必要なネットワークフォルダーにアクセスできない
「On-prem file」コネクターを用いて、認証が必要なネットワークフォルダーを指定し、コネクションを作成すると、「not found」エラーが表示されます。
そして、コネクションの作成画面でも、ユーザー名とパスワードを明示的に指定することはできません。(2024年6月現在)
なぜ認証が必要なネットワークフォルダーにアクセスできないのか?
それは、OPA プロセスの実行ユーザー、すなわちサービスの実行アカウントの設定に関係しています。「サービス」の管理コンソール(services.msc)を開き、OPAのサービスのプロパティを表示します。
[ログオン] タブを見ると、現在のサービスの実行ユーザーが「Local Service」であることが確認できます。
この「Local Service」アカウントは、匿名の資格情報でしかネットワークリソースにアクセスできません。そのため、OPA をこのアカウントで実行していることが原因で、匿名アクセスできるネットワークフォルダーにしかアクセスできないのです。
Local Service(ローカル サービス)アカウント とは?
そもそも、「Local Service」とは、Windows OS がサービスを起動するための専用アカウントとして提供しているもので、OS によってインストール時に自動作成されるビルトインアカウントの1つです。
「Local Service」は、Usersグループのメンバと同じ権限しか持たないサービス用アカウントで、ネットワークリソースへのアクセスは、特定アカウントではなく匿名の資格情報に制限されます。そのため、ローカルとネットワークのどちらのリソースに対しても、System のような強力な権限を必要としないサービスで利用されています。
サービスの実行アカウントを変更すれば、認証が必要なネットワークフォルダーにアクセス可能
サービスの実行アカウントは、ビルトインアカウントしか使えないわけではありません。サービス用のアカウントを作成して、変更してあげることで、その実行ユーザーがアクセス可能なネットワークフォルダーにアクセスが可能になります。
個人のアカウントを指定してもよいのですが、OPA 経由で権限が異なる複数のフォルダにアクセスする可能性があるため、OPA 実行用のユーザーを作成し、アクセスするネットワークフォルダーに対して、個別に OPA 実行用ユーザーへのアクセス権を付与することをお勧めします。
また、アカウントを変更した場合、そのユーザーが「サービスとしてログオン」する権限を持っている必要があります。環境によっては、権限を持っていない場合、以下の画面が表示され自動で権限が付与されます。
なお、手動で設定する場合は、「ローカル セキュリティポリシー」の管理コンソール(secpol.msc) を開き、[ローカル ポリシー] - [ユーザー権利の割り当て] から、「サービスとしてログオン] を選び、アカウントに権限を付与してください。
また、指定するユーザーは、ローカルアカウントでもドメインユーザーでも構いません。権限については、もともと Users グループのメンバと同じ権限の「Local Service」アカウントで動いていたため、アカウントが Administrators グループに属性している必要はありません。ただし、一般ユーザーのアカウントを指定する場合は権限に注意が必要です。
管理者権限を持たないユーザーをサービス実行ユーザーにした場合は、ログフォルダのアクセス権に注意
OPA のログフォルダは、インストールフォルダの配下にある log フォルダですが、実体はシステムフォルダ配下の LogFiles\Workato へのシンボリックリンクです。
このフォルダは、システムフォルダのため、Users グループのアカウントでは書き込みができませんが、OPA のインストーラーによって、「Local Service」が書き込みできるよう、明示的にアクセス権が付与されています。
したがって、「Local Service」以外のアカウントで実行する場合、そのアカウントがローカルコンピューターに対して管理者権限を持っていない場合は、明示的に書き込みを許可する必要があります。
まとめ
まとめると、以下のようになります。
- Windows版 OPA で UNC パスのネットワークフォルダーへのアクセスが可能
- 規定のインストールでは、サービスが「Local Service」で実行されており、認証が必要なネットワークフォルダーにアクセスはできない
- 認証が必要なネットワークフォルダーにアクセスするには、Windows サービスの実行アカウントを、「Local Service」からフォルダにアクセスが可能なアカウントへ変更する必要がある
- サービスの実行アカウントを変更した場合は、ログフォルダに書き込み可能なアクセス権を付与する必要がある
おわりに
いかがでしょうか? Windows 版 OPAで、サービス実行アカウントを変更することで、認証が必要なネットワークフォルダーにアクセスが可能になります。
Workato の導入・導入後の活用などでお困りの場合、Workato リセラーにご相談する方法もございます。お困りごとがございましたら、認定リセラーの日立ソリューションズへ是非ご相談ください。
参考リンク
- 株式会社 日立ソリューションズ
- Workato 公式サイト