1

サーバーに匿名で接続した後、人々に関する情報を取得する方法。

次のように、匿名でバインドされたldapサーバーに uid=barbara を検索しています。

エラーが出ます、

LDAP initialize successful.
Set LDAPv3 client version.
LDAP connection successful.
ldap_search_ext_s: No such object

if i chnage char *FIND_DN = " ou=Users,dc=example,dc=com";

rc = ldap_simple_bind_s(ld,root_dn,root_pw); それは正常に動作します。
以下のコード:

int main(int argc, char**argv) 
{
 LDAP *ld;
 int desired_version = LDAP_VERSION3;
 char *ldap_host     = "localhost";
 char *root_dn       = "cn=Manager, dc=example,dc=com";
 char *root_pw       = "secret";
 char *FIND_DN  = "dc=example, dc=com";

 LDAPMessage  *result, *e;
 BerElement   *ber;
 char         *a;
 char         **vals;
 int          i, rc;

 ldap_initialize( &ld, ldap_host );
 printf("LDAP initialize successful.\n");

 rc = ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &desired_version);
 if ( rc != LDAP_SUCCESS ) {
    perror( "ldap_set_option failed" );
    exit(EXIT_FAILURE);
 } else {
    printf("Set LDAPv3 client version.\n");
 }

 rc = ldap_simple_bind_s(ld,NULL ,NULL);
 if ( rc != LDAP_SUCCESS ) {
    fprintf(stderr, "ldap_simple_bind_s: %s\n", ldap_err2string(rc));
    exit(EXIT_FAILURE);
 } else {
    printf("LDAP connection successful.\n");
 }

 if ( ( rc = ldap_search_ext_s( ld, FIND_DN, LDAP_SCOPE_SUBTREE,
                                "(uid=barbara)",NULL,0,NULL,NULL,NULL,
                                LDAP_NO_LIMIT, &result ) ) != LDAP_SUCCESS ) {

     fprintf(stderr, "ldap_search_ext_s: %s\n", ldap_err2string(rc));
     ldap_unbind( ld );
     return( 1 );
 }
 ldap_msgfree( result );
 ldap_unbind( ld );

 return( 0 );
}

ldapsearch コマンドで、私は得る

LDAP パスワードを入力してください:

# ユーザー、example.com

dn: ou=ユーザー,dc=例,dc=com

ou: ユーザー

説明: Example.Com ユーザー

objectClass: 組織単位

# マット、ユーザー、example.com

dn: uid=matt,ou=ユーザー,dc=例,dc=com

ou: ユーザー

uid: マット

cn: マット・ブッチャー

sn: ブッチャー

名: マット

名: マシュー

displayName: マット・ブッチャー

役職: システム インテグレーター

説明: Example.Com のシステム統合と IT

従業員タイプ: 従業員

部門番号: 001

従業員番号: 001-08-98

メール: mbutcher@example.com

メール: matt@example.com

部屋番号: 301

電話番号: +1 555 555 4321

モバイル: +1 555 555 6789

st: イリノイ州

l: シカゴ

通り: 1234 シセロ アベニュー。

自宅電話: +1 555 555 9876

homePostalAddress: 1234 ホーム ストリート $ シカゴ、イリノイ州 $ 60699-1234

ユーザーパスワード:: c2VjcmV0

優先言語: en-us、en-gb

objectClass: 人

objectClass: organizationPerson

objectClass: inetOrgPerson

# バーバラ、ユーザー、example.com

dn: uid=barbara,ou=ユーザー,dc=例,dc=com

ou: ユーザー

uid: バーバラ

sn: ジェンセン

cn: バーバラ・ジェンセン

名: バーバラ

表示名: バーバラ・ジェンセン

メール: barbara@example.com

ユーザーパスワード:: c2VjcmV0

objectClass: 人

objectClass: organizationPerson

objectClass: inetOrgPerson


# 検索結果

検索: 2

結果: 0 成功

# numResponses: 4

# numEntries: 3
4

0 に答える 0