Automation 360でActive Directory操作を自動化してみる。#1 [オンプレAD版]
やりたいこと
RPAを使って、ADの操作を自動化したいな~。と思い立つことあると思います。
この記事では、
・OUの作成
・ユーザ作成
をノーコードRPAで自動化してみます。
使用した環境情報
RPAは、Automation 360を使用します。
AD操作の部品を使うことができれば、どんなRPAツールでもいいんですが、Automation360は画面操作だけ(ノーコード)で、認証情報の暗号化、ロボット(=RPA)の作成が簡単にできるので選んでいます。
この記事では比較についてあまり書きません。
Automation 360ではCommunity Edition(無償評価版)が提供されていますので、それを利用しています。執筆時点では、v27相当です。
※Community Editionの使い方は割愛します。
Active Directory環境は、仮想環境上に適当に構築したオンプレADサーバを利用しています。
※Azure ADの場合も評価してみたいので、いつか記事書きます。
以下の記事で構築しています。
環境情報の詳細
[Automation 360]
サーバ環境
Community Edition: Build 16603(v.27)
クライアント環境
OS: Windows 11 Pro(Automation 360の要件としては、サポート外です。)
Bot Agent: 21.230.18464
CPU: Ryzen7 5800U 8 Core
MEM: 16 GB
※今回はドメイン参加していない端末で実施しています。
[Active Directory]
ADサーバホスト名: win2k22-ad
ドメイン名: yud-dev.test
機能レベル:Windows Server 2016
(Domain Controller 1台構成)
イメージ図
使用した環境と、この記事で実現したい流れはこんな感じです。
事前準備
ADへ接続する際の、認証情報を暗号化するために、Automation 360のCredential Vaultという機能を使用します。
ロッカーを作成し、作成したロッカーの中に認証に必要な資格情報(ユーザ名/パスワード)を格納することで、勝手に暗号化情報として扱ってくれます。
ロッカーの作成と権限付与
メニューより、資格情報を選択し、ロッカータブへ移動。
その後、[ロッカーを作成します。]をクリックします。
ロッカー名と、説明を適当に入力し、[ロッカーを作成...]をクリックします。
ロッカーが作成されたことを確認して、ロッカーの作成は完了です。
次に、ロッカーに格納された資格情報を使用する権限を付与します。
作成したロッカー名をクリックします。
[コンシューマー]に、[CE_user]ロールを追加します。
[CE_user]の選択方法
[CE_user]に✅をつけ、[→]をクリックすると、選択済みへ移動できます。
資格情報の作成
次はユーザ名、パスワードを含める資格情報を作成します。
[資格情報]タブをクリックし、[資格情報を作成します。]をクリックします。
資格情報の名前と、説明を入力し、格納先のロッカーにて、先ほど作成したロッカーを選択状態にします。
ロッカーの選択方法
格納するロッカーのラジオボタンをクリックし、[→]をクリックすると、選択状態になります。
属性欄にて、ユーザ名とパスワードの2つの属性を作成します。
入力項目は、[標準]を指定して作成します。
ユーザ名: ADサーバへの接続認証にて使用する認証情報です。AD関連の操作権限を持っているアカウントである必要があります。
ADへ接続しますので、[Domain\UserName]の形式で入力します。
※Administratorを指定していますが、必ずしもAdministratorである必要はありません。
パスワード: 上記ユーザ名で指定したユーザのパスワードです。
属性の追加方法
[+]アイコンをクリックすると、属性欄を増やすことができます。
👇
属性を入力したら、ページ最上部の[資格情報作成]をクリックします。
資格情報が作成されたことを確認し、完了です。
これで暗号化して認証情報を使う準備ができました。
Active Directory操作のBot開発
早速Botを作っていきます。
このへんのドキュメントを参考にしています。
各アクションをそれぞれ動作確認して、最後に組み合わせます。
Automation 360では、以下の流れでAD操作を行います。
Botの作成
オートメーションメニューに移動し、Botを作成アイコンをクリックします。
※今回は、[Sample bots]配下に、フォルダ[Active Directory操作]を作成し、そこに格納しています。
Bot名と説明を適当に入力し、[作成と編集]をクリックします。
Bot開発画面が開けば完了です。
ActiveDirectoryへの接続と接続解除
接続に使用するLDAPパスについて、LDAPパスの表現について、意味としては、以下の通りです。
※細かい説明や、表現は省き、一旦なんとなく理解できるような表現にしています。
LDAP://{接続先ADサーバ名または、IPアドレス}/{操作する親パス}
今回の場合は、最上位にOUを作成してその中に、ユーザを作成するため、最上位の親パスを指定しています。
LDAP://win2k22-ad.yud-dev.test/DC=yud-dev, DC=test
このパスで操作する対象は、yud-dev.test配下となります。
1階層下の、OUの中でオブジェクトを作成、編集したい場合、LDAPパスは以下のようになります。
LDAP://win2k22-ad.yud-dev.test/OU=しろくま部門; DC=yud-dev, DC=test
この場合、操作する対象は、OU[しろくま部門]の配下になります。
ということで、ADサーバへの接続アクションを配置していきます。
Active Directoryパッケージの、[接続]アクションを配置し、アクションプロパティを編集します。
※[親パスを構築]ボタンですが、理由は不明ですが動作不安定だったので、自分でLDAPパスを記述しています。
[セッション名]
接続されているセッションを識別するために指定します。
[親パス]
操作対象のLDAPパスを指定します。
[ログインユーザー:]
ADへ接続する際に使用する認証情報のユーザ名です。
Credential Vaultで設定した値を使用します。
[ログインパスワード]
ADへ接続する際に使用する認証情報のパスワードです。
Credential Vaultで設定した値を使用します。
資格情報の指定方法
[資格情報]項目が選択されていることを確認し、[選択]をクリックします。
各項目を選択します。
ロッカー:本手順内で作成したロッカーを選択します。
資格情報:本手順内で作成した資格情報を選択します。
属性:本手順内で作成したユーザ名、またはパスワードを項目に合わせて、指定します。
切断アクションを配置します。
セッション名に、[接続]アクションで指定したセッション名を設定します。
まずは、ここまででADサーバへ、[接続]👉[接続解除]ができるかを確認します。
Botが動き出します。
正常に実行が完了した旨が表示されれば、完了です。
ここまでで、ADサーバへ接続し、操作する準備が整いました。
OUの作成
どんな操作でも同じですが、接続ができてしまえば、あとは簡単です。
次は、OUを作成します。
[接続]と、[接続解除]の間に、[組織ユニットを作成]アクションを配置します。
※組織ユニット=OUです。
今回は、[ぺんぎん部門]というOUを最上位に作成します。
この状態でまたBotを実行してみます。
動きとしてはこんな感じになりました。
[Before]
Botを動かすと、、、
[After]
ぺんぎん部門が作成されています。🐧
OUの作成はこれで完了です。
最後は、一連の流れで確認したいので、作成した[ぺんぎん部門]は削除しておきます。
ユーザの作成
次は作成したOUにユーザを作成したいと思います。
作成したOU配下を操作できるように、作成したOUを指定して再度接続します。
ActiveDirectoryパッケージ内の、[接続]アクションと、[接続解除]アクションを配置します。
親パスで、ぺんぎん部門内のオブジェクトを操作できるように指定しています。
LDAP://win2k22-ad.yud-dev.test/OU=ぺんぎん部門; DC=yud-dev, DC=test
次は、[接続]-[接続解除]アクションの間に、[ユーザを作成]アクションを配置します。
アクションプロパティの値は、AD側で作製するユーザプロパティを入力します。
※画面はイメージで一部です。
もう一度Botを実行してみます。
[Before]
Botを動かすと、、、
[After]
ぺんぎん部門が作成され、その中にユーザが作成されています。
ユーザの追加までできました!
まとめ
以上で、ユーザの追加操作を自動化できました。
Automation 360では、ActiveDirectoryに関する操作は、今回扱ったもの以外にも、
・ユーザのプロパティ取得、変更、削除。。。
・OU移動、プロパティ変更。。。
・グループのユーザ取得、移動。。。
などなど、たくさんの操作が容易されています。
もちろん今回の記事で紹介した接続を使用することで、簡単に操作可能です。
下記は、執筆時点のActive Directoryに関するアクション一覧です。
オンボーディング(人の受け入れ)や、組織変更などで自動化したいときの参考にしてみてください。
よい自動化ライフを!
Discussion