- PR -

PHP5からWindows2003に認証させるには

1
投稿者投稿内容
きのこ
ぬし
会議室デビュー日: 2004/09/01
投稿数: 256
投稿日時: 2006-02-21 04:20
いつもお世話になっております
そぼくな疑問ですが、WINDOWS2003にあるアクティブディレクトリサーバーに
認証をさせるページをPHPでつくろうとしてます

なにがしたいかというとわざわざ別ユーザーやパスワードを管理せずに
単純にWINDOWSのドメインユーザーで
認証を利用したりWINDOWSドメインに設定したグループアクセス権の情報などを
そのまま利用したいだけです。

WINDOWSのアクティブディレクトリではデフォルトで
セキュリティ上 平文はゆるされていません

なにもユーザー名、パスワードをいれずにLDAP_BINDするとOKあのですが
匿名バインドでだれでもアクセスできるリソースにアクセスできる
ことだと思います。

実際にIDとパスワードをいれると
ldap_bind(): Unable to bind to server: Invalid credentials

となります。
PHP5だと
http://www.php.net/manual/ja/function.ldap-sasl-bind.php
のようなものがサポートされているようなのですが
実際にこれをつかってアクティブディレクトリに認証接続される方法はあるのでしょ
うか?

(SASLとはそもそもどういうものでしょうか?)
JAVAでもトライしたことがあるのですがKRB5というMITのケルベロス認証ファイルなどを
もちこんでなっかぐちゃぐちゃやってつないだことはありました
この手のものとしてSSLしかつかったことしかなかったので少し面食らってます。

ちなみにかなり前、
PHPでこれをしようとしていて結局あきらめ

ASPで
Dim ldapObj, contADsPath, contObj
set ldapObj = GetObject("LDAP:")
contADsPath =
"LDAP://main.mydomain.com:389/OU=Users,OU=Tokyo,DC=mydomain,DC=com"
Set contObj = ldapObj.OpenDsObject(contADsPath,myuserid,mypassword,1)

で接続したことがありました。
OpenDsObject(contADsPath,myuserid,mypassword,1)
の1がそれに対応した接続で0だと平文になるようです。

OUTLOOK EXPRESSなんかでディレクトリーサービスを追加して
実験すると、同じように、
なにもID,やパスワードをいれないとちゃんと表示され、
いれると表意されなくなりました、認証エラーになりました

ところがSPAとなのる認証のところをチェックをいれるとうまく接続できました

この認証方式に対応させればいいだけなのでしょうが
このPHP5で導入された
ldap-sasl-bind
もこれに対応しているような気がしたのですでに成功したかたがいらしたら
ぜひ教えてください
どうかよろしくお願いいたします

1

スキルアップ/キャリアアップ(JOB@IT)