实现定制单点登录令牌以进行安全性属性传播

可创建您自己的单点登录令牌实现。单点登录令牌实现是在登录主题中设置的,并且将作为 HTTP Cookie 添加到 HTTP 响应。

关于此任务

Cookie 名称是 SingleSignonToken.getName 应用程序编程接口 (API) 和 SingleSignonToken.getVersion API 的并置。不存在定界符。当您将单点登录令牌添加到主题时,它会进行水平传播,并且会向下游传播以防将主题用于其他 Web 请求。从传播登录接收定制单点登录令牌时,必须将该令牌反序列化。如果您要实现以下某个任务,考虑写您自己的实现:
  • 将属性隔离在您自己的实现内。
  • 使用定制序列化对信息进行序列化。应对信息进行加密,因为它在 HTTP 响应之外,并且在因特网上可用。您必须反序列化或解密目标中的字节,并将此信息添加回主题。
  • 使用 getUniqueID API 会影响主题的整体唯一性。

要实现定制单点登录令牌,请完成以下步骤:

过程

  1. 编写 SingleSignonToken 接口的定制实现。

    有许多不同的方法可用于实现 SingleSignonToken 接口。但是,应确保完全实现 SingleSignonToken 接口和令牌接口所需的方法。

    [AIX Solaris HP-UX Linux Windows][z/OS]在实现此接口后,可以将它放入 app_server_root/classes 目录中。或者,可将类放入任何专用目录。但是,要确保 WebSphere Application Server 类装入器可找到此类,并且该类被授予了相应的许可权。可以将 Java™ 归档 (JAR) 文件或包含此类的目录添加到 server.policy 文件,以便它具有服务器代码所需的许可权。

    [IBM i]在实现此接口后,可以将它放入 profile_root/classes 目录中。有关类的更多信息,请参阅在概要文件中为定制类创建 classes 子目录

    提示: 传播框架定义的所有令牌类型都具有类似的接口。基本上,令牌类型是实现 com.ibm.wsspi.security.token.Token 接口的标记接口。此接口定义大多数方法。如果您计划实现多个令牌类型,请考虑创建实现 com.ibm.wsspi.security.token.Token 接口的抽象类。所有令牌实现(包括单点登录令牌 )都可能扩展抽象类,并且会完成大部分工作。

    要查看单点登录令牌的实现,请参阅示例:com.ibm.wsspi.security.token.SingleSignonToken 实现

  2. 在 WebSphere Application Server 登录期间添加和接收定制单点登录令牌。 本任务的实现通常是通过将定制登录模块添加到各种应用程序和系统登录配置。但是,要反序列化信息,您必须插入定制登录模块,这将在后续步骤中讨论。在登录模块中对该对象实例化后,那么可以在落实方法期间将其添加到主题。

    示例:定制单点登录令牌登录模块中的代码样本说明如何确定登录是初始登录还是传播登录。不同之处在于 WSTokenHolderCallback 回调是否包含传播数据。如果回调不包含传播数据,那么初始化新的定制单点登录令牌实现,并将它设置到主题中。而且,如果 HTTP 请求对象在回调上可用,那么从 HTTP 请求查找 HTTP Cookie。可从水平传播登录和 HTTP 请求获取定制单点登录令牌。但是,建议您使令牌在两个位置都可用,这样即使此服务器不支持传播,此信息还是会达到任何前端应用程序服务器。

    可在登录模块的落实阶段使单点登录令牌成为只读的。如果您使令牌为只读,那么其他属性不能添加到应用程序中。

    限制:
    • HTTP Cookie 具有大小限制。应该在适用于特定浏览器的文档中包括大小限制。
    • WebSphere Application Server 运行时不会处理它未生成的 Cookie,所以运行时不会使用此 Cookie。
    • 如果在 getUniqueID 方法中返回某些内容,那么 SingleSignonToken 对象在主题中时会影响主题的高速缓存查询。
  3. 在登录期间从 HTTP 请求对象获取 HTTP Cookie 或从应用程序获取。 示例:HTTP Cookie 检索中的样本代码说明如何从 HTTP 请求检索 HTTP Cookie,如何对 Cookie 进行译码以便它回到原始字节并通过这些字节创建定制 SingleSignonToken 对象。
  4. 将定制登录模块添加到已包含 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 的 WebSphere Application Server 系统登录配置,用于接收定制传播令牌的序列化版本。 因为此登录模块依赖于 sharedState 状态下由 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 登录模块添加的信息,所以在添加 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 登录模块后添加此登录模块。

    有关将定制登录模块添加至现有登录配置的信息,请参阅“为 JAAS 的系统登录配置开发定制登录模块”。

结果

在完成这些步骤后,您已实现定制单点登录令牌。

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



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_custssoimpl
文件名:tsec_custssoimpl.html