6.4. 配置安全域的验证

要配置安全域的验证,请登录到管理控制台并遵循下列步骤。

过程 6.1. 为安全域设置验证

  1. 打开安全域的详细视图。

    点击管理控制台由上角的 Profiles 标签。在受管域里,从 Profile 视图左上角的 Profile 选择框里选择要修改的配置集。点击左侧的 Security 并点击展开菜单里的 Security Domains。点击你要编辑的安全域的 View 链接。
  2. 进入验证子系统配置。

    如果还未选择的话,点击视图顶部的 Authentication 标签。
    配置区域分成两部分:Login ModulesDetails。登录模块是配置的基本单元。安全域可以包含多个登录模块,每个都包括几个属性和选项。
  3. 添加一个验证模块。

    点击 Add 按钮来添加一个 JAAS 验证模块。输入相关的内容。Code 是模块的类名。Flags 控制模块如何和相同安全域里的其他验证模块交互。
    对标签的解释

    Java EE 6 规格提供了安全域的标签的解释。下面的列表来自 http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html#AppendixA。关于更消息的信息,请参考这个文档。

    标签 详情
    Required
    登录模块是验证成功所必需的。如果成功或失败,验证都仍会继续处理登录模块列表。
    Requisite
    登录模块是验证成功所必需的。如果成功,验证将继续处理登录模块列表。如果失败,控制权马上返回给应用程序(验证不会继续处理登录模块列表)。
    Sufficient
    登录模块不是验证成功所必需的。如果成功,控制权马上返回给应用程序(验证不会继续处理登录模块列表)。如果失败,验证将继续处理登录模块列表。
    Optional
    登录模块不是验证成功所必需的。如果成功或失败,验证都仍会继续处理登录模块列表。
    在你添加了模块时,你可以通过屏幕上的 Details 里的 Edit 按钮修改它的 CodeFlags。请确保选择了 Attributes 标签页。
  4. 可选的:添加、编辑或删除模块选项。

    如果你需要在模块里添加选项,点击 Login Modules 列表里的条目,并选择 Details 部分的 Module Options 标签页,并提供选项的键和值。要编辑一个已存在的选项,点击它的键来进行修改。你可以使用 Remove 按钮来删除选项。
结果

你的验证模块已添加至安全域,且马上可为使用安全域的应用程序所用。

jboss.security.security_domain 模块选项

在默认情况下,安全域里定义的每个登录模块都会自动添加一个 jboss.security.security_domain 模块选项。这个选项会给检查是否只定义了已知选项的登录模块带来问题。IBM Kerberos 登录模块 com.ibm.security.auth.module.Krb5LoginModule 就是其中之一。

你可以通过在启动 JBoss EAP 时设置系统属性为 true 来禁用添加这个模块选项的行为。请添加下列内容到你的启动参数里。
-Djboss.security.disable.secdomain.option=true
你也可以用基于 web 的管理控制台来设置这个属性。在独立服务器里,你可以在配置文件的 Profile 部分来设置系统属性。在受管域里,你可以对每个服务器组设置系统属性。