라이브러리
[PHP] ldap_search - LDAP 트리 검색
LDAP (Lightweight Directory Access Protocol) 이란, 디렉토리 정보를 검색하고 관리하는 프로토콜입니다. PHP 에서 LDAP을 사용하기 위해서는 `ldap` 확장 모듈이 필요합니다. 이 확장 모듈은 PHP 5.3 이상에서 기본적으로 제공됩니다.
LDAP 검색하기
LDAP 검색을 위해 `ldap_search` 함수를 사용합니다. 이 함수는 LDAP 서버에서 특정 필드에 대한 검색을 수행합니다.
# 함수의 매개변수
`ldap_search` 함수의 매개변수는 다음과 같습니다.
* `ldap_link_id`: LDAP 연결의 링크 ID
* `search_filter`: 검색할 필드와 값을 지정하는 필터
* `attributes`: 검색할 속성 목록
* `base_dn`: 검색할 디렉토리의 기본 DN (Distinguished Name)
# 예제
다음 예제는 LDAP 서버에서 사용자 이름이 "john" 인 사용자를 검색하는 예제입니다.
#hostingforum.kr
php
// LDAP 서버의 연결 정보
$ldap_server = "ldap.example.com";
$ldap_username = "cn=admin,dc=example,dc=com";
$ldap_password = "password";
// LDAP 서버에 연결
$ldap_link_id = ldap_connect($ldap_server);
if (!$ldap_link_id) {
echo "LDAP 서버에 연결할 수 없습니다.";
exit;
}
// LDAP 서버에 로그인
if (!ldap_bind($ldap_link_id, $ldap_username, $ldap_password)) {
echo "LDAP 서버에 로그인할 수 없습니다.";
exit;
}
// 검색할 필드와 값을 지정하는 필터
$search_filter = "(cn=john)";
// 검색할 속성 목록
$attributes = array("cn", "sn", "mail");
// 검색할 디렉토리의 기본 DN
$base_dn = "dc=example,dc=com";
// LDAP 서버에서 검색
$result = ldap_search($ldap_link_id, $base_dn, $search_filter, $attributes);
// 검색 결과를 출력
if ($result) {
$entries = ldap_get_entries($ldap_link_id, $result);
for ($i = 0; $i < $entries["count"]; $i++) {
echo "cn: " . $entries[$i]["cn"][0] . "
";
echo "sn: " . $entries[$i]["sn"][0] . "
";
echo "mail: " . $entries[$i]["mail"][0] . "
";
echo "
";
}
} else {
echo "검색 결과가 없습니다.";
}
// LDAP 서버에 로그아웃
ldap_unbind($ldap_link_id);
이 예제에서는 LDAP 서버에 연결하고 로그인한 후, 사용자 이름이 "john" 인 사용자를 검색합니다. 검색 결과를 출력하고, LDAP 서버에 로그아웃합니다.
LDAP 검색 결과 처리
LDAP 검색 결과는 `ldap_get_entries` 함수를 사용하여 얻을 수 있습니다. 이 함수는 검색 결과를 배열로 반환합니다.
# 함수의 매개변수
`ldap_get_entries` 함수의 매개변수는 다음과 같습니다.
* `ldap_link_id`: LDAP 연결의 링크 ID
* `result`: LDAP 검색 결과
# 예제
다음 예제는 LDAP 검색 결과를 처리하는 예제입니다.
#hostingforum.kr
php
// LDAP 서버의 연결 정보
$ldap_server = "ldap.example.com";
$ldap_username = "cn=admin,dc=example,dc=com";
$ldap_password = "password";
// LDAP 서버에 연결
$ldap_link_id = ldap_connect($ldap_server);
if (!$ldap_link_id) {
echo "LDAP 서버에 연결할 수 없습니다.";
exit;
}
// LDAP 서버에 로그인
if (!ldap_bind($ldap_link_id, $ldap_username, $ldap_password)) {
echo "LDAP 서버에 로그인할 수 없습니다.";
exit;
}
// 검색할 필드와 값을 지정하는 필터
$search_filter = "(cn=john)";
// 검색할 속성 목록
$attributes = array("cn", "sn", "mail");
// 검색할 디렉토리의 기본 DN
$base_dn = "dc=example,dc=com";
// LDAP 서버에서 검색
$result = ldap_search($ldap_link_id, $base_dn, $search_filter, $attributes);
// 검색 결과를 처리
if ($result) {
$entries = ldap_get_entries($ldap_link_id, $result);
for ($i = 0; $i < $entries["count"]; $i++) {
echo "cn: " . $entries[$i]["cn"][0] . "
";
echo "sn: " . $entries[$i]["sn"][0] . "
";
echo "mail: " . $entries[$i]["mail"][0] . "
";
echo "
";
}
} else {
echo "검색 결과가 없습니다.";
}
// LDAP 서버에 로그아웃
ldap_unbind($ldap_link_id);
이 예제에서는 LDAP 서버에 연결하고 로그인한 후, 사용자 이름이 "john" 인 사용자를 검색합니다. 검색 결과를 처리하고, LDAP 서버에 로그아웃합니다.
결론
이 문서에서는 PHP에서 LDAP 검색을 수행하는 방법에 대해 설명했습니다. LDAP 검색을 위해 `ldap_search` 함수를 사용하고, 검색 결과를 처리하기 위해 `ldap_get_entries` 함수를 사용했습니다. 예제를 통해 LDAP 검색을 수행하고, 결과를 처리하는 방법을 살펴보았습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.