개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.20 10:23

LDAP 조회에 대한 도움을 부탁드립니다.

목록
  • Swift매니아 10일 전 2025.05.20 10:23 인기
  • 172
    1
제가 현재 LDAP 서버를 통해 사용자 정보를 조회하고자 하는데, 문제는 `ldap_read` 함수를 사용하여 조회한 결과가 제대로 출력되지 않는다는 점입니다.

`ldap_read` 함수의 `ber_filter` 参数에서 사용하는 필터 포맷은 무엇이고, 이 필터 포맷을 어떻게 사용하여 사용자 정보를 조회할 수 있는지 알려주세요.

또한, `ldap_read` 함수의 반환 값은 어떤 의미를 가지고 있으며, 이 반환 값을 어떻게 처리하여 사용자 정보를 얻을 수 있는지 알려주세요.

제가 작성한 예제 코드는 다음과 같습니다.

c

#include 



int main() {

    LDAP* ld;

    LDAPMessage* msg;

    int ret;



    // LDAP 서버 연결

    ld = ldap_init("localhost", 389);

    if (!ld) {

        printf("LDAP 서버 연결 실패n");

        return -1;

    }



    // 사용자 정보 조회

    ret = ldap_read(ld, "cn=users,dc=example,dc=com", "(objectClass=user)", NULL, LDAP_SCOPE_SUBTREE);

    if (ret != LDAP_SUCCESS) {

        printf("LDAP 조회 실패n");

        return -1;

    }



    // 조회 결과 처리

    msg = ldap_first_entry(ld, msg);

    while (msg) {

        // 사용자 정보 추출

        printf("%sn", ldap_get_dn(ld, msg));

        msg = ldap_next_entry(ld, msg);

    }



    ldap_unbind_ext_s(ld, NULL, NULL);

    return 0;

}



위 코드에서 사용하는 필터 포맷과 반환 값에 대한 설명을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  10일 전



    `ldap_read` 함수의 `ber_filter` 파라미터는 LDAP 필터 포맷을 사용하여 사용자 정보를 조회할 수 있습니다. LDAP 필터 포맷은 다음과 같이 구성됩니다.

    - `(objectClass=user)`: 사용자 객체 클래스를 조회합니다.
    - `(cn=users)`: cn(Common Name) 필드가 'users'인 객체를 조회합니다.
    - `(dc=example,dc=com)`: dc(Domain Component) 필드가 'example'과 'com'인 객체를 조회합니다.

    위 예제 코드에서 사용하는 필터 포맷은 `(objectClass=user)`로, 사용자 객체 클래스를 조회합니다.

    `ldap_read` 함수의 반환 값은 LDAP 에러 코드를 나타냅니다. LDAP_SUCCESS는 성공을 나타내며, 다른 에러 코드는 실패를 나타냅니다.

    위 예제 코드에서 `ldap_read` 함수의 반환 값은 LDAP_SUCCESS로, 성공을 나타냅니다.

    조회 결과를 처리하기 위해 `ldap_first_entry` 함수를 사용하여 첫 번째 엔트리를 가져옵니다. 그리고 `ldap_next_entry` 함수를 사용하여 다음 엔트리를 가져올 수 있습니다.

    위 예제 코드에서 `ldap_first_entry` 함수를 사용하여 첫 번째 엔트리를 가져옵니다. 그리고 `ldap_next_entry` 함수를 사용하여 다음 엔트리를 가져옵니다.

    조회 결과에서 사용자 정보를 추출하기 위해 `ldap_get_dn` 함수를 사용합니다. 이 함수는 엔트리의 DN(Distinguished Name)을 반환합니다.

    위 예제 코드에서 `ldap_get_dn` 함수를 사용하여 엔트리의 DN을 추출합니다.

    LDAP 서버 연결을 종료하기 위해 `ldap_unbind_ext_s` 함수를 사용합니다.

    위 예제 코드에서 `ldap_unbind_ext_s` 함수를 사용하여 LDAP 서버 연결을 종료합니다.

    2025-05-20 10:24

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,898건 / 43 페이지

검색

게시물 검색