2015-08-24 108 views
2

我試圖在蜻蜓(8.2.1)中配置一個安全域來綁定到我們的Active Directory。我需要嘗試找到加密bindCredential密碼的方法。 我能夠使用Picketbox加密數據源密碼。 我只能發現爲JBoss V6.x或之前的版本進行這種加密,並且所採用的方法似乎不再存在於Wildfly中。 有沒有人做過這件事,願意分享它如何實現。如何加密Wildfly中的bindCredential密碼?

這裏是我的安全域:

<security-domain name="ADDomain" cache-type="default"> 
      <authentication> 
        <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" > 
          <module-option name="java.naming.provider.url" value="ldap://ad.mycompany.com:389/"/> 
          <module-option name="bindDN" value="cn=myuserid"/> 
          <module-option name="bindCredential" value="mypassword"/> <--- I want to encrypt this. 
          <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> 
          <module-option name="java.naming.security.authentication" value="simple"/> 
          <module-option name="baseCtxDN" value="dc=mycompany,dc=com"/> 
          <module-option name="baseFilter" value="(uid={0})"/> 
          <module-option name="rolesCtxDN" value="dc=mycompany,dc=com"/> 
          <module-option name="roleFilter" value="(uniqueMember={1})"/> 
          <module-option name="roleAttributeID" value="cn"/> 
          <module-option name="roleNameAttributeID" value="cn"/> 
          <module-option name="roleRecursion" value="0"/> 
          <module-option name="throwValidateError" value="true"/> 
          <module-option name="java.naming.referral" value="follow"/> 
          <module-option name="referralUserAttributeIDToCheck" value="uniqueMember"/> 
        </login-module> 
      </authentication> 
    </security-domain> 

回答

3

使用安全庫。您可以在JBoss EAP文檔中找到chapter about Password Vaults - 配置應該與WildFly相同。

一般而言,您需要執行以下步驟。

  1. 用密鑰
keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 \ 
    -storepass vault22 -keypass vault22 \ 
    -dname "CN=vault, O=ACME, C=CZ" \ 
    -keystore /path/to/vault.keystore 
  • 創建存儲庫目錄,創建庫本身,並把您的密碼,它
  • 創建JCEKS密鑰庫
    mkdir /path/to/vault-data-dir 
    ${JBOSS_HOME}/bin/vault.sh -a passa -b LdapLogin \ 
        -e /path/to/vault-data-dir \ 
        -i 22 -k /path/to/vault.keystore -p vault22 -s 87654321 -v vault \ 
        -x mypassword 
    
    1. 在WildFly中配置保險庫:
    ${JBOSS_HOME}/bin/jboss-cli.sh \ 
        -c '/core-service=vault:add(vault-options=[("KEYSTORE_URL" => "/path/to/vault.keystore"), ("KEYSTORE_PASSWORD" => "MASK-Ci5JS1kjxPX"), ("KEYSTORE_ALIAS" => "vault"), ("SALT" => "87654321"),("ITERATION_COUNT" => "22"), ("ENC_FILE_DIR" => "/path/to/vault-data-dir/")])' 
    
    登錄模塊中
  • 使用拱形的密碼
  • <module-option name="bindCredential" value="${VAULT::LdapLogin::passa::1}"/>