ldap認證
㈠ LDAP是什麼
LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol,一般都簡稱為LDAP。它是基於X.500標準的,但是簡單得多並且可以根據需要定製。
LDAP由互聯網工程任務組(IETF)的文檔RFC定義,使用了描述語言ASN.1定義。最新的版本是版本3,由RFC 4511所定義。例如,一個用語言描述的LDAP的搜索如:「在公司郵件目錄中搜索公司位於那什維爾名字中含有「Jessy」的有郵件地址的所有人。請返回他們的全名,電子郵件,頭銜和簡述。」
(1)ldap認證擴展閱讀:
LDAP-開發方式
如果需要開發一種提供公共信息查詢的系統一般的設計方法可能是採用基於WEB的資料庫設計方式,即前端使用瀏覽器而後端使用WEB伺服器加上關系資料庫。後端在Windows的典型實現可能是Windows NT + IIS + Acess資料庫或者是SQL SERVER,IIS和資料庫之間通過ASP技術使用ODBC進行連接,達到通過填寫表單查詢數據的功能;
㈡ 什麼是LDAP認證
LDAP是底層資料庫,提供用戶信息用的,並沒有認證功能,認證功能是又Radius完成的,Radius通過查詢LDAP資料庫,判斷用戶信息是否匹配。
Ldap是個類似月資料庫的東西:
不少LDAP開發人員喜歡把LDAP與關系資料庫相比,認為是另一種的存貯方式,然後在讀性能上進行比較。實際上,這種對比的基礎是錯誤的。LDAP和關系資料庫是兩種不同層次的概念,後者是存貯方式(同一層次如網格資料庫,對象資料庫),前者是存貯模式和訪問協議。LDAP是一個比關系資料庫抽象層次更高的存貯概念,與關系資料庫的查詢語言SQL屬同一級別。LDAP最基本的形式是一個連接資料庫的標准方式。該資料庫為讀查詢作了優化。因此它可以很快地得到查詢結果,不過在其它方面,例如更新,就慢得多。
㈢ ldap管理域的驗證方式有哪些
要實現如上功能,網上大部分都是用Samba and Winbind結合做的,當然也是可以實現,但是覺得很麻煩,所以不回想採用,答經過努力查找了大量的資料和CU上一高手的指點,終於成功實現了squid通過LDAP來與域認證測試.可以不用windows adam.目前在進一步的研究中.
兩種不同的方案實現:
1 使用NTLM或Winbind驗證整合Squid及Samba3實現AD域用戶認證
2使用Linux LDAP整合Squid 通過Windows AD域進行身份驗證
㈣ ldap和kerberos的區別
使用 LDAP 和 Kerberos
在使用 Kerberos 時,在您的本地網路中分發用戶信息(如用戶 ID、組、主目錄)的一種方法就是使用 LDAP。這需要一種強大的身份驗證機制來防止包被竊取以及他攻擊。一種解決方案是將 Kerberos 也用於 LDAP 通信。
OpenLDAP 通過 SASL(簡單身份驗證會話層)實現了大部分身份驗證功能。SASL 基本上是一種用於身份驗證的網路協議。SASL 實施是 cyrus-sasl,它支持許多不同的身份驗證方法。Kerberos 身份驗證是通過 GSSAPI(通用安全服務 API) 執行的。默認情況下,不安裝用於 GSSAPI 的 SASL 插件。請使用 rpm -ivh cyrus-sasl-gssapi-*.rpm 來手動安裝它。
為了使 Kerberos 能夠綁定到 OpenLDAP 伺服器,請創建一個主體 ldap/earth.example.com 並將其添加到 keytab:
默認情況下,LDAP 伺服器 slapd 以用戶和組 ldap 的身份運行,但只有 root 用戶才能讀取 keytab 文件。因此,要麼更改 LDAP 配置以便使伺服器以 root 用戶身份運行,要麼使組 ldap 可讀取 keytab 文件。如果 /etc/sysconfig/openldap 中的 OPENLDAP_KRB5_KEYTAB 變數中指定了 keytab 文件並且 OPENLDAP_CHOWN_DIRS 變數設置成 yes(這是默認設置),則由 OpenLDAP 啟動腳本 (/etc/init.d/ldap) 自動執行後一項操作。如果 OPENLDAP_KRB5_KEYTAB 保留為空,則使用 /etc/krb5.keytab 下的默認 keybab 文件,並且您必須如以下描述的那樣自己調整優先順序。
要以 root 用戶身份運行 slapd,請編輯 /etc/sysconfig/openldap。通過在 OPENLDAP_USER 和 OPENLDAP_GROUP 變數前放置一個注釋字元來禁用它們。
要使 keytab 對組 LDAP 可讀,請執行
chgrp ldap /etc/krb5.keytab
chmod 640 /etc/krb5.keytab
第三個方案(可能是最好的解決方案)是指示 OpenLDAP 使用特殊的 keytab 文件。要完成此操作,啟動 kadmin 然後在添加主體 ldap/earth.example.com 後輸入以下命令:
ktadd -k /etc/openldap/ldap.keytab ldap/[email protected]
然後,在 shell 上運行:
chown ldap.ldap /etc/openldap/ldap.keytab
chmod 600 /etc/openldap/ldap.keytab
要指示 OpenLDAP 使用不同的 keytab 文件,在 /etc/sysconfig/openldap 中更改以下變數:
OPENLDAP_KRB5_KEYTAB="/etc/openldap/ldap.keytab"
最後,使用 rcldap restart 重啟動 LDAP 伺服器。
將 Kerberos 身份驗證與 LDAP 一起使用
現在應該可以自動將 ldapsearch 等工具與 Kerberos 認證一起使用。
ldapsearch -b ou=people,dc=example,dc=com '(uid=newbie)'
SASL/GSSAPI authentication started
SASL SSF: 56
SASL installing layers
[...]
# newbie, people, example.com
dn: uid=newbie,ou=people,dc=example,dc=com
uid: newbie
cn: Olaf Kirch
[...]
正如您所看到的,ldapsearch 列印一條消息,表示它已經啟動 GSSAPI 身份驗證。下一條信息無疑頗具隱蔽性,它實際上表明了安全強度系數(縮寫為 SSF)是 56(值 56 有些隨意,之所以選擇這個數字,很可能因為它是 DES 加密密鑰中的位數)。這里要告訴您的是 GSSAPI 認證是成功的,並且該加密要用於為 LDAP 連接提供集成保護和機密性。
在 Kerberos 中,身份驗證永遠是相互的。這意味著不僅您向 LDAP 伺服器身份驗證自己,而且 LDAP 伺服器本身也向您身份驗證。這意味著您是與所需的 LDAP 伺服器而不是攻擊者設置的假冒服務進行通訊。
Kerberos 身份驗證和 LDAP 訪問控制
現在,允許每個用戶修改他們的 LDAP 用戶記錄的登錄殼層屬性。假定在您的綱要中 joe 用戶的 LDAP 項位於 uid=joe,ou=people,dc=example,dc=com,請在/etc/openldap/slapd.conf 中設置以下訪問控制:
# This is required for things to work _at all_
access to dn.base="" by * read
# Let each user change their login shell
access to dn="*,ou=people,dc=example,dc=com" attrs=loginShell
by self write
# Every user can read everything
access to *
by users read
第 2 個語句授予已通過身份驗證的用戶對他們自己的 LDAP 項的 loginShell 屬性進行寫訪問的許可權。第 3 個語句授予所有已通過身份驗證的用戶對整個 LDAP 目錄進行讀訪問的許可權。
這里還有個不太重要的方面未明確,即 LDAP 伺服器如何能夠得知 Kerberos 用戶 [email protected] 與 LDAP 判別名 uid=joe,ou=people,dc=example,dc=com 相對應。這種映射必須使用 saslExpr 指令進行手動配置。在本例中,則是將以下語句添加到 slapd.conf:
authz-regexp
uid=(.*),cn=GSSAPI,cn=auth
uid=$1,ou=people,dc=example,dc=com
要了解它的工作原理,您需要知道,當 SASL 身份驗證用戶時,OpenLDAP 將使用 SASL 為它指派的名稱(如 joe)和 SASL 功能的名稱 (GSSAPI) 構成一個判別名。結果是uid=joe,cn=GSSAPI,cn=auth。
如果已經配置了 authz-regexp,它會將第一個參數用作常規表達式來檢查從 SASL 信息構成的判別名。如果此常規表達式匹配,就用 authz-regexp 語句的第 2 個參數替換此名稱。佔位符 $1 被替換為 (.*) 表達式所匹配的子字元串。
可能有更復雜的匹配表達式。如果您的目錄結構或綱要更加復雜(其中用戶名不是判別名的一部分),則甚至可以使用搜索表達式來將 SASL 判別名映射為用戶判別名。
㈤ LDAP認證——如何構造bind DN
binddn需要根據你的數據結構來構造。每個系統都是獨特的。
二者之間有一個簡單關系,binddn里一定包含basedn
Search Attribute是指你要檢索的屬性。
㈥ 如何在LDAP中驗證用戶名的密碼
一般用戶的屬性裡面有個userpassword屬性,裡面存儲的是密碼,你讓用戶輸入的密碼和裡面存儲的密碼進行比對,如果一樣就驗證過了。不過這個屬性裡面存儲的密碼一般都經過散列演算法運算,你用同樣的散列演算法把用戶輸入的密碼也運算一下即可。
㈦ Windows綜合認證與LDAP認證有什麼區別
LDAP作為一個統一認證的解決方案,主要的優點就在能夠快速響應用戶的查找需求。比如用戶的認證,這可能會有大量的並發。
如果用資料庫來實現,由於資料庫結構分成了各個表,要滿足認證這個非常簡單的需求,每次都需要去搜索資料庫,合成過濾,效率慢也沒有好處。
㈧ 認證系統,如活動目錄AD、LDAP、Radius這些,究竟是做什麼用的。謝謝你。
AD、LDAP提供目錄服務,即類似於企業、人員黃頁的東西,用戶和組織的信息都被存放在上面,查找起來十分快捷,也可以理解成一種特殊的資料庫。
RADIUS是一種C/S結構的協議,它的客戶端最初就是NAS(Net Access Server)伺服器,現在任何運行RADIUS客戶端軟體的計算機都可以成為RADIUS的客戶端。RADIUS協議認證機制靈活,可以採用PAP、 CHAP或者Unix登錄認證等多種方式。RADIUS是一種可擴展的協議,它進行的全部工作都是基於Attribute-Length-Value的向量進行的。RADIUS也支持廠商擴充廠家專有屬性。用戶接入NAS,NAS向RADIUS伺服器使用Access-Require數據包提交用戶信息,包括用戶名、密碼等相關信息,其中用戶密碼是經過MD5加密的,雙方使用共享密鑰,這個密鑰不經過網路傳播;RADIUS伺服器對用戶名和密碼的合法性進行檢驗,必要時可以提出一個Challenge,要求進一步對用戶認證,也可以對NAS進行類似的認證;如果合法,給NAS返回Access-Accept數據包,允許用戶進行下一步工作,否則返回Access-Reject數據包,拒絕用戶訪問;如果允許訪問,NAS向RADIUS伺服器提出計費請求Account- Require,RADIUS伺服器響應Account-Accept,對用戶的計費開始,同時用戶可以進行自己的相關操作。
㈨ 用LDAP伺服器來作用戶許可權認證有什麼優勢相比單純用資料庫來存儲用戶信息。
這就需要說說LDAP的主要優勢是什麼:
1、查詢速度快,賊快,特別是在大數據量的情況下
2、分布式部署方便,遠不是資料庫所能比的
最大缺點是修改速度慢、不支持事務。
所以需要用資料庫做日常管理和存儲,用ldap做查詢認證
㈩ LDAP到底該怎麼驗證
Linux類的伺服器,都有一個叫ldapclient的程序。設置ldapclient就可以。