第 4 章 用户管理

4.1. 用户创建

4.1.1. 为管理接口添加用户

介绍

JBoss EAP 6 里的管理界面默认是设置了安全性的,因为一开始没有可用的用户帐号,除非你是用图形安装程序安装的。对于因简单配置错误而可能引起来自远程系统的攻击来说,这是一个预防措施。本地的非 HTTP 访问是受 SASL 机制保护的,就是当客户从 localhost 第一次连接时客户和服务器间都进行协商。

这个任务描述了如何创建初始的管理性用户,它可以使用基于 WEB 的管理控制台和管理 CLI 的远程实例来从远程系统上配置和管理 JBoss EAP 6。

注意

和 JBoss EAP 6 的 HTTP 通讯被当作是远程访问,即使这种通讯发生在本地主机。因此,你必须创建至少一个用户以能够使用管理控制台。如果你试图在添加用户前访问管理控制台,你将接收到一个错误,因为它在用户创建后才会被部署。

过程 4.1. 为远程管理界面创建初始管理性用户

  1. 调用 add-user.shadd-user.bat 脚本。

    进入 EAP_HOME/bin/ 目录。根据你的操作系统调用合适的脚本。
    Red Hat Enterprise Linux
    [user@host bin]$ ./add-user.sh
    Microsoft Windows Server
    C:\bin>  add-user.bat
  2. 选择添加一个管理用户。

    点击 ENTER 选择默认选项 a 来添加一个管理用户。这个用户被添加到 ManagementRealm 并被授权通过基于 web 的管理控制台或基于命令行的管理 CLI 来执行管理操作。另外一个选项 b 则添加一个用户到 ApplicationRealm,且未提供特殊的权限。该区域(Realm)用于应用程序。
  3. 输入用户名和密码。

    遇到提示时输入用户名和密码,系统会提示您确认密码。
  4. 输入您的组信息

    添加用户所属的组或组群。如果用户属于多个组,请输入用逗号隔开的列表。如果不属于任何组,请留空。
  5. 获取信息并确认。

    系统会提示您确认信息。如果正确,请输入 yes
  6. 选择用户是否代表一个远程 JBoss EAP 6 服务器实例。

    除了管理员以外,偶尔需要在 ManagementRealm 里添加到 JBoss EAP 6 里的是代表其他 EAP 实例的用户,它需要通过验证作为成员加入到群集。下一个提示允许你指定所添加的用户。如果你选择 yes,你将得到一个 hashed secret 值,代表用户的密码,这将需要添加到不同的配置文件里。为了完成这个任务,在这里请回答 no
  7. 输入其他的用户。

    如果需要,重复刚才的过程你可以输入其他用户。你也可以在任何时候在运行系统里添加用户。不是选择默认的安全区,你需要添加用户到其他区以调整其授权过程。
  8. 非交互式地创建用户。

    通过在命令行传入参数,你可以非交互式地创建用户。我们不推荐在共享系统上使用这个方法,因为密码可以在日志或历史文件里看到。这个使用管理区域的命令的语法是:
    [user@host bin]$ ./add-user.sh username password
    要使用应用程序区域,请使用 -a 参数。
    [user@host bin]$ ./add-user.sh -a username password
  9. 通过 --silent 参数,你可以忽略 add-user 脚本的正常输出。这只有在指定了用户名密码且只使用了最小参数集时才适用。 而错误信息仍会被显示。
结果

你添加的任何用户都会在你指定的安全区里进行激活。ManagementRealm 区里活动的用户能够从远程系统里管理 JBoss EAP 6。

4.1.2. 传入参数到用户管理 add-user 脚本

您可以交互式地运行 add-user.shadd-user.bat 命令或将参数传入到命令行。本节描述了传入参数时可用的选项。
关于 add-user.shadd-user.bat 命令行的完整参数列表,请参考 第 4.1.3 节 “Add-user 命令行参数”
关于如何指定其他属性文件和位置,请参考 第 4.1.4 节 “指定用户管理信息的替代属性文件”
关于演示如何传递参数到 add-user.shadd-user.bat 命令行的示例,请参考 第 4.1.5 节 “Add-user 脚本命令行示例”

4.1.3. Add-user 命令行参数

下表描述了 add-user.shadd-user.bat 命令的可用参数。

表 4.1. Add-user 命令行参数

命令行参数 参数值 描述
-a
N/A
这个参数指定在应用程序区里创建用户。如果忽略,默认是在管理区里创建用户。
-dc
DOMAIN_CONFIGURATION_DIRECTORY
这个参数指定了包含属性文件的域配置目录。如果忽略,默认的目录是 EAP_HOME/domain/configuration/
-sc
SERVER_CONFIGURATION_DIRECTORY
这个参数指定了包含属性文件的其他独立服务器配置目录。如果忽略,默认的目录是 EAP_HOME/standalone/configuration/
-up
--user-properties
USER_PROPERTIES_FILE
这个参数指定其他用户属性文件的名称。它可以是一个绝对路径,也可以和 -sc-dc 参数一起来指定其他配置的目录。
-g
--group
GROUP_LIST
分配给这个用户的用逗号隔开的组的列表。
-gp
--group-properties
GROUP_PROPERTIES_FILE
这个参数指定其他组属性文件的名称。它可以是一个绝对路径,也可以和 -sc-dc 参数一起来指定其他配置的目录。
-p
--password
PASSWORD
用户的密码。密码必须满足下列要求:
  • 它必须包含至少 8 个字符。
  • 它必须包含至少一个字母字符。
  • 它必须包含至少一个数字。
  • 它必须包含至少一个非字母数字字符。
