文章 姚 鑫 · 十月 1, 2024 阅读大约需 2 分钟 第三十七章 结合加密和签名 - 安全标头元素的顺序 第三十七章 验证和解密入站消息 本主题介绍如何验证 IRIS Web 服务或 Web 客户端收到的消息中的安全元素(并自动解密任何加密内容)。 概述 IRIS 网络服务和网络客户端可以验证入站 SOAP 消息的 WS-Security 标头元素,以及自动解密入站消息。 IRIS Web 服务和 Web 客户端还可以处理已签名的 SAML 断言令牌并验证其签名。但是,验证 SAML 断言的详细信息是您的应用程序的责任。 如果使用安全策略,所有上述活动都是自动的。 在所有场景中,IRIS 都使用其根颁发机构证书集合;请参阅设置和其他常见活动。 验证 WS-Security 标头 要验证任何入站 SOAP 消息中包含的 WS-Security 标头元素,请执行以下操作: #InterSystems IRIS for Health 0 0 0 26
文章 姚 鑫 · 九月 30, 2024 阅读大约需 2 分钟 第三十六章 结合加密和签名 - 使用对称密钥签名并加密 第三十六章 结合加密和签名 - 使用对称密钥签名并加密 使用对称密钥签名并加密 签名然后加密(使用对称密钥时): 按照使用<DerivedKeyToken> 进行加密中的步骤进行操作。 按照使用<DerivedKeyToken> 进行签名中的步骤进行操作。 使用元素 以下示例使用对称密钥进行签名和加密。它使用消息接收者的公钥创建一个 <EncryptedKey>元素,然后使用该元素生成两个 <DerivedKeyToken> 元素,一个用于签名,一个用于加密: #InterSystems IRIS for Health 0 0 0 29
文章 姚 鑫 · 九月 29, 2024 阅读大约需 3 分钟 第三十五章 结合加密和签名 第三十五章 结合加密和签名 可以在同一条消息中加密和签名。在大多数情况下,只需组合前面主题中给出的方法即可。本主题讨论了多种场景。 使用非对称密钥签名并加密 要签名然后加密(使用非对称密钥时),请执行以下操作: 按照添加数字签名中的步骤进行操作。 按照加密安全标头元素中的步骤进行操作。 或者按照加密 SOAP 主体中的步骤进行操作。 使用非对称密钥加密并签名 要仅加密 SOAP 主体,然后添加数字签名(使用非对称密钥时),请执行以下操作: 按照加密 SOAP 主体中的步骤进行操作。 按照添加数字签名中的步骤进行操作。 要加密任何安全标头元素,然后添加数字签名(使用非对称密钥时),必须使用顶级 <ReferenceList> 元素(在文档的其他地方不需要)。在这种情况下,请执行以下操作: #InterSystems IRIS for Health 0 0 0 29
文章 姚 鑫 · 九月 26, 2024 阅读大约需 2 分钟 第三十四章 使用派生密钥令牌进行加密和签名 - 使用 DerivedKeyToken 进行签名 第三十四章 使用派生密钥令牌进行加密和签名 - 使用 进行签名 要使用 <DerivedKeyToken>进行签名,请使用以下步骤: 如果想要签署任何安全标头元素,请创建这些安全标头元素。 创建 <DerivedKeyToken> 并将其添加到 WS-Security 标头,如创建和添加 <DerivedKeyToken> 中所述。 请注意,此步骤还会创建并添加 <DerivedKeyToken> 所基于的 <EncryptedKey> 元素。 #InterSystems IRIS for Health 0 0 0 22
文章 姚 鑫 · 九月 25, 2024 阅读大约需 1 分钟 第三十三章 使用派生密钥令牌进行加密和签名 - 使用 DerivedKeyToken _进行加密(一) 第三十三章 使用派生密钥令牌进行加密和签名 - 使用 进行加密(一) 如果加密了任何安全标头元素,请将它们添加到 WS-Security 标头元素中。为此,请调用 Web 客户端或 Web 服务的SecurityOut 属性的 AddSecurityElement() 方法。在这种情况下,需要两个参数: a. 安全标头元素(而不是从中生成的的 %XML.Security.EncryptedData)。 b. 引用列表实例。第二个参数指定将第一个参数指定的项目放在何处。如果参数是 A、B,则 IRIS 确保 A 在 B 之后。指定此项以便收件人首先处理引用列表,然后再处理依赖于它的加密安全标头元素。 #InterSystems IRIS for Health 0 0 0 16
文章 姚 鑫 · 九月 24, 2024 阅读大约需 2 分钟 第三十二章 使用派生密钥令牌进行加密和签名 - 使用 DerivedKeyToken 进行加密 第三十二章 使用派生密钥令牌进行加密和签名 - 使用 进行加密 要使用 <DerivedKeyToken> 进行加密,请使用以下步骤: 如果要加密一个或多个安全标头元素,请创建这些安全标头元素。. 创建 <DerivedKeyToken> 并将其添加到 WS-Security 标头,如创建和添加 <DerivedKeyToken> 中所述。 请注意,此步骤还会创建并添加 <EncryptedKey> 所基于的 <EncryptedKey> 元素。 #InterSystems IRIS for Health 0 0 0 33
文章 姚 鑫 · 九月 23, 2024 阅读大约需 2 分钟 第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式 DerivedKeyToken 第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式 变体:创建隐式 <DerivedKeyToken> 还可以创建隐式 <DerivedKeyToken>,这是引用 <DerivedKeyToken> 的快捷方法。在此方法中: 消息中不包含 <DerivedKeyToken> 在使用 <DerivedKeyToken> 的元素中,<SecurityTokenReference> 元素指定 Nonce 属性,该属性包含用于 <DerivedKeyToken> 的 nonce 值。这向消息接收者表明派生密钥令牌是隐含的,并且是从引用的令牌派生的。 要创建隐式 <DerivedKeyToken>,请使用前面描述的一般过程,但有两处更改: #InterSystems IRIS for Health 1 0 0 27
文章 Nicky Zhu · 九月 23, 2024 阅读大约需 2 分钟 基于向量搜索的患者相似度匹配示例程序 演示程序 使用向量搜索在 IRIS for Health 上运行的病人相似性比较演示。 使用向量搜索计算相似度,在向量基础上比较不同病人之间的个人属性,如姓名、出生日期、地址等。得分越高,被比较的病人越有可能是同一个人。 本演示程序使用 sentence-transformers model 将文本转换为向量,然后使用 IRIS 向量函数来存储、读取和比较向量。 流程原理 #InterSystems IRIS for Health Open Exchange app 1 0 0 50
文章 姚 鑫 · 九月 22, 2024 阅读大约需 3 分钟 第三十章 使用派生密钥令牌进行加密和签名 第三十章 使用派生密钥令牌进行加密和签名 IRIS 支持 WS-SecureConversation 1.4 定义的 <DerivedKeyToken> 元素。可以创建并使用<DerivedKeyToken> 元素进行加密和签名,作为前三个主题中描述的方法的替代。 通常,会同时执行加密和签名。为简单起见,本主题分别介绍这些任务。有关结合加密和签名的信息,请参阅结合加密和签名。 概述 <DerivedKeyToken> 元素旨在携带发送者和接收者可以独立使用的信息来生成相同的对称密钥。这些方可以使用该对称密钥对 SOAP 消息的指定部分进行加密、签名或同时执行这两种操作。 要生成和使用 <DerivedKeyToken>,请执行以下操作: #InterSystems IRIS for Health 0 1 0 42
文章 姚 鑫 · 九月 18, 2024 阅读大约需 2 分钟 第二十八章 添加数字签名 - 指定摘要方法 第二十八章 添加数字签名 - 指定摘要方法 指定摘要方法 默认情况下,签名的摘要值是通过 SHA-1 算法计算的,安全标头中的 <Signature> 元素包含如下内容: <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> <DigestValue>waSMFeYMruQn9XHx85HqunhMGIA=</DigestValue> 可以为签名指定不同的摘要方法。为此,调用 %XML.Security.Signature 实例的 SetDigestMethod() 方法。对于参数,请使用以下宏之一(包含在 %soap.inc 文件中): $$$SOAPWSsha1 (the default) -$$$SOAPWSsha256 #InterSystems IRIS for Health 0 0 0 35
文章 姚 鑫 · 九月 17, 2024 阅读大约需 2 分钟 第二十七章 添加数字签名 - 变体:使用签名的 SAML 断言 第二十七章 添加数字签名 - 变体:使用签名的 SAML 断言 要添加在签名的 SAML 断言中使用证书的数字签名,请执行以下操作: #InterSystems IRIS for Health 0 0 0 30
文章 姚 鑫 · 九月 15, 2024 阅读大约需 4 分钟 第二十六章 添加数字签名 - 示例 第二十六章 添加数字签名 - 示例 示例 此示例显示了对其响应消息进行签名的 Web 服务。 为了使此示例在自己的环境中运行,请首先执行以下操作: 为服务器创建证书。 将此证书加载到服务器端的 IRIS 中,创建名为 servercred 的凭证。执行此操作时,还要加载私钥文件并提供其密码(这样 Web 服务在签署其响应消息时就不必提供该密码。) 该 Web 服务指的是具有此确切名称的 IRIS 凭证集。 #InterSystems IRIS for Health 0 0 0 24
文章 姚 鑫 · 九月 14, 2024 阅读大约需 4 分钟 第二十五章 添加数字签名 第二十五章 添加数字签名 本主题介绍如何向 IRIS Web 服务和 Web 客户端发送的 SOAP 消息添加数字签名。 通常,会同时执行加密和签名。为简单起见,本主题仅介绍签名。有关结合加密和签名的信息,请参阅主题结合加密和签名。 主题使用派生密钥令牌进行加密和签名描述了向 SOAP 消息添加数字签名的另一种方法。 数字签名概述 可以使用数字签名来检测消息是否被篡改,或者简单地验证消息的某一部分是否确实由所列实体生成。与传统的手工签名一样,数字签名是对文档的附加,只有文档的创建者才能创建,并且不容易伪造。 IRIS 对 SOAP 消息的数字签名的支持基于 WS-Security 1.1。反过来,WS-Security 遵循 XML 签名规范。根据后者的规范,要对 XML 文档进行签名: #InterSystems IRIS for Health 0 0 0 33
文章 姚 鑫 · 九月 13, 2024 阅读大约需 3 分钟 第二十四章 加密安全标头元素 - 基本示例 第二十四章 加密安全标头元素 - 基本示例 以下示例调用 Web 客户端并发送已加密的 <UsernameToken>。在此示例中,正文未加密。 #InterSystems IRIS for Health 0 0 0 25
文章 姚 鑫 · 九月 12, 2024 阅读大约需 3 分钟 第二十三章 加密安全标头元素 第二十三章 加密安全标头元素 本主题介绍如何加密 Web 服务和 Web 客户端发送的消息中的 WS-Security 标头内的元素。(此处描述的工具也可单独使用或与安全标头元素结合使用来加密 SOAP 主体。) 通常,会同时执行加密和签名。为简单起见,本主题仅介绍加密。有关结合加密和签名的信息,请参阅结合加密和签名。 使用派生密钥令牌进行加密和签名主题描述了加密 SOAP 消息部分内容的另一种方法。 加密安全标头元素 与上一主题中显示的加密技术不同,加密 WS-Security 标头元素的过程要求您指定 <EncryptedData> 元素如何连接到相应的 <EncryptedKey> 元素。 要加密安全标头元素,请执行以下操作: #InterSystems IRIS for Health 0 0 0 26
文章 姚 鑫 · 九月 11, 2024 阅读大约需 3 分钟 第二十二章 加密 SOAP 主体 - 变体:使用签名的 SAML 断言 第二十二章 加密 SOAP 主体 - 变体:使用签名的 SAML 断言 要使用签名的 SAML 断言中的证书中包含的公钥进行加密,请执行以下操作: #InterSystems IRIS for Health 0 0 0 35
公告 Claire Zheng · 九月 11, 2024 报名参会 | 面向未来的InterSystems IRIS数据平台:五大亮点提速数据潜力挖掘与AI应用 HI 各位开发者们, 📅2024年9月23日🕑14:00-15:30🕞,InterSystems将举办线上研讨会,点击🔔此处🔔报名参会。 此次研讨会以“面向未来的数据平台——InterSystems IRIS五大亮点提速数据潜力挖掘与AI应用”为主题,帮助您了解InterSystems IRIS数据平台的五大亮点: 使用InterSystems IRIS for Health进行FHIR开发 使用Python进行互操作Production开发 InterSystems IRIS列存储 InterSystems IRIS外部表(Foreign Table) InterSystems IRIS向量和基于向量检索的患者相似度匹配 ##嵌入式 Python #FHIR #Python #Vector Search #互操作性 #InterSystems IRIS #InterSystems IRIS for Health 0 2 0 53
文章 姚 鑫 · 九月 10, 2024 阅读大约需 3 分钟 第二十一章 加密 SOAP 主体 - 变体:使用可识别证书的信息 第二十一章 加密 SOAP 主体 - 变体:使用可识别证书的信息 <BinarySecurityToken> 包含序列化、base-64 编码格式的证书。可以忽略此令牌,而改用标识证书的信息;接收方使用此信息从相应位置检索证书。为此,请使用上述步骤,并进行以下更改: #InterSystems IRIS for Health 1 0 0 39
文章 姚 鑫 · 九月 9, 2024 阅读大约需 2 分钟 第十七章 手动添加安全元素 第十七章 手动添加安全元素 本主题主要介绍如何手动向 IRIS Web 服务和 IRIS Web 客户端发送的消息中添加安全元素。 以下主题提供了有关特定安全任务的详细信息。 添加安全标头元素 要将安全元素添加到 WS-Security 标头元素,请在 Web 客户端或 Web 服务中使用以下常规过程: #InterSystems IRIS for Health 0 0 0 22
文章 姚 鑫 · 九月 8, 2024 阅读大约需 3 分钟 第二十章 加密 SOAP 主体 第二十章 加密 SOAP 主体 本主题介绍如何加密 IRIS Web 服务和 Web 客户端发送的 SOAP 消息正文。 主题“加密安全标头元素”和“使用派生密钥令牌进行加密和签名”描述了如何加密安全标头元素以及加密 SOAP 主体的其他方法。 加密概述 IRIS 对 SOAP 消息加密的支持基于 WS-Security 1.1。反过来,WS-Security 遵循 XML 加密规范。根据后者规范,要加密 XML 文档: 生成一个对称密钥以供临时使用。 可以使用它来加密文档(或文档的选定部分)。 使用包含内容加密版本的 <EncryptedData> 元素替换文档的这些部分。 #InterSystems IRIS for Health 1 0 0 48
文章 姚 鑫 · 九月 7, 2024 阅读大约需 2 分钟 第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例 第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例 时间戳和用户名令牌示例 此示例显示了一个需要密码验证的 Web 服务,以及一个在其请求消息中发送时间戳和用户名令牌的 Web 客户端。 注意:此示例以明文形式发送用户名和密码。 为了使此示例在自己的环境中运行,请首先执行以下操作: 对于 Web 服务所属的 Web 应用程序,将该应用程序配置为仅支持密码验证: 从管理门户主页,选择系统管理 > 安全 > 应用程序 > Web 应用程序。 选择 Web 应用程序。 仅选择密码选项,然后选择保存。 如果不使用默认设置,请编辑客户端以使用适当的 IRIS 用户名和密码。 Web服务如下: #InterSystems IRIS for Health 0 0 0 31
文章 姚 鑫 · 九月 6, 2024 阅读大约需 3 分钟 第十八章 添加时间戳和用户名令牌 第十八章 添加时间戳和用户名令牌 本主题讨论时间戳和用户令牌。 概述 时间戳是 WS-Security 标头中的 <Timestamp> 安全元素。严格来说,时间戳不是安全元素。但是,可以使用它来避免重放攻击。时间戳对于自定义日志记录也很有用。 用户名令牌是 WS-Security 标头中的 <UsernameToken> 安全元素;它带有用户名。它还可以带有相应的密码(可选为摘要形式)。通常使用它进行身份验证,即允许 IRIS Web 客户端使用需要密码的 Web 服务。 注意:默认情况下,WS-Security 标头元素以明文形式发送。要保护 <UsernameToken> 中的密码,应该使用 SSL/TLS、加密 <UsernameToken>(如其他地方所述),或者使用这些技术的某种组合。 #InterSystems IRIS for Health 0 0 0 41
文章 姚 鑫 · 九月 5, 2024 阅读大约需 1 分钟 第十六章 WS-Policy 配置类详细信息 - 自定义配置示例 第十六章 WS-Policy 配置类详细信息 - 自定义配置示例 自定义配置示例 本节提供了一些自定义配置类的示例。 策略备选配置 以下配置类包括两种策略选择:使用 WS-Addressing 标头或不使用。 #InterSystems IRIS for Health 0 0 0 25
文章 姚 鑫 · 九月 4, 2024 阅读大约需 3 分钟 第十五章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(二) 第十五章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(二) <method> <method> 元素将策略与父 <service> 元素指定的 Web 服务或客户端内的特定 Web 方法相关联。<method> 元素包括以下项目: #InterSystems IRIS for Health 0 0 0 37
文章 姚 鑫 · 九月 3, 2024 阅读大约需 2 分钟 第十四章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(一) 第十四章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(一) 配置 XData 块的详细信息 本节介绍 Web 服务或客户端配置类的 XData 块的内容。 <configuration>, <service>, <method>, <request>, and <response>元素都必须位于以下命名空间中: "http://www.intersystems.com/configuration" 在本主题中,前缀 cfg 指的是该命名空间。 <configuration> <configuration> 元素是 XData 块中的根元素。此元素包括以下项目: #InterSystems IRIS for Health 0 0 0 33
文章 姚 鑫 · 九月 2, 2024 阅读大约需 1 分钟 第十三章 WS-Policy 配置类详细信息 - 添加扩展属性 第十三章 WS-Policy 配置类详细信息 - 添加扩展属性 添加扩展属性 除了 cfg:wsdlElement 属性(前面讨论过)之外,可能还需要在策略元素中的以下元素中添加扩展属性: <sp:X509Token> (在 <sp:InitiatorToken> or <sp:RecipientToken> 内) 在此元素中,为 cfg:FindField 和 cfg:FindValue 属性指定一个值,这些值指定用于此令牌的 IRIS 凭证集。 #InterSystems IRIS for Health 0 0 0 33
文章 姚 鑫 · 九月 1, 2024 阅读大约需 1 分钟 第十二章 WS-Policy 配置类详细信息 - 配置类基础知识 第十二章 WS-Policy 配置类详细信息 - 配置类基础知识 作为参考,本主题包含有关 IRIS 用于存储 WS-Policy 信息的配置类的详细信息。 配置类基础知识 要手动创建 WS-Policy 配置类,请创建 %SOAP.Configuration 的子类。在此类中,添加 XData 块,如下所示: XData service { <cfg:configuration xmlns:cfg="http://www.intersystems.com/configuration" name="service"> ... XData 块具有以下一般结构: #InterSystems IRIS for Health 0 0 0 38
文章 姚 鑫 · 八月 29, 2024 阅读大约需 2 分钟 第十一章 创建和使用策略 - 在运行时指定策略 第十一章 创建和使用策略 - 在运行时指定策略 在运行时指定策略 对于 IRIS Web 客户端,可以指定运行时要使用的策略;这将覆盖任何策略配置类。要在运行时指定策略,请设置 Web 客户端实例的 PolicyConfiguration 属性。该值必须具有以下形式: Configuration class name:Configuration name 其中,配置类名称是策略配置类的完整包和类名,如本主题前面所述,配置名称是该类中策略的 <configuration> 元素的 name 属性的值 抑制不支持的策略的编译错误 默认情况下,当编译配置类时,如果配置包含 IRIS 不支持的任何策略表达式, IRIS 会发出错误。要避免此类错误,请在配置类中包含以下内容: #InterSystems IRIS for Health 0 0 0 27
文章 姚 鑫 · 八月 28, 2024 阅读大约需 2 分钟 第十章 创建和使用策略 - 在运行时添加证书 第十章 创建和使用策略 - 在运行时添加证书 在运行时添加证书 如果 Web 服务或客户端必须以编程方式选择并包含证书,请使用以下过程: 检索 %SYS.X509Credentials 的实例,如以编程方式检索凭据集中所述。 例如: set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password) 或 #InterSystems IRIS for Health 0 0 0 32
文章 姚 鑫 · 八月 28, 2024 阅读大约需 2 分钟 第九章 创建和使用策略 - 创建并附加策略 第九章 创建和使用策略 - 创建并附加策略 创建并附加策略 要创建策略并将其附加到Web 服务或客户端,请创建并编译配置类。有多种方法可以创建此类: 使用 GeneratePolicyFromWSDL() 方法从 WSDL 生成配置类。如果 Web 服务或客户端类已存在,并且您不想重新生成,则适用此选项。 为现有的 Web 服务或客户端手动创建配置类。 如果从 WSDL 生成策略类,则可能需要按下一节所述对其进行编辑。 从 WSDL 生成策略 在某些情况下,可能已经有客户端类,但没有相应的配置类。例如,如果从 WSDL 生成客户端类,而 WSDL 后来被修改为包含 WS-Policy 信息,则可能会发生这种情况。在这种情况下,可以使用 %SOAP.WSDL.Reader中的实用程序方法单独生成配置类,如下所示: #Java #SOAP #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 38