1、AD是LDAP的一種產品,那安裝了AD之後,就可以實現LDAP認證了么?還是需要安裝LDAP伺服器?如何安裝?
已經可以實現LDAP認證了
2、認證系統,如活動目錄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,對用戶的計費開始,同時用戶可以進行自己的相關操作。
3、簡述域控制器,獨立伺服器,成員伺服器的區別與關系
域控也叫dc他主要負責整個域樹或域林的接入管理,成員伺服器在域中才是真正提供服務的。至於獨立伺服器,不包括在域中,是以外的伺服器,也就不需要通過dc驗證。
4、ldap c api能和ad server連接嗎
介紹
這篇文檔定義了 LDAP API (C語言版)。它使用方便,功能強大,大致內容有以下幾個方面:
簡單瀏覽模型
應用程序怎樣使用API去獲取LDAP信息
詳細介紹API 調用函數
舉例使用API 及部分樣本代碼
下面我們分別介紹。
簡單瀏覽LDAP模型
LDAP 是以client-server 模型為基礎的,在此模型中,客戶機可以建立與LDAP伺服器的連接,從而發送請求,接收應答。
LDAP的信息模型是基於實體(entry)的,每個實體都代表著某種對象類型的特例。比如組織機構、用戶、網路、計算機等。每一種實體又包含有許多屬性,每種屬性又由它的實體所代表的對象的類型決定。
實體用樹型結構組織再一起,通常根據政治上的,地理學的,和組織的關系進行分類。每一個實體都有唯一的名字通過它的RDN與它的同屬實體相連,至於RDN及DN的命名和使用在《畢業設計報告(一)》中已經介紹過了,這里不在詳述。
三、LDAP API使用瀏覽
一個應用使用LDAP API 的一般步驟:
建立與LDAP server的連接。如使用函數調用 ldap_open()等。
核對身份 ldap server 和(或)X.500 DSA,如可以使用ldap_bind().
執行某些LDAP操作,返回某些結果。
最後斷開連接。
API的操作可以被同步執行,也可以非同步執行。同步的函數調用以_s結尾。例如:同步查找操作可以通過調用ldap_search_s()來完成。非同步調用將返回一個result,用來表示操作結果(如,常量LDAP_SUCCESS或者其它錯誤代碼)。非同步調用還將返回初始化操作的消息id。非同步操作可以通過調用ldap_abandon()而拋棄。
結果和錯誤信息被作為一個不透明的結構LDAPMessage 返回,函數調用的目的就是分析這一結構,進一步研究被返回的實體和屬性等。有時也負責解釋這些屬性。下面我們將詳細介紹API函數調用。
四、 LDAP API函數調用
這里所有的調用都含有一個「連接手柄」(connection handle)它指向關於每個連接的信息的LDAP結構。許多調用的返回結果都是LDAPMessage結構形式。下面我們會描繪出這些必要的結構。
1. 建立連接
ldap_open() 建立一個同 LDAP server的連接。有關定義如下:
LDAP *ldap_open( char *hostname, int portno );
參數說明:
hostname 空格分開的主機名字表或點分開的LDAP server 可以連接到的主機的IP地址串。主機試著依次連接表中列出的每個名字直到某個連接成功時才停止。
portno 欲連接的TCP埠號。如果省略則為 LDAP_PORT.
如果連接不能建立,則返回值為NULL。
2. Authenticating to the directory
ldap_bind() 和它的同類派生常用來識別目錄:
int ldap_bind( LDAP *ld, char *dn, char *cred, int method );
int ldap_bind_s( LDAP *ld, char *dn, char *cred, int method );
int ldap_simple_bind( LDAP *ld, char *dn, char *passwd );
int ldap_simple_bind_s( LDAP *ld, char *dn, char *passwd );
int ldap_kerberos_bind( LDAP *ld, char *dn );
int ldap_kerberos_bind_s( LDAP *ld, char *dn );
參數說明:
ld 連接手柄;
dn 被bind的實體名;
cred 識別證書;
method LDAP_AUTH_SIMPLE, LDAP_AUTH_KRBV41, 或
LDAP_AUTH_KRBV42, 用以表明要使用的識別方法。
passwd 為 ldap_simple_bind()而准備的口令,並與實體中的
userPassword 屬性比較。
3. Closing the connection
ldap_unbind() 用來解開同目錄的聯系並斷開建立的連接。
int ldap_unbind( LDAP *ld );
參數說明:
ld 連接手柄;
通過調用ldap_unbind() ,則ld 連接手柄就無效了。
4. Searching
ldap_search() 等用來查找 LDAP目錄,返回與實體匹配的屬性。
struct timeval {
long tv_sec;
long tv_usec;
};
int ldap_search(
LDAP *ld,
char *base,
int scope,
char *filter,
char *attrs[],
int attrsonly
);
int ldap_search_s(
LDAP *ld,
char *base,
int scope,
char *filter,
char *attrs[],
int attrsonly,
LDAPMessage **res
);
int ldap_search_st(
LDAP *ld,
char *base,
int scope,
char *filter,
char *attrs[],
int attrsonly,
struct timeval *timeout,
LDAPMessage **res
);
參數說明:
ld 連接手柄;
base 開始尋找的基礎對象的DN
Scope :LDAP_SCOPE_BASE,LDAP_SCOPE_ONELEVEL, 或LDAP_SCOPE_SUBTREE,用來表明查找的范圍。
filter :是一個表示LDAP查詢的filter,是字元串表示,它的格式
定義在RFC 1588中。
attrs :一系列指針字元用於表徵查找返回屬性
attrsevly:布爾參數:0表示返回屬性類型和值;非0,僅返回類型。
timeout 為 ldap_search_st() 而說明當地查找操作的超時值。
res 為同步調用准備的結果參數,記錄查找完成的結果。
在ld連接手柄中有三個域控制查找操作的進行。它們是:
ld_sizelimit 查找實體實體返回的個數,如果為零,表示無限制。
ld_timelimit 查找時間限制,如果為零,表示無限制。
ld_deref LDAP_DEREF_NEVER,LDAP_DEREF_SEARCHING,
LDAP_DEREF_FINDING,LDAP_DEREF_ALWAYS之一。
用來說明再查找中別名怎麽處理。
LDAP_DEREF_NEVER: 在搜索中或者查找那基礎對象時
做不復引用別名。
LDAP_DEREF_SEARCHING: 在基礎對象的附屬的搜索
中而不是查找那基礎對象時做復引用別名。
LDAP_DEREF_FINDING: 在基礎對象而不是其附屬的
搜索中做復引用別名。
LDAP_DEREF_ALWAYS: 在搜索中或者查找那基礎對
象時做都復引用別名。
一個非同步查找通過調用ldap_search()進行初始化.該操作返
回本初始化查找的消息id,要想得到這個結果,可以調用ldap_result().
一個同步查找可以調用ldap_search_s() 或 ldap_search_st()來
實現.除了 ldap_search_st() 多了一個參數描述查找時限外,這兩個
函數的功能基本是一樣的。他們都返回一個查找結果,是LDAP
_SUCCESS 或一些錯誤信息(看下面的錯誤處理Error Handling).
查找操作返回的實體(如果有)必包含一個參數res .這個參數對調
用者來說是不透明的。Entries, attributes, values等等都必須調用下面
的分析程序才能進行分析。包含參數 res 的 結果只有不再使用且調
用 ldap_msgfree()時才被釋放掉。
5. Reading an entry
LDAP 不直接支持讀操作,但此操作可以基於實體的DN的查找來仿效。其參數設置如下:
scope LDAP_SCOPE_BASE,
filter "(objectclass=*)".
則attrs 包含有返回的屬性表。
6. Listing the children of an entry
LDAP 也不直接支持表操作,同上我們有:
scope LDAP_SCOPE_ONELEVEL,
filter "(objectclass=*)".
則attrs 就包含了要返回的每個子女實體的屬性表。
7. Modifying an entry
ldap_modify() 和 ldap_modify_s() 常用來修改現存的LDAP
實體。有關定義如下:
typedef struct ldapmod {
int mod_op;
char *mod_type;
union {
char **modv_strvals;
struct berval **modv_bvals;
} mod_vals;
} LDAPMod;
#define mod_values mod_vals.modv_strvals
#define mod_bvalues mod_vals.modv_bvals
int ldap_modify( LDAP *ld, char *dn, LDAPMod *mods[] );
int ldap_modify_s( LDAP *ld, char *dn, LDAPMod *mods[] );
參數說明:
ld 連接手柄;
dn 被修改的實體名;
mods 修改表,填入修改方式,如ADD、DELETE等。
LDAPMod 結構中的域解釋如下:
mod_op 修改操作,它可以是LDAP_MOD_ADD,
LDAP_MOD_DELETE,或LDAP_MOD_REPLACE.
這個域也用來表明包含在mod_vals union中的值的類
型.
mod_type 被修改的屬性的類型。
mod_vals 需要增加、刪除或替換的值。
ldap_modify_s() 返回的是來自修改操作的LDAP 錯誤代碼,可以
調用ldap_perror()及其一類的函數來解釋。
ldap_modify() 返回的是它對請求初始化的消息 id ,或者是代表錯誤的值 -1 ,這個操作結果可以通過調用 ldap_result()來獲得。
Modifying the RDN of an entry
ldap_modrdn()和 ldap_modrdn_s() 常用來改變LDAP 實體的名字。
int ldap_modrdn(
LDAP *ld,
char *dn,
char *newrdn,
int deleteoldrdn
);
int ldap_modrdn_s(
LDAP *ld,
char *dn,
char *newrdn,
int deleteoldrdn
);
5、請問一下WINDOWS SERVER 2012 上建AD域控,也可以自帶安裝LDAP服務嗎?還要要安裝第三方的LDAP服務?謝謝
看MOSS2007 部署圖示指南說需先建域我2003 server沒建域業安裝wss3.0 sp2請問誰能說明底域控制器必須要
6、如何讓ad伺服器做samba的認證伺服器
查看新版本
yum -y install autoconf automake libtool gcc gcc-c++ libstdc++-devel python python-devel gnutls gnutls-devel python-libs libacl-devel libacl-devel git gdb ncurses ncurses-devel openldap openldap-devel
cd /usr/local/src
wget
tar zxvf samba-4.2.2.tar.gz
cd samba-4.2.2
./configure
make
make install
groupadd samba
useradd -c "samba" -m -g goodman -p goodpassword sambatest
echo sambapassword>/root/p.txt
echo sambapassword>>/root/p.txt
cat /root/p.txt|pdbedit -a sambatest -t
/etc/init.d/smb restart
egrep -v '#|;|^$' /etc/samba/smb.conf
/etc/init.d/smb start
7、怎樣填寫設置LDAP賬戶的伺服器和BaseDN
BASEDN可參見LDAP賬戶的伺服器的slapd.conf里的相關配置.
8、ldap有幾種,如windows ad域 ibm的l
系統要求
要按本文介紹的步驟進行配置,您需要一個 IBM LDAP 客戶端、AIX 和配置了 LDAP 協議的 Microsoft® Windows Active Directory 2000/2003 伺服器。
Netgroups
Netgroups 可以使用經過組織的名稱來方便地標識主機組、人或域,以進行訪問控制(請參見 Netgroups 側欄)。您可以使用 netgroups 來限制對遠程登錄和 Shell 的訪問。網路組存儲於 Windows 2000/2003 Microsoft Active Directory 伺服器中。您可以將 Windows Active Directory 伺服器配置為 IBM LDAP 客戶端的 LDAP 伺服器。這些組中的用戶可以訪問 IBM LDAP 客戶端系統。
例如,假定您有一台擁有大量用戶的 LDAP 伺服器,其中配置了幾個 LDAP 客戶端,並且您希望允許一定數量用戶對這些 LDAP 客戶端進行訪問。您必須確保在 Netgroups 中定義這些用戶。
IBM LDAP 使用 AIX 5.3 TL 05 或更高的版本提供對 Windows 2000/2003 Microsoft Active Directory 伺服器的支持。請閱讀 IBM 紅皮書匯總中的 Integrating AIX 5L into Heterogeneous LDAP Environments(請參見參考資料),以獲得使用 Microsoft Active Directory 伺服器配置 IBM LDAP 客戶端的所有配置細節。
配置
執行下面的步驟,以便使用 Microsoft Active Directory 伺服器在 IBM LDAP 客戶端上配置 Netgroups:
AIX 的 /etc/netgroup 文件中定義了需要對 IBM LDAP 客戶端計算機進行訪問的組和用戶。/etc/netgroup 文件定義了網路范圍內的組。這個文件里的每一行定義了一個組,並按如下所示的格式進行格式化:
Group name (hostname, username, domain name)
請看以下示例: testgroup (znim.austin.ibm.com, user1, test)
testgroup1 (, user2,)
請不要在上面的條目中使用短橫線(-)。
將 /etc/netgroup 映射文件復制到 Windows 2000/2003 Active Directory 伺服器。