2016-05-23 114 views
0

經過一番有些掙扎我配置我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

回答

0

什麼是我的身份提供商的網址?

該URL將是您選擇作爲門戶/ IDP管理SAML SSO響應和請求並將它們發送到應用程序的應用程序。 IDP將包含一個picketlink.xml文件,每個應用程序(在Picketlink中名爲SP)也將包含一個picketlink.xml文件(放置在WEB-INF-Folder中)。

看看這裏的入門項目picketlink: https://github.com/jboss-developer/jboss-picketlink-quickstarts

有用於picketlink這樣的例子很多...

Picketlink文件(如果你通過閱讀章節你會得到了解IDP和SP定義以及配置文件): https://docs.jboss.org/author/display/PLINK/Identity+Provider+Configuration

Picketlink IDP - Simple Config:

<PicketLink xmlns="urn:picketlink:identity-federation:config:2.1"> 
    <PicketLinkIDP xmlns="urn:picketlink:identity-federation:config:2.1"> 
     <IdentityURL>http://localhost:8080/idp/</IdentityURL> 
     <Trust> 
      <Domains>locahost,mycompany.com</Domains> 
     </Trust> 
    </PicketLinkIDP> 
    <Handlers xmlns="urn:picketlink:identity-federation:handler:config:2.1"> 
     <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2IssuerTrustHandler" /> 
     <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2LogOutHandler" /> 
     <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler" /> 
     <Handler class="org.picketlink.identity.federation.web.handlers.saml2.RolesGenerationHandler" /> 
    </Handlers> 
</PicketLink> 

爲您的項目(S),你將有:

  • IDP /門戶應用程序(戰爭,...)

    • WEB-INF picketlink.xml
    • WEB-INF jboss-web。與IDP閥
    • XML在IDP你可以使用你想每次登錄模塊(默認在JBoss中-web.xml中指定的)
  • SP/SSO一些啓用的應用程序

    • WEB-INF picketlink.xml
    • WEB-INF的jboss-web.xml中與SP閥
    • 您所使用的登錄模塊(org.picketlink.identity.federation.bindings的安全域的SP側。 wildfly.SAML2LoginModule)
+0

只是一個問題,你的答案是:OP使用WildFly,所以有沒有 「閥門」 在的jboss-web.xml中。我在自己的工作中發現,這使得實施變得更加困難。大多數文檔都參考了閥門配置,然後沒有提及任何相應的WildFly處理程序實現。例如,目前還不清楚如何使用標準SAML元數據文件在WildFly上配置picketlink實現 - 您可以添加一個閥門來引用元數據文件,但不適用於WildFly。 – Kingand

相關問題