美文网首页
第三十八章 验证和解密入站消息 - 实例身份验证和 WS-Sec

第三十八章 验证和解密入站消息 - 实例身份验证和 WS-Sec

作者: Cache技术分享 | 来源:发表于2024-10-03 06:34 被阅读0次

    第三十八章 验证和解密入站消息 - 实例身份验证和 WS-Security

    实例身份验证和 WS-Security

    了解 IRIS 网络服务有两个独立的机制在起作用是很有用的:IRIS 服务器和网络服务代码。

    • 在管理门户中,您可以为 Web 应用程序指定允许的身份验证模式,从而控制对 %Service_WebGateway 服务的访问。(有关详细信息,请参阅时间戳和用户名令牌示例。有关更多背景信息,请参阅 Web 应用程序。)如果您选择密码选项,则 Web 应用程序可以接受 IRIS 用户名/密码对;这称为实例身份验证。
    • 除此之外,Web 服务还可以要求 IRIS 用户名/密码对。

    这些机制协同工作如下:

    1. 收到消息后,Web 服务将检查是否存在名为 <Security> 的标头元素,而不会检查该元素的内容。
    2. 如果不存在 <Security>标头元素并且 SECURITYIN 参数等于 REQUIRE,则 Web 服务将发出故障并退出。
    3. 如果<Security> 标头元素包含<UsernameToken> 元素:
    • 如果为 Web 应用程序选择了密码选项,则 Web 服务将读取 <UsernameToken>元素,从中获取用户名和密码,并登录到 Web 应用程序。

    Web 服务对 SECURITYIN 参数的任何值(IGNOREALL 除外)都执行此操作。

    用户名可在 $USERNAME 特殊变量和 Web 服务的 Username 属性中找到。密码不可用。

    • 如果没有选择密码选项,则不会登录。

    注意:如果关联(和编译)配置类中存在安全策略,则 SECURITYIN 参数将被忽略。

    检索安全标头元素

    在某些情况下,可能希望为 WS-Security 标头元素添加自定义处理。为此,请使用 Web 服务或客户端的 SecurityIn 属性。如果服务或客户端收到 WS-Security 标头元素,则此属性是包含标头元素的 %SOAP.Security.Header 实例。例如:

     Set secheader=myservice.SecurityIn
    

    然后使用该实例的以下方法之一来检索标题元素:

    FindByEncryptedKeySHA1()

    method FindByEncryptedKeySHA1(encryptedKeySHA1 As %Binary) as %SOAP.Security.Element
    

    从与给定 EncryptedKeySHA1 参数对应的 <EncryptedKey> 元素中返回密钥。如果没有匹配,则返回空字符串。

    FindElement()

    method FindElement(type As %String, ByRef pos As %String) as %SOAP.Security.Element
    

    返回位置 pos 之后的第一个指定类型的安全元素。如果没有匹配,该方法将返回空字符串(并将 pos 返回为 0)。

    对于类型,指定“Timestamp”、“BinarySecurityToken”、“UsernameToken”、“Signature”或“EncryptedKey”

    FindLastElement()

    method FindLastElement(type As %String, ByRef pos As %String) as %SOAP.Security.Element
    

    返回指定类型的最后一个安全元素。如果没有匹配,该方法将返回空字符串(并将 pos 返回为 0)。

    有关类型的信息,请参阅 FindElement() 的条目。

    所有这些方法都会中返回 %SOAP.Security.Element 的实例或以下子类之一的实例,具体取决于元素类型:

    Element Type Subclass Used
    "Timestamp" %SOAP.Security.Timestamp
    "BinarySecurityToken" %SOAP.Security.BinarySecurityToken
    "UsernameToken" %SOAP.Security.UsernameToken
    "Signature" %XML.Security.Signature

    检查签名确认

    WS-Security 1.1 <SignatureConfirmation>功能使 Web 客户端能够确保收到的 SOAP 消息是响应 Web 客户端发送的原始请求而生成的。客户端请求通常经过签名,但并非必须如此。在此机制中,Web 服务将 <SignatureConfirmation> 元素添加到安全标头元素,Web 客户端可以检查该 <SignatureConfirmation>元素。

    对于 Web 客户端,要验证从 Web 服务收到的响应中的 <SignatureConfirmation> 元素,请调用 Web 客户端的 WSCheckSignatureConfirmation() 方法。如果 <SignatureConfirmation> 元素有效,则此方法返回 true,否则返回 false

    相关文章

      网友评论

          本文标题:第三十八章 验证和解密入站消息 - 实例身份验证和 WS-Sec

          本文链接:https://www.haomeiwen.com/subject/ukierjtx.html