当前位置: 首页 > news >正文

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

文章目录

  • 第三十八章 验证和解密入站消息 - 实例身份验证和 WS-Security
  • 实例身份验证和 `WS-Security`
  • 检索安全标头元素
      • `FindByEncryptedKeySHA1()`
      • `FindElement()`
      • `FindLastElement()`
  • 检查签名确认

第三十八章 验证和解密入站消息 - 实例身份验证和 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 TypeSubclass 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


http://www.mrgr.cn/news/42302.html

相关文章:

  • 使用Tornado框架实现异步Web应用的实用指南
  • Golang | Leetcode Golang题解之第454题四数相加II
  • C 数组
  • 异常场景分析
  • 错误管理开发指导
  • AI学习指南深度学习篇-权重正则化的变体及扩展应用
  • JavaScript 弹窗
  • wpf加载带材料的3D模型(下载的3D预览一样有纹理)
  • Java 每日一刊(第20期):I/O 流
  • 平衡BST:AVL树的实现与机制
  • ade20k 街景图像【数据集】及其【论文出处】ADE20K数据集 超过25000张图像的语义分割数据集
  • Linux命令大全及小例子
  • Python入门--判断语句
  • Linux: network: 典型网络延迟图,CPU导致;
  • 帝国CMS系统开启https后,无法登陆后台的原因和解决方法
  • Java | Leetcode Java题解之第455题分发饼干
  • 沉迷赌博卖妻卖女,演员吴晓亮被骂到微博沦陷
  • 开放式耳机与入耳式耳机的区别?分享开放式蓝牙耳机排行榜10强
  • 【EXCEL数据处理】000014 案例 EXCEL分类汇总、定位和创建组。附多个操作案例。
  • PyQt入门指南三 创建第一个PyQt应用程序