安全上下文
安全上下文允许根据 WS-SecureConversation 建立消息安全上下文。 然后,可以使用该上下文来保护消息,作为一次性安全性的替代方法,其中每个请求都传输凭据。 建立的安全上下文是交换多个消息时保护消息的更高效方法。
安全上下文需要存在用于保护上下文中发送的消息的启动安全凭据。 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING、WS_XML_TOKEN_MESSAGE_SECURITY_BINDING和 WS_USERNAME_MESSAGE_SECURITY_BINDING 结构可用于此目的。
安全上下文是消息安全功能,通过消息安全绑定进行配置。
客户
在客户端上,安全上下文绑定到特定通道。 它使用 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING进行配置。 上下文的行为和生存期由通道决定。 在通道上发送第一条消息时,将建立安全上下文。 之后,上下文会以可配置的间隔主动续订。 如果服务器返回一个错误,指示上下文需要续订,则在发送下一条消息时会续订上下文。 如果通道处于打开状态,则关闭通道时,上下文将通过取消消息取消。
服务器
在服务器上,安全上下文的配置方式与在客户端上相同。 但是,它与任何特定通道无关。 相反,为具有 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING 集的侦听器创建的所有通道都能够接收具有该侦听器通道上建立的任何安全上下文的消息。
当消息到达支持安全上下文的通道上时,该消息使用的上下文可以通过调用具有 WS_MESSAGE_PROPERTY_SECURITY_CONTEXT的 WsGetMessageProperty 函数获取。 检索的值可以与 WsRevokeSecurityContext 和 WsGetSecurityContextProperty一起使用。
元数据
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT 结构用于从元数据中提取安全上下文策略。 有关详细信息,请参阅 元数据导入。
以下 API 元素用于安全上下文。
列举 | 描述 |
---|---|
WS_SECURITY_CONTEXT_PROPERTY_ID | 标识安全上下文对象的属性。 |
功能 | 描述 |
---|---|
WsGetSecurityContextProperty | 获取指定安全上下文的属性。 |
WsRevokeSecurityContext | 撤销安全上下文。 |
处理 | 描述 |
---|---|
WS_SECURITY_CONTEXT | 用于引用安全上下文对象的不透明类型。 |
结构 | 描述 |
---|---|
WS_SECURITY_CONTEXT_PROPERTY | 定义 WS_SECURITY_CONTEXT的属性。 |