2016-07-05 11 views
0

私は現在、ユーザーがアカウント名でログインできるWebアプリケーションを開発中です。 すべてのユーザーは、Microsoftドメインの一部です。sAMAccountNameとパスワードによるLDAP認証

私のユーザー属性を次のようしています

CN: "Test Account" 
displayName: "Test Account" 
distinguishedName: "CN=Test Account,OU=Users,OU=CompanyName,DC=company,DC=com" 
sAMAccountName: "test.account" 
userPrincipalName: "[email protected]" 

現在、私はこのコードを使用してバインドしようとしている:

$link = @ldap_connect($server); 
@ldap_bind($link, $username, $password); 

問題は、DisplayNameが等しくない場合はldap_bindが失敗するということですsAMAccountName。

したがって、displayName/cnを知らなくても、パスワードとsAMAccountNameを使ってバインドできますか?

+0

私のユーザーには、**名前**属性があります。この属性には、**テストアカウント** –

答えて

0

this gistをご覧ください。

ユーザーのDNを知らずに、LDAP-Entryの任意の一意の属性を持つユーザーを認証する方法を示します。

ADは匿名バインドを許可しないため、LDAPに対して読み取り権限を持つユーザーが必要であることに注意してください。また、ldap_connect($server, $port)の代わりにの代わりにldaps-connectionを使用することもできます。