-u
--user
USER_NAME
用户的名称。它必须只包含字母数字字符。
-r
--realm
REALM_NAME
用来设置管理接口安全性的区的名称。如果忽略,默认是 ManagementRealm
-s
--silent
N/A
运行 add-user 脚本且不输出到控制台。
-h
--help
N/A
显示 add-user 脚本的用法。

4.1.4. 指定用户管理信息的替代属性文件

介绍

在默认情况下,用 add-user.shadd-user.bat 创建的用户和角色信息都保存在服务器配置目录下的属性文件里。服务器配置信息保存在 EAP_HOME/standalone/configuration/ 目录而域配置信息保存在 EAP_HOME/domain/configuration/ 目录。本节将描述如何覆盖默认的文件名称和位置。

过程 4.2. 指定替代属性文件

    • 要指定服务器配置的替代目录,请使用 -sc 参数。这个参数指定了包含服务器配置属性文件的替代目录。
    • 要为域配置指定替代目录,,请使用 -dc 参数。这个参数指定了包含域配置属性文件的替代目录。
    • 要指定替代的用户配置属性文件,请使用 -up--user-properties 参数。它可以是绝对路径,也可以和 -sc-dc 参数一起使用来指定替代的配置目录。
    • 要指定替代的组配置属性文件,请使用 -gp--group-properties 参数。它可以是绝对路径,也可以和 -sc-dc 参数一起使用来指定替代的配置目录。

注意

add-user 命令旨在操作现有的属性文件。命令行里指定任何替代属性文件都必须存在,否则您将看到下列错误:
JBAS015234: No appusers.properties files found
关于命令参数的更多信息,请参考 第 4.1.3 节 “Add-user 命令行参数”
关于 add-user 命令的示例,请参考 第 4.1.5 节 “Add-user 脚本命令行示例”

4.1.5. Add-user 脚本命令行示例

下面的例子演示了如何传递参数到 add-user.shadd-user.bat 命令。除非另有注明,这些命令假定是使用独立服务器配置的。

例 4.1. 创建属于使用默认属性文件的单个组的用户。

EAP_HOME/bin/add-user.sh -a -u 'appuser1' -p 'password1!' -g 'guest'
上面的命令产生下列结果。
  • 用户 appuser1 被添加到保存用户信息的下列默认属性文件里。
    EAP_HOME/standalone/configuration/application-users.properties
    EAP_HOME/domain/configuration/application-users.properties
  • 用户 appuser1 和组 guest 被添加到保存组信息的默认属性文件里。
    EAP_HOME/standalone/configuration/application-roles.properties
    EAP_HOME/domain/configuration/application-roles.properties

例 4.2. 创建属于使用默认属性文件的多个组的用户。

EAP_HOME/bin/add-user.sh -a -u 'appuser1' -p 'password1!' -g 'guest,app1group,app2group'
上面的命令产生下列结果。
  • 用户 appuser1 被添加到保存用户信息的下列默认属性文件里。
    EAP_HOME/standalone/configuration/application-users.properties
    EAP_HOME/domain/configuration/application-users.properties
  • 用户 appuser1 和组 guestapp1groupapp2group被添加到保存组信息的默认属性文件里。
    EAP_HOME/standalone/configuration/application-roles.properties
    EAP_HOME/domain/configuration/application-roles.properties

例 4.3. 在使用默认属性文件的默认区里创建带有管理权限的用户。

EAP_HOME/bin/add-user.sh -u 'adminuser1' -p 'password1!' -g 'admin'
上面的命令产生下列结果。
  • 用户 adminuser1 被添加到保存用户信息的下列默认属性文件里。
    EAP_HOME/standalone/configuration/mgmt-users.properties
    EAP_HOME/domain/configuration/mgmt-users.properties
  • 用户 adminuser1 和组 admin 被添加到保存组信息的默认属性文件里。
    EAP_HOME/standalone/configuration/mgmt-groups.properties
    EAP_HOME/domain/configuration/mgmt-groups.properties

例 4.4. 创建属于用替代属性文件保存信息的单个组的用户。

EAP_HOME/bin/add-user.sh -a -u appuser1 -p password1! -g app1group -sc /home/someusername/userconfigs/ -up appusers.properties -gp appgroups.properties 
上面的命令产生下列结果。
  • 我们添加了用户 appuser1 到下列属性文件里,它现在是保存用户信息的默认文件。
    /home/someusername/userconfigs/appusers.properties
  • 我们添加了用户 appuser1 和组 app1group 到下列属性文件里,它现在是保存组信息的默认文件。
    /home/someusername/userconfigs/appgroups.properties