可以在您配置 Liberty 服务器登录模块之前或之后配置定制 Java™ 认证和授权服务 (JAAS) 登录模块。
开始之前
我们支持 server.xml 文件、client.xml 文件和 JAAS 配置的 JAAS 配置文件。但是,建议在 server.xml 文件或 client.xml 文件中配置 JAAS 定制登录模块。有关配置 JAAS 配置文件的更多详细信息,请参阅使用 Liberty 的 JAAS 配置文件配置应用程序 JAAS 定制登录上下文条目和登录模块。
请确保您有一个 JAR 文件包含 JAAS 定制登录模块,此模块用来实现 javax.security.auth.spi.LoginModule 接口(如为系统登录配置开发 JAAS 定制登录模块中所述)。在本主题中,JAAS 定制登录模块使用 Liberty 服务器提供的散列表、回调或共享状态变量来将认证数据传递到系统登录模块。
关于此任务
可以使用定制登录模块来作出其他认证决策,或者在主体集中添加信息以在应用程序内部作出更细颗粒度的权限决策。有关更详细的概述,请参阅 JAAS 配置和 JAAS 登录模块。
您还可以使用开发者工具来配置定制 JAAS 登录模块。
请参阅使用开发者工具在 Liberty 上配置 JAAS。在 Liberty 上配置应用程序的安全性时,可以参考 WASdev.net Web 站点上的若干个安全性配置示例。请参阅使用开发者工具在 Liberty 上配置 JAAS。
要配置 JAAS 定制登录模块,请完成以下步骤:
过程
- 在 server.xml 文件中启用 appSecurity-2.0
Liberty 功能部件。
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
- 创建用于实现 LoginModule 接口的 com.sample.CustomLoginModule 类并将其打包到
CustomLoginModule.jar 文件中。
- 使用一个指示 CustomLoginModule.jar 文件所在位置的 <fileset> 元素来创建 <library> 元素。在此示例中,库 id 是 customLoginLib。
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>
- 创建 <jaasLoginModule> 元素。在此示例中,id 是 custom。
- 通过将 controlFlag 属性设置为 REQUIRED,将定制登录模块配置为需要成功认证。
- 将 libraryRef 属性设置为 customLoginLib(在上一步配置的 <library> 元素的 id)。此登录模块也具有两个选项:UserRegistry 是 ldap,而 mapToUser 是 user1。
<jaasLoginModule id="myCustom"
className="com.sample.CustomLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib">
<options myOption1="value1" myOption2="value2"/>
</jaasLoginModule>
- 使用系统定义的 JAAS 配置 (system.WEB_INBOUND) 的 id 和唯一 name 来创建 <jaasLogincontextEntry> 元素。您还可以将此 JAAS 配置设置为 system.DEFAULT、WSLogin 或您自己的 JAAS 配置。在 loginModuleRef 属性上,添加 custom(在上一步创建 jaasLoginModule 元素的 id)。将此 id 放在列表中的最前面表示它是要调用的第一个 JAAS 登录模块。您还必须列出其他缺省登录模块:hashtable、userNameAndPassword、certificate 和 token。
<jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND"
loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token" />
注: 选项名称不能以句点 (.)、config. 或 service 开头,并且必须唯一。此外,也不接受属性名 id 或 ID。
有关 <jaasLoginContextEntry>、<jaasLoginModule>、<options> 和 <library> 元素的更多信息,请参阅 Application Security 2.0。