2.5. 配置 Web 应用程序


配置完安全域后,必须将 Web 应用配置为使用这些安全域,才能启用 Kerberos 身份验证。旦对应用进行了更改,便可将它部署到 JBoss EAP 实例,并开始使用 Kerberos 进行身份验证。

必须进行以下更新:

  1. 配置 web.xml 以使用 SPNEGO 身份验证方法。

    web.xml 文件应包含以下内容:

    • 带有 < web-resource-collection> 的 <security-constraint >,其中包含一个 <url-pattern>,它映射到安全区域的 URL 模式。另外,<security-constraint> 也可以包含 <auth-constraint> 来 替代允许的角色。
    • 如果在 <auth-constraint> 中指定了任何角色,这些角色应在 <security-role> 中定义。
    • 包含 < auth-method> 的 <login-config >,其 确切 值为 SPNEGO

      重要

      <auth-method> 元素需要一个以逗号分隔的特定值列表。要使 SPNEGO 身份验证被正确配置,SP NEGO 必须出现在 <auth-method> 元素中,应首先出现。在将 FORM 登录添加为 Fallback 中讨论合并其他身份验证类型。

      <security-constraint><security-role> 元素可让管理员根据 URL 模式和角色设置受限或不受限制的区域。这允许保护或不受保护的资源。

      示例: web.xml 文件

      <web-app>
        <display-name>App1</display-name>
        <description>App1</description>
        <!-- Define a security constraint that requires the Admin role to access resources -->
        <security-constraint>
          <display-name>Security Constraint on Conversation</display-name>
          <web-resource-collection>
            <web-resource-name>exampleWebApp</web-resource-name>
            <url-pattern>/*</url-pattern>
          </web-resource-collection>
          <auth-constraint>
            <role-name>Admin</role-name>
          </auth-constraint>
        </security-constraint>
        <!-- Define the Login Configuration for this Application -->
        <login-config>
          <auth-method>SPNEGO</auth-method>
          <realm-name>SPNEGO</realm-name>
        </login-config>
        <!-- Security roles referenced by this web application -->
        <security-role>
          <description>Role required to log in to the Application</description>
          <role-name>Admin</role-name>
        </security-role>
      </web-app>

  2. 配置 jboss-web.xml 以使用配置的安全域。

    jboss-web.xml 文件应具有以下内容:

    • <security-domain>,用于指定用于身份验证和授权的安全域。
    • (可选) <jacc-star-role-allow>,可在 web.xml 中的 role-name 元素中使用星号字符来匹配多个角色名称。

      示例: jboss-web.xml 文件

      <jboss-web>
        <security-domain>app-spnego</security-domain>
        <jacc-star-role-allow>true</jacc-star-role-allow>
      </jboss-web>

  3. 将 JBoss Negotiation 依赖项添加到传统 安全子系统的部署 中。

    重要

    如果您使用 elytron 子系统,您可以跳过这一步。

    使用 SPNEGO 和 JBoss Negotiation 的 Web 应用程序需要在 jboss-deployment-structure.xml 中定义依赖关系,以便能够找到 JBoss Negotiation 类。由于 JBoss EAP 提供了所有必要的 JBoss 协商和相关类,应用只需将其声明为使用它们的依赖项即可。

    使用 jboss-deployment-structure.xml 进行 Declare 依赖项

    <jboss-deployment-structure>
      <deployment>
        <dependencies>
          <module name="org.jboss.security.negotiation"/>
        </dependencies>
      </deployment>
    </jboss-deployment-structure>

    另外,也可以在 META-INF/MANIFEST.MF 文件中定义这个依赖项:

    使用 META-INF/MANIFEST.MF 进行依赖

    Manifest-Version: 1.0
    Dependencies: org.jboss.security.negotiation

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部