2017-08-09 51 views
1

我希望這裏有人能幫助我,Liferay通過LDAPS導入/導出用戶密碼

Liferay版本:Liferay 7.0-ga4。 Windows Server 2008 R2上的Microsoft Active Directory。

我設法安裝並配置CAS Server + LDAPS連接到我的Active Directory。 通過CAS對我的AD進行身份驗證運行良好,我可以將用戶,AD用戶組導入Liferay數據庫。

唯一不起作用的是密碼屬性:當我在實例設置部分點擊「測試LDAP用戶」時,除了密碼外,所有屬性都可以很好地顯示(屏幕名稱,名稱,郵件等) 。我試圖用unicodePwd或用userPassword來映射它,但沒有成功。

因此,我檢查了我的活動目錄(對於我的任何用戶)的「屬性編輯器」部分以查看這些屬性。 目前,unicodePwd和userPassword都是「」。

我的目標是能夠從我的Liferay門戶更新活動目錄用戶的密碼。

當我嘗試從Liferay門戶/帳戶設置更新用戶密碼時,它顯示「您的請求已成功完成」,但我的控制檯中有關於導出的錯誤:無法執行事務提交回調javax.naming.directory .NoSuchAttributeException:[LDAP:錯誤代碼16 - 00000057:LDAPErr:DSID-0C090C3E,註釋:屬性轉換操作中的錯誤,data0,v1db1_]。

據我瞭解,Liferay告訴我,它不能在Active Directory中導出這個新密碼,因爲沒有LDAP屬性與密碼匹配。但我不知道問題出在哪裏,如果它是Active Directory問題或Liferay屬性配置不正確。

如果有人有一個想法,請讓我知道。 預先感謝讀此消息,

問候,

阿克塞爾。

回答

0

謝謝您的時間和答案,

我已經解決了它。

我真的建議去檢查這個Microsoft AD + Liferay configuration web-page哪些描述你要做什麼以及如何解決問題。希望我能早點找到這種方法。

一方面:「@ Screen名稱:如果您只是將用戶導入Liferay,只需映射AD中的任何字段,例如」sAMAccountName「(」sAMAccountName「是用戶登錄名(pre-Windows 2000))「cn」,請確保該字段在AD中是唯一的,但是如果您還想將用戶導出到AD,只需使用cn映射屏幕名稱,就沒有第二選擇「 是的,我們發現在將用戶導出到AD中時,Liferay將始終採用您使用@ screen_name @映射的屬性來構建專有名稱並更新/創建用戶。所以顯然你必須將它與CN進行映射,否則導出無法完成。但是另一方面:「請注意,AD中的cn默認爲」First Name + Last Name「,它包含空格,所以它不能作爲屏幕名稱導入到liferay中。在AD中改變它「。 是的,因爲Liferay將拒絕導入具有空白或不同字符的用戶,因爲它們的LDAP CN屬性中實際上在LR數據庫中,它將成爲屏幕名稱。

從這裏,如果你已經配置好了你的ldaps連接,你可以將Liferay密碼屬性與unicodePwd進行映射,並且導出密碼運行良好。 (或者userPassword,取決於你的Active Directory配置)。

第二點是有問題的,因爲我無法在Active Directory中更改所有300+用戶的CN LDAP屬性以避免空白。所以我會繼續尋找解決方案。 (也許是一個鉤子?)。但在我的測試Active Directory上,它運行良好。

希望Liferay能夠在他們的LDAP配置頁面上添加一些說明。 希望能幫助別人有一天這個職位以及..

問候,

阿克塞爾。

1

如果我正確理解你並且你想使用CAS認證Liferay中的用戶,那麼你不必將密碼從AD映射到Liferay,因爲如果你只有CAS認證,Liferay不需要在數據庫中存儲密碼。只需在Liferay Setting中啓用CAS並正確配置即可。在密碼字段輸入cnsAMAccountName的LDAP設置中。 Liferay的應處理一切爲您

+0

嗨,謝謝你的回答。 是的,這實際上是我現在正在做的。 但我的問題是,我目前無法編輯/更新來自liferay門戶的用戶活動目錄密碼(帳戶設置 - >密碼)。 –

+0

也許您在Active DIrectory中的密碼屬性爲只讀或AD客戶端中不可見。也許Liferay錯誤地格式化用戶密碼和AD密碼策略拒絕它。也許密碼有空格/換行符/尾隨或前導空格。這個錯誤意味着一些屬性(不是必需的密碼)具有錯誤的格式。你還應該檢查密碼哈希算法是否與AD一樣。 –

+0

嗨,從一些研究中,我認爲userPassword&unicodePwd是ldap客戶端的只寫屬性,但只有在建立SSL佈局時纔是如此。基本上只有Active Directory域控制器可以讀取/讀取散列,這允許通過綁定進行CAS認證。 (CAS詢問是否存在用戶名+密碼,AD回答是或否,但不讓CAS讀取密碼)。無論如何,我認爲我的主要問題是找到我的Active Directory存儲用戶密碼的位置以及如何更新它們。 –