サーバーに匿名で接続した後、人々に関する情報を取得する方法。
次のように、匿名でバインドされた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