文章目錄
- 一、背景
- 二、搭建AD域服務器步驟
- 三、生成可供java程序使用的keystore文件
- 四、導出某用戶的keytab文件
- 五、主機配置hosts文件
- 六、主機確認是否能ping通
- 本人其他相關文章鏈接
一、背景
親測可用,之前搜索了很多博客,啥樣的都有,就是不介紹報錯以及配置用處,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起來,因此記錄這個。
項目背景
:公司項目當前采用http協議+shiro+mysql的登錄認證方式,而現在想支持ldap協議認證登錄然后能夠訪問自己公司的項目網站。
舉例說明
:假設我們公司有自己的門戶網站,現在我們收購了一家公司,他們數據庫采用ldap存儲用戶數據,那么為了他們賬戶能登陸我們公司項目所以需要集成,而不是再把他們的賬戶重新在mysql再創建一遍,萬一人家有1W個賬戶呢,不累死了且也不現實啊。
需要安裝AD+kerberos,且ldap和kerberos安裝在同一臺服務器上,當前版本如下:
windows server 2016
服務器IP:10.110.25.48
我公司電腦室windows10的,我是VietualBox安裝的windows server 2016,類似安裝個虛擬機,然后去安裝AD。
二、搭建AD域服務器步驟
1.在需要安裝AD域控制器的電腦上打開服務器管理器,點擊添加角色和功能
2.打開添加角色和功能向導,點擊下一步
3.安裝類型選擇基于角色或基于功能的安裝,點擊下一步
4.服務器選擇從服務器池中選擇服務器,再選中池中的本地服務器,點擊下一步
5.服務器角色選擇Active Directory域服務,根據提示進行安裝
6.運行AD DS(Active Directory域服務的簡稱)部署向導,打開本地服務器的服務器管理器,點擊通知-將此服務器提升為域控制器
7.打開AD DS的部署向導,由于我們這里是部署新的AD控制器,所以部署配置選擇添加新林,把根域名設置成testldap.com(自定義),點擊下一步
8.設置域密碼,點擊下一步
9.根據提示,完成配置
10.添加Active Directory 證書服務角色
11.選擇角色服務,根據提示進行安裝
12.配置域證書,點擊通知-配置目標服務器上的Active Directory 證書服務
13.勾選證書頒發機構,點擊下一步
14.指定CA的加密,默認即可。點擊下一步
15.指定CA名稱,點擊下一步
16.指定有效期,這里設置為5年,點擊下一步
17.指定CA數據庫的位置,默認即可.點擊下一步
18.確認證書的配置,點擊配置.點擊下一步
19.配置完成后,重啟下服務器,在證書頒發機構中可以看到給域控頒發的證書
三、生成可供java程序使用的keystore文件
1.導出證書,供客戶端連接使用,舉例命名為adserver.cer
2.執行以下命令,使用上一步驟導出的證書文件生成供java 程序使用的keystore文件
keytool -import -trustcacerts -alias ldapssl -file adserver.cer -keystore adserver_keystore.jks
提示輸入密碼時,填入指定密碼:ldap@1993
四、導出某用戶的keytab文件
1.在AD域服務器的服務器管理器-工具-Active Directory 用戶和計算機 管理面板中新建一個測試用戶testuser5
2.在AD域服務器中以管理員權限打開命令提示符程序,執行以下命令生成keytab文件
ktpass /out C:\testuser5.keytab /princ testuser5@TESTLDAP.COM /mapuser TESTLDAP\testuser5 /crypto all /ptype KRB5_NT_PRINCIPAL /pass *
參數釋義:
/out
后參數為keytab文件的輸出路徑和文件名/princ
kerberos主體名,測試過程可約定為 賬號@域名/mapuser
域賬號映射/crypto
加密類型,可設置為all,也可按需配置
執行命令后根據提示輸入賬號的密碼,完成keytab文件創建。
五、主機配置hosts文件
打開C:\Windows\System32\drivers\etc\hosts文件添加內容
10.110.25.48 testldap.com
六、主機確認是否能ping通
執行命令,如果下方兩種都能ping通,則證明自己項目能訪問AD域了。
# ping testldap.com
或者
# ping 10.110.25.48
本人其他相關文章鏈接
1.Centos7.9安裝openldap
2.Centos7.9安裝kerberos
3.Openldap集成Kerberos
4.Centos7.9安裝phpldapadmin
5.java連接ldap實現用戶查詢功能
6.java連接kerberos用戶認證
7.javax.security.auth.login.LoginException: Unable to obtain password from user
8.javax.security.auth.login.LoginException: null (68)
9.javax.security.auth.login.LoginException: Message stream modified (41)
10.javax.security.auth.login.LoginException: Checksum failed
11.javax.security.auth.login.LoginException: No CallbackHandler available to garner authentication info
12.javax.security.auth.login.LoginException: Cannot locate KDC
13.javax.security.auth.login.LoginException: Receive timed out
14.java: 無法訪問org.springframework.context.ConfigurableApplicationContext
15.LDAP: error code 34 - invalid DN
16.LDAP: error code 32 - No Such Object
17.java: 無法訪問org.springframework.ldap.core.LdapTemplate
18.windows server2016搭建AD域服務器
19.java連接AD(Microsoft Active Directory)模擬用戶登錄認證