linux ldap认证:windos 和 linux 下实现PHP和LDAP身份认证
我现在的老板曾要求我为企业内部互联网的Web服务提供一种标准的身份验证方法。我遇到的一个主要问题就是我们公司主要使用了两种平台:UNIX和Windows。所以,我的第一个想法并不很成功:它要求每个员工都使用UNIX或者Linux而放弃Windows。
我认为解决现在的UNIX/Windows问题的最好方法就是利用PHP的LDAP特性。由于LDAP服务器,要求我使用现有的系统,主要指的是一个巨大的Microsoft Exchange Server系统。我非常高兴使用Exchange,它很可靠,而且LDAP特性的使用和配置也极为简单。不过,请你注意:这套方案就身份验证角度来看并不是最安全的。如果有较高等级的安全需求,我强烈建议你采用LDAP和SSL。
从哪里开始学习
为了让你入门,我给出了一个PHP LDAP函数的清单并对函数的功能给以简要说明。然后,我将演示如何建立到LDAP服务器的连接并验证用户。为了代码简单起见,我将演示PHP连接的功能以及如何绑定到LDAP服务器。
一对绝配:PHP和LADP
下面是我在例子中将要使用的函数的清单。网上有相关资料。
ldap_connect—用来连接LDAP服务。
ldap_bind—用来绑定到特定的LDAP目录。
ldap_error—从LDAP服务器上获得错误信息。
ldap_search—用来开始搜索。
ldap_get_entries—从搜索结果中获得多个结果。
ldap_close—关闭LDAP连接。
现在我在例子中演示如何使用第一个函数(代码清单A)并适当介绍该函数的功能。
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to {$ldap[‘host’]}” );
?>
将会返回一个到LDAP服务器的连接(也称为资源,即resource)。ldap_connect函数有两个参数:主机(host)和端口。第一个参数:主机就是LDAP主机名称,第二个参数是LDAP运行的端口。默认情况下,LDAP使用的端口号为389。如果你需要到LDAP服务器的一个安全连接,你可以把参数host改为一个你可以访问的LDAP服务器的URL,如下所示:
$ldap[‘conn’] = ldap_connect( “ldaps://ldap.example.com” );
由于你指定了URL而不是服务器名称,在这种方法下,你就不需要使用端口参数了。需要牢记的一点就是确切名称需要与加密套接字协议层证书(the SSL certificate)对应。
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to {$ldap[‘host’]}” );
// binding to ldap
$ldap[‘bind’] = ldap_bind( $ldap[‘conn’], $ldap[‘dn’], $ldap[‘pass’] );
?>
演示了如何用用户名和口令来绑定到服务器。我创建了一个合适的域名(domain name ,DN)并用用户的口令来合法连接到LDAP。我们通过使用域名和口令就可以让LDAP服务器通过身份认证并允许绑定连接,这样我们就成功的绑定上了。ldap_bind的返回值是一个布尔类型。我们可以根据返回值判断用户的登录证书是否有效。当这个过程结束后,你就可以知道用户身份是否得到了认证。
如果发生了错误会怎样?调用ldap_error函数是判断发生了什么错误的好方法。ldap_error函数返回了一个字符串,其中包含了LDAP服务器发生的最后错误的信息。
在
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to server {$ldap[‘host’]} );
// binding to ldap
$ldap[‘bind’] = ldap_bind( $ldap[‘conn’], $ldap[‘dn’], $ldap[‘pass’] );
if( !$ldap[‘bind’] )
{
echo ldap_error( $ldap[‘conn’] );
exit;
}
?>
中,我向脚本中添加了ldap_error函数,如果绑定到LDAP服务器的用户身份没有得到确认,那么代码将退出运行。该函数返回一个字符串,该字符串包含了发送到LDAP服务器的最后一条指令产生的错误信息。如果你按给定用户名和口令的绑定没有成功登录,那么错误信息将包含这对无效的用户名和口令。
在我们的最后一个例子中
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’; 本文链接http://www.cxybl.com/html/wlbc/Php/20121126/34395.html

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











최근 많은 Win11 사용자가 종료할 때 taskhostwindow 작업 호스트가 종료 작업을 실행하고 있다는 메시지가 표시된다고 보고했습니다. 무슨 일이 일어나고 있는 걸까요? 사용자는 로컬 레지스트리 편집기 아래 Desktop 폴더에 들어간 후 오른쪽 창에서 AutoEndTasks를 선택하여 설정할 수 있습니다. 이 사이트를 종료할 때 이 문제에 대한 해결책을 사용자에게 주의 깊게 소개하십시오. Windows 11 종료에서는 taskhostwindow 작업 호스트가 종료 작업을 실행 중이라는 메시지가 표시됩니다. 해결 방법 1. 아래 그림과 같이 win 키 + r 키 조합을 사용하여 "regedit"를 입력하고 Enter 키를 누릅니다. 2. [HKEY]를 검색하세요

