2017-02-07 4 views
0

が、それは私がこのフォームをテストしている このフォーム 「ユーザ名@ドメイン」でActive DirectoryなどのOpenLDAPサーバーに接続することが可能であり、それは、Active Directoryに接続しているが、OpenLDAPので、私はフルを配置する必要がありますDN。OpenLDAPとActiveDirectoryの認証

は、誰もがそれが

おかげで可能かどうADとして接続するために私のOpenLDAPを変更する方法任意のアイデアを持ってい。

+0

OpenLDAPはLDAPサーバーです。 ActiveDirectoryは別のものです。したがって、 'Active DirectoryとしてのOpenLDAPサーバへの接続'は無意味です。 OpenLDAPはバインド名として 'username @ domain'をサポートしていません。そのメールアドレスを持つユーザーのディレクトリを最初に検索し、そのエントリのDNをバインド名として使用する必要があります。 – EJP

答えて

0

userPrincipalName(username @ realm)のような別のバインド名をopenLDAPで使用する場合は、バージョン2.4以降の再書き込み/再マップオーバーレイslapo-rwmが必要です。

非常に簡単な例は次のようになります。

# Typed and not tested! 

rwm-rewriteEngine on 

rwm-rewriteContext addName 
rwm-rewriteRule  "(.*)" "userPrincipalName=$1" ":" 
rwm-rewriteMap  ldap upn2dn "ldap://host/dc=my,dc=org?dn?sub" 

rwm-rewriteContext bindDN 
rwm-rewriteRule  ".*" "${upn2dn($0)}" ":@I" 

EDIT

あなたのコメントでの質問に答えて:プロトコルは独自性の概念がないようLDAPは、それが製品の機能です。たとえば、OpenLDAPでは、独自のオーバーレイを使用して、適切なバックエンドの特定の属性タイプに対して一意性を強制することができます。 phpLDAPAdminを使用すると、そのクライアントの一意性をテストする属性タイプを構成できます。

+0

あなたの応答をありがとう、実際に私はユニークな属性を見つける方法を探しています、私のアイデアは、別のエントリですでに使用されている値を追加しようとすると、phpldapadminはそれを保存することを拒否する私は、Javaメソッドでユーザーを追加するときに、重複するuid値を取得します。 ??? –

+0

@AnasBenMansour OpenLDAPの「ユニークな」オーバーレイが必要です。 – EJP

0

同じDNを使用してOpenldapユーザーとADユーザーを認証する場合は、openldapサーバーからADサーバーにプロキシを追加する必要があります。

back_ldapモジュールを使用して、ADデータベースをOpenldapデータベースのsubordinateとする必要があります。

openldap/adにカスタム属性を追加して、ユーザーの一意性を確認することができます。ほとんどの場合、両側で共通の電子メール属性があります。