在 Liberty 中为应用程序配置授权

为应用程序配置授权是要验证用户或组是否属于指定的角色,以及此角色是否具有访问资源的权限。

关于此任务

Liberty 服务器从用户注册表中抽取用户和组映射信息,然后检查应用程序的授权配置,以确定是否已将用户或组指定给所需角色。然后,服务器会读取应用程序的部署描述符,以确定用户或组是否具有访问资源的权限。

过程

  1. server.xml 文件中启用 appSecurity-2.0 Liberty 功能部件。
    例如:
        <featureManager>
            <feature>appSecurity-2.0</feature>
        </featureManager>
  2. 在 Liberty 服务器上配置用于认证的用户注册表。

    请参阅在 Liberty 中认证用户

  3. 确保应用程序的部署描述符包含安全性约束及其他安全性相关信息。
    注: 您也可以使用 Rational® Application Developer 等工具来创建部署描述符。
  4. 配置授权信息,例如用户和组到角色的映射。
    可以采用下列方式来配置和授权表:
    • 如果具有 EAR 文件,那么可以将授权配置定义添加到 ibm-application-bnd.xmlibm-application-bnd.xmi 文件。
    • 如果具有独立 WAR 文件,那么可以将授权表定义添加到 server.xml 文件中相应的应用程序元素下。可以使用 WebSphere® Application Server Developer Tools for Eclipse 来执行此操作。
    注释:
    • 如果具有 EAR 文件,那么授权配置可能已存在。在已写入当前规范的 EAR 文件中,此信息存储在 ibm-application-bnd.xml 文件中;在较旧的 EAR 文件中,此信息存储在 ibm-application-bnd.xmi 文件中。
    • 如果 EAR 文件尚不含 ibm-application-bnd.xm* 文件,那么由于创建该文件的任务不是很直观,您可能更愿意将授权配置添加到 server.xml 文件。
    • 如果 EAR 文件的授权配置是在 ibm-application-bnd.xm* 文件中进行定义,并且也在 server.xml 文件中进行定义,那么会将这两个表合并。如果存在任何冲突,那么将使用 server.xml 文件中的信息。
    • 如果修改用户注册表,请确保复审授权表以进行必要的更改。例如,如果要指定 access-id 元素并更改注册表的域名,那么也必须在 access-id 元素中更改域名。
    • 如果在 server.xml 文件中指定 application-bnd 元素,那么您的应用程序不得位于 dropins 文件夹中。如果您的应用程序保留在 dropins 文件夹中,那么必须通过在 server.xml 文件中设置下列项目来禁用应用程序监视:
      <applicationMonitor dropinsEnabled="false" />

    可以将角色映射到用户、组或特殊主体集。这两种特殊主体集是 EVERYONEALL_AUTHENTICATED_USERS。将角色映射到 EVERYONE 特殊主体集时,没有任何安全性,因为每个人都可以访问,而且不会提示您输入凭证。将角色映射到 ALL_AUTHENTICATED_USERS 特殊主体集时,应用程序服务器已认证的任何用户随后都可以访问受保护资源。

    下面的代码举例说明了在 server.xml 文件中配置用户和组到角色的映射:
    <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war">
    	<application-bnd>
    				<security-role name="user">
    						<group name="students" />
    		</security-role>
    				<security-role name="admin">
    						<user name="gjones" />
                <group name="administrators" />
    		</security-role>
    		<security-role name="AllAuthenticated">
    			<special-subject type="ALL_AUTHENTICATED_USERS" />
    		</security-role>
    	</application-bnd>
    </application>

    在此示例中,admin 角色映射到用户标识 gjones 及组 administrators 中的所有用户。AllAuthenticatedRole 映射到特殊主体集 ALL_AUTHENTICATED_USERS,这表示任何用户只要提供有效的凭证进行认证,就具有访问权。

  5. 可选:配置不存在应用程序绑定信息时的授权决策。
    如果未提供受保护应用程序的角色映射绑定信息,那么缺省授权引擎将使用保护资源的角色名称作为与该角色相关联的组名。例如,如果角色名称为管理者,那么属于管理者组的用户有权访问该资源。这仅当 server.xml 或应用程序绑定文件中没有为应用程序指定任何应用程序绑定信息时才适用:例如,添加此绑定将禁用组绑定的安全角色:
    <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war">
          <application-bnd>
    	     <security-role name="anyAppRoleName"/>
          </application-bnd>
    </application>
    注: 要使用用户注册表中组名成功授权,角色名称必须与注册表中此组的已配置全名或唯一名称而不是简短名称匹配。例如,如果组的简短名称为 swGroup,但用户注册表中其全名或唯一名称为 CN=swGroup,o=company,c=us,那么需要将 CN=swGroup,o=company,c=us 指定为角色名称,授权才能成功。

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_sec_rolebased
文件名:twlp_sec_rolebased.html