Glassfish для Wildlfy: безопасность: есть ли у Wildlfy эквивалент файловой области Glassfish и ключевого файла (включая консоль администратора/поддержку команд)

Во всех документах Wildfly (и JBoss AS) и примерах миграции Glassfish-to-Wildfly, которые я видел, используется JDBCrealm, требующий настройки базы данных и некоторых других действий с конфигурационными файлами.

В: Есть ли аналог простой файловой области Glassfish и keyfile в Wildfly?

[EDIT: мне нужно больше объяснений встроенных функций.]

В консоли администрирования браузера Glassfish можно перейти к Configurations > Security > Realms > file, а затем Manage Users, чтобы добавить новых пользователей с именем, списком групп и паролем (чтобы он легко шифровал и сохранял для вас в keyfile). Аналогичным образом команда asadmin предлагает create-file-user создать запись в файле keyfile. Затем этот keyfile можно просто скопировать из одной версии установки в другую. И на любые группы, упомянутые в процессе, можно ссылаться как на строки ролей в конфигурации веб-приложения.


person Webel IT Australia - upvoter    schedule 15.09.2016    source источник


Ответы (1)


Что именно вы пытаетесь зашифровать здесь?

Для шифрования паролей хранилища ключей и тому подобного то, что вам нужно, называется хранилищем в Wildfly. См. https://developer.jboss.org/wiki/MaskingPasswordsForWildFlyUsingNon-interactiveVaultTool.

Если вы ищете способ специального шифрования паролей хранилища данных, вам нужно использовать picketbox для предварительного шифрования паролей и использовать домен безопасности в подсистеме безопасности для каждого хранилища данных.

Пример скрипта для шифрования пароля:

#!/bin/bash

PASSWORD=$1

if [ -z "$PASSWORD" ]; then
  echo "Usage: `basename $0` <password>"
  exit 1
fi

JAVA_HOME="${JAVA_HOME:=/usr/java/default}"

cd /opt/wildfly/modules/system/layers/base/org/picketbox/main
$JAVA_HOME/bin/java -classpath picketbox-4.0.21.Beta1.jar \
   org.picketbox.datasource.security.SecureIdentityLoginModule $PASSWORD \
   | sed -e 's#Encoded password: ##'

Пример домена безопасности

<subsystem xmlns="urn:jboss:domain:security:1.2">
  <security-domains>
  ...
    <security-domain name="my_security_domain" cache-type="default">
      <authentication>
        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
          <module-option name="username" value="my_username"/>
          <module-option name="password" value="my_encrypted_password"/>
          <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=my_datasource"/>
        </login-module>
      </authentication>
    </security-domain>
  </security-domains>
</subsystem>

И в определении источника данных ссылайтесь на него с помощью

<subsystem xmlns="urn:jboss:domain:datasources:3.0">
  </datasources>
    <datasource pool-name="my_datasource"...>
    ...
    <security>
      <security-domain>my_security_domain</security-domain>
    </security>
  </datasource>
</subsystem>
person T. Kuther    schedule 20.09.2016
comment
Спасибо за ваш ответ и усилия, но моя цель и цель моего вопроса проще, чем указывает ваш ответ. В консоли администрирования браузера Glassfish можно перейти к Configurations > Security > Realms > file, а затем Manage Users, чтобы добавить новых пользователей с именем, списком групп и паролем (для шифрования и легкого хранения в keyfile). Аналогичным образом команда asadmin предлагает create-file-user создать запись в ключевом файле. Затем ключевой файл можно просто скопировать между установками. Ответ на мой вопрос, казалось бы, пока что нет, эквивалента нет. - person Webel IT Australia - upvoter; 22.09.2016
comment
Хорошо, тогда совсем другой вопрос. В Wildfly есть ApplicationRealm по умолчанию, и вы можете добавлять в него пользователей и группы через консоль администратора -> Контроль доступа (или в оболочке с помощью add-user.sh). Это приводит к созданию двух файлов mgmt-groups.properties и mgmt-users.properties, которые вы можете скопировать в новые установки (мы используем их для настройки марионеток). Это то, что вы ищете? - person T. Kuther; 26.09.2016