[英]Authenticate users with LDAP server
我正在使用LDAP登錄模塊通過混合應用程序中的LDAP服務器對用戶進行身份驗證。 在authenticationConfig.xml中,我配置了loginModule參數。
<parameter name="ldapSecurityPrincipalPattern"
value="uid={username}, cn=users,dc=kadrlar,dc=uz"/>
<parameter name="ldapSearchFilterPattern"
value="(uid={username})"/>
<parameter name="ldapSearchBase"
value="dc=kadrlar,dc=uz"/>
身份驗證工作正常。 這是用戶的一部分。
我在LDAP中有一些用戶,必須在其中使用ldapSecurityPrincipalPattern
,其value="uid={username}, cn=users,dc=core,dc=kadrlar,dc=uz"/>
所有其他參數都相同。 這是用戶的另一部分。
我怎么能點ldapSecurityPrincipalPattern的價值,能夠在不改變的值來驗證從用戶的兩個部分的任何用戶ldapSecurityPrincipalPattern
?
ldapSecurityPrincipalPattern
用於告訴LDAP適配器需要哪些標識信息才能成功認證用戶。
例如,如果您的LDAP服務器設置為使用電子郵件,則您的模式將為{username}@domain.com
。 您的問題等同於詢問如何使適配器對{username}@google.com
和{username}@stackoverflow.com
都進行身份驗證,這顯然是不可能的,因為LDAP適配器不具有處理多次嘗試的功能,並且使用另一個安全模式處理連接失敗和重試所涉及的邏輯。
一種可能的解決方案是將模式設置為{username}
,並迫使最終用戶傳遞包括域在內的完整電子郵件地址。
同樣,在您的情況下,您可以將ldapSecurityPrincipalPattern
設置為{username}
,並在實現中引入一些邏輯,該邏輯采用最終用戶的登錄名,並決定是否設置username="uid={login}, cn=users,dc=kadrlar,dc=uz"
或username="uid={login}, cn=users,dc=core,dc=kadrlar,dc=uz"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.