第十八章 添加时间戳和用户名令牌

server/2024/9/23 7:28:50/

文章目录

  • 第十八章 添加时间戳和用户名令牌
  • 概述
  • 添加时间戳
  • 添加用户名令牌

第十八章 添加时间戳和用户名令牌

本主题讨论时间戳和用户令牌。

概述

时间戳是 WS-Security 标头中的 <Timestamp> 安全元素。严格来说,时间戳不是安全元素。但是,可以使用它来避免重放攻击。时间戳对于自定义日志记录也很有用。

用户名令牌是 WS-Security 标头中的 <UsernameToken> 安全元素;它带有用户名。它还可以带有相应的密码(可选为摘要形式)。通常使用它进行身份验证,即允许 IRIS Web 客户端使用需要密码的 Web 服务。

注意:默认情况下,WS-Security 标头元素以明文形式发送。要保护 <UsernameToken> 中的密码,应该使用 SSL/TLS、加密 <UsernameToken>(如其他地方所述),或者使用这些技术的某种组合。

添加时间戳

要将时间戳添加到 WS-Security 标头元素,请在 Web 客户端或 Web 服务中执行以下操作:

  1. 调用 %SOAP.Security.Timestamp的 Create() 类方法。此方法需要一个可选参数(以秒为单位的过期间隔)。默认过期间隔为 300 秒。例如:
 set ts=##class(%SOAP.Security.Timestamp).Create()

此方法创建 %SOAP.Security.Timestamp 的实例,设置其 CreatedExpiresTimestampAtEnd 属性的值,并返回该实例。此实例表示 <Timestamp> 标头元素。

  1. 调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于方法参数,请在创建的实例中使用 %SOAP.Security.Timestamp例如:
 do client.SecurityOut.AddSecurityElement(ts)
  1. 发送 SOAP 消息。请参阅添加安全标头元素中的一般注释。

如果包含 <Timestamp> 元素,IRIS 会强制它位于 <Security> 中的第一个。

添加用户名令牌

要添加用户名令牌,请在 Web 客户端中执行以下操作:

  1. 可选择包含 %soap.inc 包含文件,它定义了可能需要使用的宏。
  2. 调用 %SOAP.Security.UsernameToken的 Create() 类方法。例如:
 set user="SYSTEM"set pwd="_SYS" set utoken=##class(%SOAP.Security.UsernameToken).Create(user,pwd)

该方法具有可选的第三个参数(类型),用于指定如何将密码包含在用户名令牌中。该参数必须是以下之一:

  • $$$SOAPWSPasswordText — 以纯文本形式包含密码。这是默认设置。
  • $$$SOAPWSPasswordDigest — 不包括密码,而是包括其摘要。摘要、Nonce 和创建时间戳均按照 WS-Security 1.1 的规定派生。

重要提示:此选项仅适用于与支持该选项的第三方服务器交互的 SOAP 客户端。PasswordDigest 身份验证要求服务器存储纯文本密码,这在现代安全环境中是不可接受的。PasswordDigest 算法应被视为一项旧功能。要保护 <UsernameToken> 中的密码,应该使用 SSL/TLS、加密 <UsernameToken> 或使用这些技术的某种组合。

  • $$$SOAPWSPasswordNone — 不包括密码。

此方法创建 %SOAP.Security.UsernameToken 的实例,设置其用户名和密码属性,并返回该实例。此对象表示 <UsernameToken> 标头元素。

  1. 调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于方法参数,请在创建的实例中使用 %SOAP.Security.UsernameToken例如:
 do client.SecurityOut.AddSecurityElement(utoken)
  1. 发送 SOAP 消息。请参阅添加安全标头元素中的一般注释。

http://www.ppmy.cn/server/113257.html

相关文章

read()和readlines()的区别

首先&#xff0c;感谢大家的观看&#xff0c;谢谢大家的关注和点赞&#xff0c; 今天给大家讲一下&#xff0c;Python二级中常常出现的一个问题&#xff08;read和readlines的区别&#xff09;。不仅是选择题会问到区别&#xff0c;在实操题中&#xff0c;也会涉及到文件的读取…

界面控件KendoReact中文教程 - 如何创建动态进度条?

Kendo UI致力于新的开发&#xff0c;来满足不断变化的需求。现在我们非常自豪地宣布&#xff0c;通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for React能够为客户提供更好的用户体验&#xff0c;并且能够更快地构建更好的应用程序。 KendoR…

Elasticsearch的使用

1.Elasticsearch概述 1.1 搜索是什么 概念&#xff1a;用户输入想要的关键词&#xff0c;返回含有该关键词的所有信息。 场景&#xff1a; &#xff08;1&#xff09;互联网搜索&#xff1a;谷歌、百度、各种新闻首页 &#xff08;2&#xff…

苹果系统(MacOS)资源管理器和终端的来回切换

前言 苹果系统&#xff08;MacOS&#xff09;从某种程度上和Ubuntu等一众Linux系统有很多的相似的地方&#xff0c;很多时候非常依赖于命令行的操作&#xff0c;所以终端和资源管理器的配合使用就非常的关键。本博客整理出MacOS下资源管理器和终端的相互切换的方法&#xff0c;…

review——C++中的右值引用

目录 前言 一、什么是左值、什么是右值 二、右值引用 1.右值引用与右值引用的一些性质 2.解释一下左值引用与右值应用于程序员之间的关系 3.右值引用与移动语义 4.右值引用右值后变成左值的必要性与完美转发 1.右值引用引用右值后变为左值属性的必要性 2.完美转发 Ⅰ…

Java基于小程序公考学习平台的设计与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

借助el-steps和el-form实现超长规则配置的功能

目录 一、应用场景 二、开发流程 三、详细开发流程 四、总结 一、应用场景 最近开发了一个规则类的配置功能&#xff0c;这个功能之前就写过&#xff0c;最近完善了一下&#xff0c;所以将原先的规则变得更多元化&#xff0c;结构也更多了一层&#xff0c;添加新功能的时候…

深入掌握 Go 语言中的数值类型与循环技巧

数值数据类型 Go 语言原生支持整数、浮点数以及复数。以下部分将详细介绍 Go 支持的各种数值类型。 整数 Go 提供了四种不同大小的有符号和无符号整数类型&#xff0c;分别为 int8、int16、int32 和 int64&#xff0c;以及 uint8、uint16、uint32 和 uint64。每种类型名称中…