Active Directory 環境下で自社製ソフトの時刻をずらしたテストを行うには?
製品名:デスクトップ OS、サーバー OS/Windows Server 2003
現象:したい/その他
たとえばとあるスケジューラソフトを開発していて、"今日から一ヶ月後にアラームを鳴らす" といった機能を実装し、さて動作確認をしたいとします。
ところでこの開発環境は Active Directory を導入した社内LAN環境下にあり、加えて、このスケジューラソフトは開発マシンとは別の共用サーバーにある SQL Server 2005 Workgourp Edition に Windows 認証で接続してスケジュールのデータを読み書きしています。
このときに、さて、開発マシンのシステム日付を1ヶ月先に進めて、スケジューラソフトがアラームを鳴らすかどうか見てみようとすると、何が起こるかというと、SQL Server に接続できない例外が発生してしまいます。
どういうことかというと、Active Directory 環境下では kerberos 認証が使われると言うことで、クライアントPCのシステム日付が5分以上ずれていると認証されない、ということです。
SQL認証使えば...などのご指摘もあるかと思いますが、ここには書き切れていない諸般の事情により、どうしてもクライアントPCの時刻を詐称 & しかし SQL Srever への Win認証は通過したい、という要件があるものとお察し頂ければと思います。
はてさて、同様の難題(?)に遭遇された方は他にも多々いらっしゃると思うのですが、いかがでしょうか?
また、その際、どのように解決されたのでしょうか?
開発者一人一人につき、"開発向け専用のローカルな" 小さなActive Directory 環境をすべて再現して、一斉にシステム日付を変更するという力業でやるしかないのでしょうか? (しかし、いくら今時代は仮想化できるとはいえ機材とOS、SQL Server の各ライセンス購入にかける予算が... MSDN Subscription で一人あたり15万円ほどずつ追加出費ですかね...まぁ、必要な経費だとしても、やりたいことに対してコストパフォーマンスが悪いような気も...)
ご教示頂ければ幸いです。
補足:サーバーOSはドメインコントローラやSQL Server を搭載しているものも含め一切が Win2003 Std SP2、開発マシンは WinXP Pro SP3 です。