可信标识鉴别程序
可信标识鉴别程序是评估给定的标识名称是否可信的一种机制。
使用具有 JAX-RPC 编程模型的可信标识鉴别程序
- 基本认证(用户名令牌)
- 上游服务器将具有用户名和密码的用户名令牌发送到下游服务器。消息的使用者或接收方认证用户名令 牌并基于 TrustedIDEvaluator 实现验证信任。TrustedIDEvaluator 实现必须实现 com.ibm.wsspi.wssecurity.id.TrustedIDEvaluator Java™ 接口。
- 签名
- 上游服务器签署消息,此消息可以是任何消息部分(例如,SOAP 主体)。上游服务器将 X.509 令牌发送到下游服务器。消息的使用者或接收方验证签名并验证 X.509 令牌。基于 TrustedIDEvaluator 实现验证来自 X.509 令牌的标识或专有名称,此 X.509 令牌用于数字签名中。TrustedIDEvaluator 实现必须实现 com.ibm.wsspi.wssecurity.id.TrustedIDEvaluator Java 接口。对于 X.509 证书,WebSphere® Application Server 将证书中的专有名称用作请求者标识。
下图演示了用于这两种编程模型的身份断言信任进程:
在此图中,服务器 s1 是上游服务器,并且在服务器 s1 与服务器 s2 之间设置身份断言。服务器 s1 对标识 bob 进行认证。服务器 s1 需要将 bob 和密码一起 发送至服务器 s2。信任方式是包含标识和密码的 s1 凭证。服务器 s2 接收请求,使用 Java 认证和授权服务 (JAAS) 登录模块认证用户并使用可信标识鉴别程序确定是否信任标识。如果标识可信,那么将 bob 用作调用服务的调用者。如果需要授权,那么 bob 是用于授权验证的标识。
可以将此身份断言为当前安全上下文的 RunAs(调用)标识。例如,Web Service 网关使用安全方法(如密码认证)来对请求方进行验证,然 后仅将请求者标识发送到后端服务器。您还可以将身份断言用于与另一个 Web Service 安全性实现的互操 作性。
- 纯文本文件
- 数据库
- 轻量级目录访问协议 (LDAP) 服务器
可信标识鉴别程序通常由多跳式环境中可能的接收方使用。Web Service 安全性实现调用可信标识鉴别程序并将中介的标识名称作为参数传递。如果标识经过鉴别并被认为是可信的,那么过程继续。否则,创建异常,并且此过程停止。
使用具有 JAX-WS 编程模型的可信标识鉴别程序
在 JAX-WS 编程模型中,尽管实现不同,但是可信标识鉴别程序支持同一概念。对于 JAX-WS 运行时,使用管理控制台来选择调用者绑定面板上的使用身份断言选项。这定义了可信身份令牌类型,然后定义了一个或多个可信身份的列表。该可信身份鉴别程序验证了与可信身份列表相对的可信身份令牌。有关可信身份列表的更多信息,请阅读更改用于令牌或消息部分的调用者顺序的主题。
对于 WebSphere Application Server V6.1 及更高版本,Caller 和 TrustMethod 元素用于支持请求者登录。请求者将消息发送给媒介,然后再将该消息分派给服务。基于安全性信息,该服务将执行请求者的登录。某些情况下,存在多种安全性令牌,因此该服务必须决定使用哪个令牌。当请求者标识以身份断言包含时,该服务可以指定如何信任该媒介。支持以下媒介方案:
- <BasicAuth、null、null>
- 用于认证的请求者用户名和密码。这种情况下,使用请求者属性来执行认证,因此该认证需要密码。
- <Signature、null、null>
- 用于认证的请求者签名。
- <IDAssertion、Username、null>
- 请求者用户名(无需密码)用于识别请求者。UsernameToken 令牌用作身份断言,因此该用户名不需要使用密码。在这种情况下,服务无条件地信任此媒介。
- <IDAssertion、Username、Username>
- 请求者用户名(无需密码)用于识别请求者,该媒介的用户名和密码用于认证该媒介。UsernameToken 令牌(当用于建立可信标识时)总需要密码,因为该令牌的目的是要建立该媒介与服务之间的信任。
- <IDAssertion、Username、X509>
- 该请求者用户名(无需密码)用于识别请求者,该媒介的签名用于认证该媒介。这种情况下,该媒介签名的可信标识必须使用 X.509 证书来建立。
- <IDAssertion、X509、null>
- 请求者标识使用 X.509 证书来建立。在这种情况下,来自请求者的 X.509 证书不提供签名来证明该证书的所有,因此该服务无条件地信任此媒介。
- <IDAssertion、X509、Username>
- 请求者标识使用 X.509 证书来建立,该媒介的用户名和密码用于认证该媒介。UsernameToken 令牌(当用于建立可信标识时)总需要密码,因为该令牌的目的是要建立该媒介与服务之间的信任。
- <IDAssertion、X509、X509>
- 请求者标识使用 X.509 证书来建立,该媒介的签名用于认证该媒介。