it-swarm.com.de

JBoss AS 7.1 - Datenquelle zum Verschlüsseln des Passworts

In JBoss AS 5 habe ich eine in * -ds.xml definierte Datenquelle, aber den Benutzernamen/das verschlüsselte Kennwort in * -jboss-beans.xml.

In JBoss AS 7.1 ist die Datenquelle jetzt in standalone.xml oder domain.xml definiert. Wo gebe ich das verschlüsselte Kennwort in AS 7.1 ein?

In anderen Worten, wie wird ein klares Passwort in AS 7 verschlüsselt und gesichert?

15
Eric

In AS7 können Sie das SecureIdentityLoginModule verwenden, um eine verschlüsselte Kennwortdomäne hinzuzufügen. Sie können beispielsweise eine Sicherheitsdomäne in standalone.xml oder domain.xml definieren: 

<security-domain name="EncryptedPassword">
  <authentication>
    <login-module code="SecureIdentity" flag="required">
      <module-option name="username" value="test"/>
      <module-option name="password" value="encrypted_password"/>
    </login-module>
  </authentication>
</security-domain>

Dann können Sie diese Sicherheitsdomäne in Ihrer speziellen Datenquelle hinzufügen, die diese Kombination aus Benutzer-ID und pwd in standalone.xml oder domain.xml verwendet:

  <datasource ... >
       .....
       <security>
              <security-domain>EncryptedPassword</security-domain>
       </security>
  </datasource>

Um das Kennwort selbst zu verschlüsseln, können Sie diesen Befehl ausführen (bitte überprüfen Sie die Versionen von Picketbox-Jar und Logging-Jar in Ihrem jeweiligen AS7-Download, um sie entsprechend zu ersetzen):

Java -cp $JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.6.<beta|final>.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.<some_version>.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule password

Dadurch wird ein verschlüsseltes Kennwort zurückgegeben, das Sie in Ihrer Sicherheitsdomäne verwenden können.

Weitere Informationen zum JBoss AS7-Sicherheitssubsystem hier finden Sie hier. Da open source rockt ist, können Sie im Quellcode von SecureIdentityLogin sehen, wie der Codierungscode funktioniert. Sie werden im Quellcode feststellen, dass Blowfish für die Verschlüsselung verwendet wird.

34
CoolBeans

Nachfolgend finden Sie die vollständige Sicherheitskonfiguration der Domäne für Jboss AS-7: 

     <security-domains>
        <!--  Security Setting's --> 
        <security-domain name="encryptedSecurity" cache-type="default">
            <authentication>
                <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                <module-option name="username" value="user_name"/>
                <module-option name="password" value="encrypted_password"/>
                <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=dataSource-1-PoolName,dataSource-2-PoolName"/>
            </login-module>
            </authentication>
        </security-domain>
5
shatk

Für wen interessiert es, dass dies auf Windows läuft (und in meinem Fall auf JBoss EAP 6.4 ...)

set JBOSS_HOME=C:\dev\jboss\jboss-eap-6.4
set MYPATH=%JBOSS_HOME%\modules\system\layers\base\org\picketbox\main\picketbox-4.1.1.Final-redhat-1.
jar;%JBOSS_HOME%\modules\system\layers\base\org\jboss\logging\main\jboss-logging-3.1.4.GA-redhat-2.jar;
Java -classpath %MYPATH% org.picketbox.datasource.security.SecureIdentityLoginModule SecretPass

Encoded password: 13e0362237c93a9cda89f5b3da271521

Ich hoffe, das hilft, Matteo

3
Matteo Pelucco

In einer Umgebung von CentOS, Version 6.3, JBoss-EAP-6.0.0, funktionierte dies nur mit code = "SecureIdentity", Unter Verwendung von picketbox-4.0.9.Final-redhat-1.jar für die Kennwortverschlüsselung. 

<security-domain name="some-ds-EncryptedPassword">
  <authentication>
    <login-module code="SecureIdentity" flag="required">
      <module-option name="username" value="username"/>
      <module-option name="password" value="encrypted_password"/>
    </login-module>
  </authentication>
</security-domain>

code = "SecureIdentityLogin" gibt "PB00024: Zugriff verweigert: Nicht authentifizierter Anrufer: null". 

Quelle: https://docs.jboss.org/author/display/AS7/Security+subsystem+configuration

2
DonZitrone

erstellen Sie ein einfaches Projekt mit Gläsern ( jboss-logging-3.1.4.GA-redhat-2.jar picketbox-4.1.1.Final-redhat-1.jar picketbox -commons-1.0.0.final-redhat-3.jar picketbox-infinispan-4.1.1.Final-redhat-1.jar) und führe eine benutzerdefinierte Klasse mit Eingabeargons aus:

public class Test {

    public static void main(String[] args) throws Exception {
        new org.picketbox.datasource.security.SecureIdentityLoginModule()
                .main(args);

    }

}

Die Ausgabe erfolgt wie folgt: Kodiertes Passwort: 3d5bc094c128 ...

1
user3136131