2009-09-02 49 views
3

驗證用戶我想只有一個(教師)組的用戶能夠在我的網站訪問特定網頁。從某一組LDAP活動目錄

本頁面只是爲了通過教師可見。

在活動目錄中,我們稱之爲「教師」

下面一組的代碼片段我要認證通過LDAP/Active Directory用戶,但我只想authenicate用戶是教師組內的。

$ldap = ldap_connect("ldap.domain.com") 
if($bind = ldap_bind($ldap, $_POST['username'], $_POST['password'])) { 
    // log them in! 
} else { 
    // error message 
} 

回答

1

AD商店上組的成員列表,而不是小組成員的用戶,那麼你就必須取回CN =教師,OU =什麼的,DC = ACME,DC = COM對象成員列表,看看如果這個用戶被列出。如果他們是,那麼讓他們嘗試和約束,如果成功繼續下去。

我會測試組成員測試綁定之前,因爲綁定通常比查詢更加昂貴。

+0

將使用該ldap_search功能,搜索用戶指定組中並返回true? – Brad 2009-09-02 18:30:06

+1

@geoffc - 你確定嗎?我正在查看我的AD架構,並發現我的用戶具有某些memberOf屬性,這些屬於我所屬的組。我不確定這是否是微軟的主題,或者這是否是標準的LDAP實踐(試圖在此刻進行分析)。 – DougN 2009-12-08 17:05:21

+0

正式架構不支持它,截至上次我看。它可能看起來像它的存在,有時候,如果該工具通過檢查全局編錄或查詢所有組來僞造背景,則此用戶是其成員。 也許他們改變了呢? – geoffc 2009-12-08 19:57:48