經過一番有些掙扎我配置我wildfly的standalone.xml認證agains的LDAP服務器:使用Picketlink和Wildfly爲LDAP服務器上進行身份驗證
<security-domain name="LDAPAuth" cache-type="default">
<authentication>
<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
<module-option name="java.naming.provider.url" value="ldap://URL:389"/>
<module-option name="bindDN" value="username"/>
<module-option name="bindCredential" value="password"/>
<module-option name="baseCtxDN" value="OU=UsersDC=domain,DC=com"/>
<module-option name="baseFilter" value="(sAMAccountName={0})"/>
<module-option name="allowEmptyPasswords" value="false"/>
</login-module>
</authentication>
</security-domain>
我也配置了我的jboss-網:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns:cr="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.jboss.com/xml/ns/javaee
http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
<cr:context-root>/projectName</cr:context-root>
<security-domain>LDAPAuth</security-domain>
<use-jboss-authorization>true</use-jboss-authorization>
</jboss-web>
和我的web.xml:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>LDAPAuth realm</realm-name>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/error.xhtml</form-error-page>
</form-login-config>
</login-config>
...
,一切工作正常。
下一步是使用PicketLink。但是我找不到如何配置PicketLink來使用我的安全域。
我可以找到用於以編程方式建立LDAP連接的示例和教程,以及如何設置PicketLink以便與身份和服務提供程序一起工作。 但據我所知,我的使用案例包含身份提供商和服務提供商?!?所以沒有我想要連接的專用服務器。 LDAP查詢由我的wildfly服務器處理。在每個例子中,我可以發現兩臺服務器都是分離的機器。我瞭解錯誤嗎? 經過數小時的'谷歌'我越來越困惑。
我加
<valve>
<class-name>org.picketlink.identity.federation.bindings.tomcat.idp.IDPWebBrowserSSOValve</class-name>
</valve>
但我不知道該怎麼configurate的picketlink.xml。什麼是我的身份提供商的網址? 我相信只有一個部分我明白錯誤。有人能幫我嗎? :-D
只是一個問題,你的答案是:OP使用WildFly,所以有沒有 「閥門」 在的jboss-web.xml中。我在自己的工作中發現,這使得實施變得更加困難。大多數文檔都參考了閥門配置,然後沒有提及任何相應的WildFly處理程序實現。例如,目前還不清楚如何使用標準SAML元數據文件在WildFly上配置picketlink實現 - 您可以添加一個閥門來引用元數據文件,但不適用於WildFly。 – Kingand