进行信任验证的身份断言
如果要让应用程序或系统提供程序执行进行信任验证的身份断言,那么可以使用 Java™ 认证和授权服务 (JAAS) 登录框架来完成此操作,在此操作中,将在一个登录模块中执行信任验证,并在另一个登录模块中创建凭证。这两个定制登录模块用来创建一个 JAAS 登录配置,该登录配置执行至身份断言的登录。
需要两个定制登录模块:
- 用户实现的信任关联登录模块。此登录模块执行用户需要的任何类型的信任验证。进行信任验证时,必须将信任验证状态和登录标识放入登录模块的一个共享图中,以使凭证创建登录模块可以使用该信息。必须将该图存储在 com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state 属性中。状态图包含下列信息:
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted - 如果可信,那么设置为 true;如果不可信,那么设置为 false。
- com.ibm.wsspi.security.common.auth.module.IdenityAssertionLoginModule.principal - 包含标识的主体。
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates - 包含标识的证书。
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule 模块负责创建凭证。它要求信任状态信息处于登录上下文的共享状态。此登录模块受下列各项的 Java 2 安全性运行时许可权的保护:
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.initialize
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.login
IdentityAssertionLoginModule 在共享状态属性 com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state 中搜索信任信息。这是一个包含信任状态和用来登录的标识的图。该图包含下列各项:
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted - 如果可信,那么设置为 true;如果不可信,那么设置为 false。
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal - 如果使用了主体,那么它包含登录时所需要的标识的主体。
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates - 如果使用了证书,那么它包含一组证书链,证书链中包含登录时所需要的标识。
如果缺少状态、信任或标识信息,那么会返回 WSLoginFailedException。然后登录模块将对标识执行登录。现在,主体集中就包含了新标识。