Quantcast
Channel: OKWAVE 最新質問(OS(技術者向け)/233)【本日】
Viewing all articles
Browse latest Browse all 9758

Windowsクライアントからシングルサインオン

$
0
0
お世話になっております。 諸先輩方のお知恵をお借りしたく、投稿させていただきます。 長文となりますが、よろしくお願いいたします。 ネットから情報収集し、自分なりに試行錯誤しながら色々とやってみてはいるものの、 思い通りの動作にならず困っております。 【やりたいこと】 Sambaを利用してLinuxサーバ(Apache)をActive Directoryに参加させ、 Windows統合認証(NTLM認証:mod_auth_ntlm_winbind)を利用して Windowsクライアントからシングルサインオンさせたい。 【環境】 ・DC(Active Directory)  OS:Windows Server 2003 Enterprise Edition SP2  コンピュータ名:adserver  ドメイン:hoge.local  ユーザー:ドメイン「hoge.local」の直下に、ユーザー「hogeuser」が存在する。  IPアドレス:xxx.xxx.xxx.xxx ・Linuxサーバ  OS:Asianux Server3 SP3  Sambaバージョン:3.0.33  Apacheバージョン:2.2.3  コンピューター名:adclient  ⇒ADの「Computers」の中に表示されているので、ドメインに参加できていると思われます。  IPアドレス:yyy.yyy.yyy.yyy ・クライアントマシンその1("C1"と略します。)  OS:Windows 7 Professional  ブラウザ:IE8  ドメイン参加:hoge.local(←今回の検証のために作成したドメイン)に参加済み。  ⇒コマンドプロンプトで「whoami /fqdn」と打つと「CN=hogeuser,DC=hoge,DC=local」が   返ってきます。  コンピューター名:test-pc  ⇒ADの「Computers」の中に表示されているので、ドメインに参加できていると思われます。 ・クライアントマシンその2("C2"と略します。)  OS:Windows XP SP3  ブラウザ:IE8  ドメイン参加:xxnet.com(←社内のドメイン)に参加済み。 DC⇔C1間、及びLinuxサーバ⇔C1間の疎通は問題ありません(双方向でのPingは通っています)。 【各種設定ファイル情報】 ・/etc/samba/smb.conf ※修正を加えた部分のみ抜粋。  [global]  workgroup = HOGE  security = ads  passdb backend = tdbsam  realm = HOGE.LOCAL  password server = hoge.local  encrypt passwords = true  idmap uid = 10000-20000  idmap gid = 10000-20000  winbind use default domain = yes  winbind cache time = 0  winbind separator = +  template homedir = /home/%U  template shell = /bin/false ・/etc/krb5.conf ※修正を加えた部分のみ抜粋。  [libdefaults]  default_realm = HOGE.LOCAL  [realms]  HOGE.LOCAL = {   kdc = xxx.xxx.xxx.xxx   admin_server = xxx.xxx.xxx.xxx   default_domain = hoge.local  }  [domain_realm]  .hoge.local = HOGE.LOCAL  hoge.local = HOGE.LOCAL ・/etc/hosts  127.0.0.1 localhost.localdomain localhost ←デフォルト(初期状態)のまま変更していない  ::1 localhost6.localdomain6 localhost6 ←デフォルト(初期状態)のまま変更していない  yyy.yyy.yyy.yyy adclient.hoge.local adclient ←この行だけを追加 ・/etc/resolv.conf  search hoge.local  nameserver xxx.xxx.xxx.xxx ・/etc/nsswitch.conf ※修正を加えた部分のみ抜粋。  passwd: files winbind  shadow: files winbind  group: files winbind ・/etc/httpd/conf/httpd.conf ※修正を加えた部分のみ抜粋。  KeepAlive On  LoadModule auth_ntlm_winbind_module modules/mod_auth_ntlm_winbind.so  Alias /ntlm/ "/var/www/html/ntlm/"  <Directory "/var/www/html/ntlm/">   NTLMAuth on   AuthType NTLM   AuthName "NTLM Authentication"   NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"   NTLMBasicAuthoritative on   require valid-user  </Directory> ・/var/cache/samba/winbindd_privileged のアクセス権  drwxr-x--- 2 root apache 4096 8月 13 10:58 winbindd_privileged 【現状】 Linuxサーバの/var/www/html/ntlm/の下に動作確認用の簡単なWebページ(index.html)を用意し、 C1から「http://yyy.yyy.yyy.yyy/ntlm/」(※1)にアクセスを試みると、 IDとパスワードの入力を促す認証ダイアログが表示されます。 認証ダイアログが表示されずに、ダイレクトでWebページを表示させたい (つまり、ドメインに参加したユーザのIDとパスワードでシングルサインオンさせたい) のですが、上述したように認証ダイアログが表示されてしまい、うまくいきません。 ここで、ドメインに登録されているユーザのID(hoge\hogeuser)とパスワード(※2)を 入力しても、何故かはじかれてしまいます。 ちなみに、C2(←hoge.localには参加していない)で同様の手順を踏むと、 認証ダイアログが表示されますが、その認証ダイアログに※2と同一の情報を入力すると、 用意したWebページが正しく表示されます。 以降、C2から※1に何度アクセスしても認証ダイアログが表示されずにWebページが 表示されるので、正しくシングルサインオンができていると思っております。 C2で一度ログオフ、その後再びログオンして再度※1にアクセスすると、 認証ダイアログが再び表示されました。 ⇒C2からのシングルサインオンの流れは特に問題無いと理解しています。 【疑問点】 (1)C1から※1にアクセスした際、何故認証ダイアログが表示されてしまうのでしょうか? (2)C1とC2において、何故動作が違うのか。  ⇒C2でWebページが表示できるのに対し、C1が表示できない点が腑に落ちません。 DC(Active Directory)の設定が悪いのか・・・ Linuxサーバーの設定が悪いのか・・・ はたまたクライアントマシン(もしくはブラウザ)の設定が悪いのか・・・ の絞り込みもできず、泥沼にはまっております。 お手数ですが、ご助言・アドバイス等いただきたく、よろしくお願い致します。 【備考】 その他の情報として、以下コマンドの実行結果も示しておきます。 # net ads info LDAP server: xxx.xxx.xxx.xxx LDAP server name: adserver.hoge.local Realm: HOGE.LOCAL Bind Path: dc=HOGE,dc=LOCAL LDAP port: 389 Server time: 月, 13 8月 2012 13:12:24 JST KDC server: DCのIPアドレス Server time offset: 0 # net ads testjoin Join is OK # wbinfo -t checking the trust secret via RPC calls succeeded

Viewing all articles
Browse latest Browse all 9758

Latest Images

Trending Articles

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>