작업을 종료하거나 응용 프로그램을 중지하기 위해 작업 관리자를 시작할 때 일반적으로 많은 수의 프로세스가 실행되고 있는 것을 발견합니다. 이것은 완전히 정상입니다. 그러나 때로는 우리가 전혀 인식하지 못하는 시스템 리소스를 사용하는 프로그램을 볼 수 있습니다. 이러한 프로세스 중 하나는 최근 사용자들 사이에 혼란을 야기하고 있는 수집기 호스트.exe입니다. 이러한 프로세스 중 일부는 합법적인 Windows 요구 사항일 수 있지만 다른 프로세스는 백그라운드에서 실행되어 사용자가 알지 못하거나 동의하지 않고 문제를 일으키는 악성 프로그램일 수 있습니다. Windows 11에서 작업 관리자를 시작할 수 있는 5가지 방법을 살펴본 후 aggregator host.exe가 안전한지 또는 바이러스인지 확인하는 방법을 보여 드리겠습니다. 유지하다

마스터와 호스트의 차이점은 다음과 같습니다. 1. 호스트는 클라이언트 또는 서버 역할을 할 수 있지만 마스터는 분산 시스템에서 다른 슬레이브 서버를 조정하고 관리하는 중앙 서버입니다. 2. 호스트는 일반 컴퓨터 장치이며 마스터입니다. 일반적으로 처리 능력이 더 높으며 작업을 처리 및 분산하고 데이터를 관리하며 전체 시스템의 안정성을 유지하는 데 사용됩니다. 3. 호스트는 네트워크의 노드이고 마스터는 네트워크에서 핵심 역할을 하는 서버입니다. 분산 시스템.

"호스트에 대한 경로 없음"에 대한 해결 방법에는 네트워크 연결 확인, IP 주소 및 포트 확인, 방화벽 구성 확인, 라우팅 구성 확인, 네트워크 장치 구성 확인, 네트워크 서비스 상태 확인, 네트워크 구성 확인 및 연결이 포함됩니다. 네트워크 관리자. 자세한 소개: 1. 네트워크 연결을 확인하여 클라이언트와 대상 호스트 간의 네트워크 연결이 정상적인지 확인하십시오. ping 명령이나 기타 네트워크 도구를 통해 네트워크 연결을 테스트하고 네트워크 케이블과 같은 하드웨어 장치가 있는지 확인할 수 있습니다. , 무선 네트워크 및 라우터가 제대로 작동하는지 확인하세요. 네트워크 연결이 안정적인지 확인하세요.

1. LDAP 주입 LDAP(Light Directory Access Portocol)는 X.500 표준을 기반으로 하는 경량 디렉터리 액세스 프로토콜로 디렉터리 데이터베이스에 액세스하기 위한 서비스와 프로토콜을 제공합니다. 디렉토리는 질의, 탐색, 검색에 최적화된 전문 분산 데이터베이스로, Linux/Unix 시스템의 파일 디렉토리와 유사한 트리 구조로 데이터를 구성합니다. 공인 인증서, 보안 키, 회사의 물리적 장치 정보 등 자주 수정되지 않는 데이터는 디렉터리에 저장하는 것이 적합합니다. LDAP는 SQL과 유사하고 쿼리 구문이 있지만 주입 공격의 위험이 있는 검색 프로토콜로 이해될 수 있습니다. LDAP 주입은 클라이언트를 참조합니다.

sql 인젝션의 본질이 문자열을 이어붙이는 것이라면, 인젝션할 수 있는 모든 것의 본질은 스트링을 이어붙이는 것인데, 일종의 인젝션으로서 LDAP 인젝션도 예외는 아니다. 또한 괄호를 연결하지만 문자열을 연결한다고 말하는 것이 더 관례적입니다. 환경 설정 장에서는 Bee-Box의 LDAP 환경 구성에 대해 자세히 다루었습니다. 사격장 실습 장에서는 PHP와 LDAP의 연결 과정, 중간에 사용되는 특수 기능 소개, 괄호를 연결하는 몇 가지 기술. 먼저 bwapp의 LDAP 사격장의 로그인 프로세스에 대해 이야기하겠습니다. 먼저 이것은 LDAP 로그인 인터페이스이며 URL은 http://192.168.3.184/bW입니다.

호스트 파일은 "C:\Windows\System32\drivers\etc" 경로에 있습니다. 호스트 파일은 메모장과 같은 일반 텍스트 편집 소프트웨어로 열 수 있는 일반 텍스트 파일입니다. 호스트 이름과 IP 주소 매핑 관계를 포함합니다.

1. 개요 학습 과정에 따라 웹 공격의 모델과 취약점이 무엇인지 알아야 합니다. 이제 처음으로 LDAP를 접한 것은 공기업의 침투 테스트였습니다. 인기가 없는 것(승인된 것)을 발견하고 그것에 대한 나의 관심을 불러일으켰습니다. LDAP의 개념: 전체 이름: Lightweight Directory Access Protocol(Lightweight Directory Access Protocol), 특징: 프로토콜에 대해서는 언급하지 않겠습니다. 너무 난해하며, 데이터를 저장하기 위한 데이터베이스로 이해할 수 있습니다. 특징은 다음과 같습니다. 데이터베이스 형태의 데이터베이스입니다. 먼저 데이터베이스의 이름은 트리의 루트(즉, DB=dc)와 동일하며 루트에서 리프 노드까지의 프로세스는 다음과 같습니다.
