PHP 讀取 LDAP 伺服器

閱讀時間約 5 分鐘

什麼是 Active Directory?

raw-image


Active Directory (AD)是企業經常用來做電腦登入認證的系統服務,透過 AD 伺服器 IT管理員能夠用來儲存 使用者(User)、使用者群組(Group)和電腦(Computer) …等的相關資訊以進行認證與網域存取管理。


如何讓 PHP 支援 AD 服務?

PHP 預設是沒有開啟 AD 伺服器 支援,

打開 PHP.ini 設定,找到 "ldap",將 ;extension=ldap 的 ; 拿掉後存檔,

再重開一下Apache

raw-image

再打開 phpinfo() 檢查看看

raw-image

看到 LDAP Support enabled,就是可以支援 LDAP了。


什麼是 LDAP ?

LDAP 是 Lightweight Directory Access Protocol (輕型目錄存取協定)的簡稱。

LDAP 是一種開放的標準協議,它可以透過 Internet 協定(TCP/IP)存取和維護目錄資訊服務。

raw-image


PHP 連線 LDAP Server 的範例程式

<?php
$domain = 'abc.com'; // 設定網域名稱(請替代成您的 LDAP Server名稱)
​$dn="dc=abc,dc=com"; // 根 DN (請替代成您的 LDAP Server的 根DN)

// LDAP 伺服器設定
  $ldapServer = 'ldap://ldap02.abc.com'; // LDAP Server位置
$user = 'myusername';
$password = 'mypassword';

// 連接到 LDAP 伺服器(僅測試伺服器是否存在)
  $ldapconn = ldap_connect($ldapServer) or die('無法連接至 $domain');

// 以下兩行務必加上,否則 Windows AD 無法在不指定 OU 下,作搜尋的動作
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
  ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

if($ldapconn) { // 如果 LDAP Server存在
// binding to ldap server
$ldapbind = @ldap_bind($ldapconn, "$user@$domain", $password);
if($ldapbind){
echo "認證成功...";

// 以下用來抓回使用者的所有屬性
$filter = "(sAMAccountName=$user)"; // 用帳戶名來過濾
$result = @ldap_search($ldapconn, $dn, $filter); // 進行搜尋
if($result==false) {
echo "找不到使用者:$";
} else {
$data = ldap_get_entries( $ldapconn, $result );
echo $data ["count"] . " entries returned <br>";
     // 列印出所有使用者資訊
    for($i = 0; $i <= $data ["count"] - 1; $i ++) {
        for($j = 0; $j <= $data [$i] ["count"] - 1; $j ++) {
          echo "[$i:$j]=".$data [$i] [$j] . ": " . $data [$i] [$data [$i] [$j]] [0] . "\n<br>";
          }
        }  
}
} else {
echo "認證失敗...";
}
}
?>

這樣就可以得到使用者在LDAP Server上的資訊。

raw-image






avatar-img
1會員
18內容數
如果可以無所事事的放空,那才是真的幸福?
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
天空 的其他內容
PSTools 是由作者 Mark Russinovich 在 Microsoft Learn 發佈的 Windows 遠端管理公用程式 https://learn.microsoft.com/zh-tw/sysinternals/downloads/pstools PsTools 套件中包
Microsoft SQL Server 是非常常見的資料庫系統, 許多公司的系統都是用 MS SQL 來建置, 但 PHP 並沒有預設支援 MS SQL, 我仍需要安裝一些程式來讓 PHP 支援 MS SQL。 1.下載 Microsoft Drivers for PHP for SQ
2021年時除了開始投資台灣股市外,我也開了eToro帳戶。 eToro主打可以用信用卡小額入金,再加上開戶相當方便和快速,買賣不用手續費。 eToro更有一個相當有趣跟單系統,你可以選擇eToro上的任何一個投資明星,依該投資者的持股比例去跟單。 在2022年2月台灣金管會對eToro進
在人員眾多的公司服務,總是會有人把 Excel 上鎖卻又忘記這是誰上的鎖,密碼是什麼,密碼要找誰問的情況,於是只好學會如何把Excel密碼移除的技能。 Excel可以加上密碼的種類有: 1.開啟密碼、防寫密碼: 保護密碼:可以在開啟Excel時就驗證密碼,沒有輸入正確密碼不能打開。
寫在最前面: 投資有風險,入市須謹慎。您在進行任何投資決策時,應充分評估自身的風險承受能力,並深入了解所投資標的的相關資訊。過去的表現不代表未來的結果,請根據自身情況謹慎行事。切勿輕信市場資訊,理性投資,方能保障自身的資金安全。 這是已經執行3年的投資計畫: 開始執行日期是2021年11月08
家裡有三個長髮公主,每天頭髮都掉得到處都是。 用掃把掃的時候,頭髮就會四處是飛舞,超級花費力氣的。 於是就跑到大賣場挑選吸塵器。 總共花了4990-300=4690元(新台幣) 同型號線上比價: 樂天購物 4990元 東森購物 4990元 全聯線上購物 4690元 momo 沒有賣這
PSTools 是由作者 Mark Russinovich 在 Microsoft Learn 發佈的 Windows 遠端管理公用程式 https://learn.microsoft.com/zh-tw/sysinternals/downloads/pstools PsTools 套件中包
Microsoft SQL Server 是非常常見的資料庫系統, 許多公司的系統都是用 MS SQL 來建置, 但 PHP 並沒有預設支援 MS SQL, 我仍需要安裝一些程式來讓 PHP 支援 MS SQL。 1.下載 Microsoft Drivers for PHP for SQ
2021年時除了開始投資台灣股市外,我也開了eToro帳戶。 eToro主打可以用信用卡小額入金,再加上開戶相當方便和快速,買賣不用手續費。 eToro更有一個相當有趣跟單系統,你可以選擇eToro上的任何一個投資明星,依該投資者的持股比例去跟單。 在2022年2月台灣金管會對eToro進
在人員眾多的公司服務,總是會有人把 Excel 上鎖卻又忘記這是誰上的鎖,密碼是什麼,密碼要找誰問的情況,於是只好學會如何把Excel密碼移除的技能。 Excel可以加上密碼的種類有: 1.開啟密碼、防寫密碼: 保護密碼:可以在開啟Excel時就驗證密碼,沒有輸入正確密碼不能打開。
寫在最前面: 投資有風險,入市須謹慎。您在進行任何投資決策時,應充分評估自身的風險承受能力,並深入了解所投資標的的相關資訊。過去的表現不代表未來的結果,請根據自身情況謹慎行事。切勿輕信市場資訊,理性投資,方能保障自身的資金安全。 這是已經執行3年的投資計畫: 開始執行日期是2021年11月08
家裡有三個長髮公主,每天頭髮都掉得到處都是。 用掃把掃的時候,頭髮就會四處是飛舞,超級花費力氣的。 於是就跑到大賣場挑選吸塵器。 總共花了4990-300=4690元(新台幣) 同型號線上比價: 樂天購物 4990元 東森購物 4990元 全聯線上購物 4690元 momo 沒有賣這
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
AWS Systems Manager 建立 Activations Windows 使用PowerShell [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12' $code = "activation-code
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
工作上需要使用到LDAP,但因為公司提供的Server不便,因此在本機建立LDAP伺服器和使用者是一個解決方案。本文記錄了安裝ApacheDS和Apache Directory Studio,以及建立連線、使用者和組織的步驟。
Thumbnail
In today's digital age, a secure authentication system is a cornerstone for any online business.
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
Thumbnail
本篇,以我的個人的經驗! 個人的經驗! 個人的經驗!,簡單說明一下組織中機房管理遇到的一些事情(這方面我非專業,請參考看看),做點經驗分享。 雖然,本文是用「機房」這個概念作為重點來闡述,但是,請注意,若您的單位(辦公室)中,也是有主機伺服器的(就是【資產種類】欄位寫 電腦應用程式 ),您也應該要
Thumbnail
前言 該如何自架 docker registry 呢? docker registry 可以幫助我們做什麼事情呢? docker registry 是可以將我們打包好的 docker image,放置到 docker registry 上面,在我們開始要佈署服務時,從 docker registr
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
AWS Systems Manager 建立 Activations Windows 使用PowerShell [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12' $code = "activation-code
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
工作上需要使用到LDAP,但因為公司提供的Server不便,因此在本機建立LDAP伺服器和使用者是一個解決方案。本文記錄了安裝ApacheDS和Apache Directory Studio,以及建立連線、使用者和組織的步驟。
Thumbnail
In today's digital age, a secure authentication system is a cornerstone for any online business.
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
Thumbnail
本篇,以我的個人的經驗! 個人的經驗! 個人的經驗!,簡單說明一下組織中機房管理遇到的一些事情(這方面我非專業,請參考看看),做點經驗分享。 雖然,本文是用「機房」這個概念作為重點來闡述,但是,請注意,若您的單位(辦公室)中,也是有主機伺服器的(就是【資產種類】欄位寫 電腦應用程式 ),您也應該要
Thumbnail
前言 該如何自架 docker registry 呢? docker registry 可以幫助我們做什麼事情呢? docker registry 是可以將我們打包好的 docker image,放置到 docker registry 上面,在我們開始要佈署服務時,從 docker registr