LoginSignup
6
6

More than 5 years have passed since last update.

Serverspec Windowsをテストする際にドメイン認証を使う方法

Posted at

WindowServerに対して、Serverspecを実行する際にドメイン認証を使いたくなると思うが、Serverspec-initで標準で出来るspec_helper.rbではベーシック認証のみしか受け付けてくれないので、下記のようにドメインユーザ指定するとwinrm認証でこけてテストが失敗する。。

user = "[ドメイン名]\ユーザ名"
pass = "パスワード"

標準でのwinrmの接続文字列

basic_auth_onlyを指定があるので他の認証は不可

winrm = ::WinRM::WinRMWebService.new(endpoint, :ssl, :user => user, :pass => pass, :basic_auth_only => true)

こう変更する

色々調べてみたんだけど、答えは簡単でwinrmのgemリポジトリの中に答えがあった。

winrm

basic_auth_onlyを外して、disable_sspiオプションを指定(無効化)する。

SSPIとは Windows認証をセキュアにする為のAPI

winrm = ::WinRM::WinRMWebService.new(endpoint, :ssl, :user => user, :pass => pass, :disable_sspi => true)

おまけ

各々のドメインユーザで認証するケースだと都度入力にしたいと思い、ドメインのID,passをハードコードするのはセキュリティ上もよろしくないので、こんな感じで対話式にして実行するとよい。

#ユーザ名・パスワード入力を都度入力に変更
puts "ユーザ名を入力して下さい sample:dc1\..."
user = STDIN.gets.chop

puts "パスワードを入力して下さい"
pass = STDIN.noecho(&:gets).chop

これでドメインユーザでの、Serverspecの実行が可能となる!!

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6