>  기사  >  백엔드 개발  >  PHP 및 LDAP를 사용하여 사용자 그룹 관리 및 인증을 구현하는 방법

PHP 및 LDAP를 사용하여 사용자 그룹 관리 및 인증을 구현하는 방법

WBOY
WBOY원래의
2023-06-25 08:22:502035검색

기업 규모와 비즈니스 요구가 지속적으로 확장됨에 따라 사용자 그룹 관리 및 권한 부여가 필수적인 부분이 되었습니다. 기업 네트워크에서 널리 사용되는 디렉토리 서비스 프로토콜인 LDAP(Lightweight Directory Access Protocol)는 사용자 그룹 관리 및 인증을 구현하는 효율적인 방법을 제공합니다. 이 기사에서는 PHP와 LDAP를 사용하여 사용자 그룹 관리 및 인증을 구현하는 방법을 소개합니다.

1. LDAP란

LDAP는 기업 네트워크에서 디렉터리 서비스 프로토콜로 널리 사용되는 경량 디렉터리 액세스 프로토콜입니다. LDAP는 클라이언트/서버 모델을 기반으로 하며 표준 프로토콜을 통해 디렉터리의 정보에 대한 읽기 및 쓰기 액세스를 제공합니다.

LDAP의 데이터 구조는 트리 구조로 구성됩니다. 트리의 루트 노드는 최상위 DNS 도메인 이름(예: com, net 등)이고, 다음 수준은 조직 단위(OU)입니다. 다음 수준은 사용자 개체(리프 노드)입니다.

2. PHP 및 LDAP

PHP는 LDAP를 지원하며, PHP를 사용하여 LDAP 디렉토리 서비스를 쉽게 운영할 수 있습니다. PHP는 LDAP 서버 연결, 인증 수행, LDAP 디렉토리 정보 검색 및 수정에 사용되는 ldap_connect(), ldap_bind(), ldap_search(), ldap_add(), ldap_delete() 등과 같은 몇 가지 기본 기능을 제공합니다. 및 기타 작업.

3. 사용자 그룹 관리 및 인증 구현

1. LDAP 서버에 연결

php 코드를 사용하여 LDAP 서버에 연결:

$ldapserver = "ldap://127.0.0.1"; IP 주소
$ldapport = 389; //LDAP 서버 포트 번호
$ldapbinddn = "cn=admin,dc=my-domain,dc=com" //LDAP 관리자 계정
$ldappass = "123456" //LDAP 관리자 비밀번호
$ldapconn = ldap_connect($ldapserver, $ldapport);

if($ldapconn){

$ldapbind = ldap_bind($ldapconn, $ldapbinddn, $ldappass);
if(!$ldapbind){
    echo "LDAP连接失败!";
}

}

2. 사용자 그룹 만들기

php 코드를 사용하여 사용자 그룹 만들기:

$newgroup = array();
$newgroup['cn'] = "developers"; //그룹 이름
$newgroup['gidNumber'] = "1000"; //그룹 ID
$newgroup'objectclass' = "top";
$newgroup'objectclass' = "posixGroup"; //그룹 유형은 posixGroup
ldap_add($ldapconn, "cn=developers,ou=groups,dc=my-domain,dc=com", $newgroup); 3. 사용자 그룹에 사용자 추가

PHP 코드를 사용하여 사용자 그룹에 사용자 추가:

$userdn = "uid=john,ou=people,dc=my-domain,dc=com" //사용자 DN

$ groupdn = "cn=developers,ou =groups,dc=my-domain,dc=com"; //그룹 DN

$modify['member'] = $userdn;
ldap_modify($ldapconn, $groupdn, $modify) ;

4. 사용자 그룹에서 사용자 삭제

php 코드를 사용하여 사용자 그룹에서 사용자 삭제:

$userdn = "uid=john,ou=people,dc=my-domain,dc=com"; DN

$groupdn = "cn=developers,ou=groups,dc=my-domain,dc=com"; //그룹 DN

$modify['member'] = $userdn;
ldap_modify($ldapconn, $groupdn, $modify);

5. 사용자 그룹 구성원 쿼리

PHP 코드를 사용하여 사용자 그룹 구성원을 쿼리합니다.

$groupdn = "cn=developers,ou=groups,dc=my-domain,dc=com"; 그룹 DN

$filter = "(objectclass= 사람)";

$result = ldap_search($ldapconn, $groupdn, $filter);
$entries = ldap_get_entries($ldapconn, $result);
for($i = 0 ; $i < $entries['count ']; $i++){

echo $entries[$i]['dn'];

}

6. 사용자 그룹 인증

PHP 코드를 사용하여 사용자 그룹 인증:

$groupdn = "cn=developers,ou =groups,dc=my-domain,dc =com"; //그룹 DN

$attrs['uniquemember'] = array(); //승인된 사용자 DN array

$attrs['uniquemember'][] = "uid =john,ou=people,dc=my -domain,dc=com";
$attrs['uniquemember'][] = "uid=smith,ou=people,dc=my-domain,dc=com";
ldap_mod_add($ldapconn, $groupdn, $attrs );

7. 사용자 그룹 인증 취소

PHP 코드를 사용하여 사용자 그룹 인증 취소:

$groupdn = "cn=developers,ou=groups,dc=my-domain ,dc=com"; //그룹 DN

$attrs['uniquemember'] = array(); //인증된 사용자 DN 취소 array

$attrs['uniquemember'][] = "uid=john,ou=people, dc=my-domain,dc=com ";
ldap_mod_del($ldapconn, $groupdn, $attrs);

IV. 요약

이 글에서는 PHP와 LDAP를 사용하여 연결을 포함한 사용자 그룹 관리 및 권한 부여를 구현하는 방법을 소개합니다. LDAP 서버에, 사용자 그룹 생성, 사용자 그룹에 사용자 추가, 사용자 그룹에서 사용자 삭제, 사용자 그룹 구성원 조회, 사용자 그룹 인증 및 사용자 그룹 인증 취소. 엔터프라이즈 네트워크에서 널리 사용되는 디렉터리 서비스 프로토콜인 LDAP는 사용자 그룹을 관리하고 권한을 부여하는 효율적인 방법을 제공합니다.

위 내용은 PHP 및 LDAP를 사용하여 사용자 그룹 관리 및 인증을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.