「匿名認証」の版間の差分
細 →実装例 |
|||
(同じ利用者による、間の1版が非表示) | |||
8行目: | 8行目: | ||
$wgLDAPEncriptionType = array( 'APAC' => 'Clear' ); | $wgLDAPEncriptionType = array( 'APAC' => 'Clear' ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* | *LdapAuthenticationPlugin.php | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
// This is an anonymous bind | |||
$this->printDebug( "Doing an anonymous bind", NONSENSITIVE ); | |||
// | // $bind = $this->bindAs(); 下のように書き換える | ||
$bind=$this->bindAs( $this->getSerachString( $username ), $this->getPasswordHash( $password ) ); | $bind=$this->bindAs( $this->getSerachString( $username ), $this->getPasswordHash( $password ) ); | ||
</syntaxhighlight> | </syntaxhighlight> |
2018年7月6日 (金) 01:09時点における最新版
匿名認証とは、LDAPの認証(BIND)のうち特定のDNを指定せずに認証要求すること。ActiveDirectory(AD)は既定では匿名認証を許可していない。そのためADをLDAPの認証ディレクトリとして使用する場合、認証要求されたユーザー識別子が存在するかディレクトリを検索するためには、読取アクセスのみ許可された検索IDを使用するか、認証要求されたユーザー識別子とパスワードそのものを用いて検索を実施する必要がある。
実装例
- LocalSettings.php
$wgLDAPSearchStrings = array( 'APAC' => "USER-NAME@apac" );
$wgLDAPEncriptionType = array( 'APAC' => 'Clear' );
- LdapAuthenticationPlugin.php
// This is an anonymous bind
$this->printDebug( "Doing an anonymous bind", NONSENSITIVE );
// $bind = $this->bindAs(); 下のように書き換える
$bind=$this->bindAs( $this->getSerachString( $username ), $this->getPasswordHash( $password ) );
- ldap_auth/start.php
$bind_dn = "$username@apac";
$bind_pw = $password;
- include/classes/ldap/CLdap.php (Version 2.4.1の場合)
'host' => 'ldap://192.168.38.128', //実際のサーバーアドレスを入力する。
'bind_dn' => '%{user}@apac', //@以降に実際のドメイン名を入力する。
'bind_password' => ' ', //空白
'base_dn' => 'ou=xxx,dc=apac,dc=corpdir,dc=net', //実際のdnを入力する。
'search_attribute' => 'sAMAccountName', //ADの場合
46行目の以下のコードをコメントアウトする。設定画面で入力した値で上書きされるのを防ぐため。
// $this->cnf = zbx_array_merge($this->cnf, $arg);
dotProject
- classes/authenticator.class.php
$ldap_bind_dn = "$username@apac";
$ldap_bind_pw = $password;