簡體   English   中英

使用LDAP服務器驗證用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM