ブログ

2019/07/29
【プリザンター】第7回)AD連携をしている場合のユーザ更新の工夫

ユーザ数が多い場合の運用での懸念点

こんにちは、CCS田中です。

弊社ではユーザ情報は、グループ内で使用している Active Directory情報を使用して、プリザンターと同期をしています。
このユーザ情報は日々追加・削除が行われています。削除されたときは、同期時に使われないようにしているので問題はないのですが、追加されたときにユーザが単に追加されるだけで、必要なグループに追加されないという問題があります。
必要なグループとは、「閲覧用グループ」を作成しており、原則利用者は閲覧のみをさせて新規作成や更新をさせないような運用にしているため、新規に追加されたユーザは閲覧用グループに追加する必要があります。
ただ、同期だけだとグループへの追加は自動では行われないため、弊社でどのように対応しているかの紹介をしたいと思います。
ユーザ数が少なく、AD連携していない場合は参考にはならないかもしれませんね。

連携方法

まず簡単に流れを説明します。

Active Directory のユーザ情報は定期的に更新されるものとして、プリザンターサーバのタスクスケジューラに毎朝起動するタスクを作成します。
そのタスクで呼び出すものは同期用のバッチファイルです。そのバッチファイルからSQL文のファイルを呼び出して実行させます。

まずは末端のSQL文をUpdateGroupMembers.sqlとして作成します。



declare @GroupId int;
set @GroupID = 4;
delete from GroupMembers where GroupId = @GroupId;
insert into GroupMembers( GroupId,UserId,Creator,Updator) select @GroupId,UserId,1,1 from Users where UserId>2


ここでGroupIDを4としているのは、プリザンターで閲覧用グループのIDが「4」となっているためです。
ご利用の環境に合わせて修正してください。
UserId>2 としているのは、UserId=1が管理者のため、UserIdが2以上を対象としています。
一度グループメンバーを削除しているのは、差分を確認して追加をするよりも手間がないためです。

上記のファイルを呼び出すバッチファイルは以下の通りです。

UpdateGroupMembers.bat


sqlcmd -i UpdateGroupMembers.sql -S "サーバ名,1433" -d "Implem.Pleasanter" -U "DBユーザ" -P "パスワード"


UpdateGroupMembers.sqlを指定しているところは、フルパスで指定します。
サーバ名は、FQDNで指定をします。
DBユーザやパスワードは環境に応じて適切なものを指定します。

このバッチファイルをタスクスケジューラで、毎朝動作するように指定します。この部分の説明は割愛します。
別途ユーザ自身を同期するバッチファイルも動かしているのですが、それはインプリム社からの説明もありますので、そちらを参照ください。

これで追加されたユーザが、閲覧用グループに自動追加されるようになりました。
このグループを指定しているテーブルは、新しくADに追加された人も見られるようになります。

まとめ

さて、いかがでしたか?
今回はAD連携をしている場合のユーザ更新の工夫について説明しました。

AD連携については一定の規模以上の企業でないと使用されていないかもしれませんが、使用したいときにやり方がわからないときなどは参考にしてもらえればと思います。
AD連携や導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP