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
前面已經安裝好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
前面已經安裝好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