#InterSystems IRIS for Health

0 关注者 · 898 帖子

InterSystems IRIS for Health™ 是全球第一个也是唯一一个专门为医疗应用程序的快速开发而设计的数据平台,用于管理全世界最重要的数据。它包括强大的开箱即用的功能:事务处理和分析、可扩展的医疗保健数据模型、基于 FHIR 的解决方案开发、对医疗保健互操作性标准的支持等等。所有这些将使开发者能够快速实现价值并构建具有突破性的应用程序。了解更多信息

文章 姚 鑫 · 九月 13, 2024 3m read

第二十四章 加密安全标头元素 - 基本示例

以下示例调用 Web 客户端并发送已加密的 <UsernameToken>。在此示例中,正文未加密。

  Set client=##class(XMLEncrSecHeader.Client.XMLEncrSecHeaderSoap).%New()

  // Create UsernameToken
  set user="_SYSTEM"
  set pwd="SYS"
  set userToken=##class(%SOAP.Security.UsernameToken).Create(user,pwd)
 
  //get credentials for encryption
  set cred = ##class(%SYS.X509Credentials).GetByAlias("servernopassword") 

  //get EncryptedKey element and add it
  set encropt=$$$SOAPWSEncryptNone   ; means do not encrypt body
  set enckey=##class(%XML.Security.EncryptedKey).
0
0 97
文章 姚 鑫 · 九月 12, 2024 3m read

第二十三章 加密安全标头元素

本主题介绍如何加密 Web 服务和 Web 客户端发送的消息中的 WS-Security 标头内的元素。(此处描述的工具也可单独使用或与安全标头元素结合使用来加密 SOAP 主体。)

通常,会同时执行加密和签名。为简单起见,本主题仅介绍加密。有关结合加密和签名的信息,请参阅结合加密和签名。

使用派生密钥令牌进行加密和签名主题描述了加密 SOAP 消息部分内容的另一种方法。

加密安全标头元素

与上一主题中显示的加密技术不同,加密 WS-Security 标头元素的过程要求您指定 <EncryptedData> 元素如何连接到相应的 <EncryptedKey> 元素。

要加密安全标头元素,请执行以下操作:

  1. 可选择包含 %soap.inc 包含文件,它定义了可能需要使用的宏。
  2. 创建要加密的标头元素。例如:
 set userToken=##class(%SOAP.Security.UsernameToken).Create("_SYSTEM","SYS")
  1. 获取包含将接收 SOAP 消息的实体的公钥的凭证集。请参阅以编程方式检索凭证集。
 set credset=..SecurityIn.Signature.X509Credentials

请务必检查返回对象的类型,看它是否是 %SYS.X509Credential的实例,如以编程方式检索凭据集中所述

0
0 82
文章 姚 鑫 · 九月 11, 2024 3m read

第二十二章 加密 SOAP 主体 - 变体:使用签名的 SAML 断言

要使用签名的 SAML 断言中的证书中包含的公钥进行加密,请执行以下操作:

  1. 跳过前面步骤中的步骤 1–4
  2. 使用 Holder-of-key 方法的 <SubjectConfirmation>元素创建签名的 SAML 断言。请参阅创建和添加 SAML 令牌。
  3. 创建 <EncryptedKey> 元素。执行此操作时,使用签名的 SAML 断言作为 CreateX509() 类方法的第一个参数。例如:
 set enckey=##class(%XML.Security.EncryptedKey).CreateX509(signedassertion)
  1. 继续前面步骤中的步骤5。

消息加密示例

在此示例中,Web 客户端(未显示)发送签名的请求消息,而 Web 服务发送加密响应。

Web 服务从请求消息签名中的客户端证书中获取公钥,并使用该公钥在其响应中添加一个加密的 <EncryptedKey> 元素。 <EncryptedKey> 元素使用客户端的公钥加密,它包含用于加密响应消息正文的对称密钥。

Web服务如下:

Class XMLEncr.DivideWS Extends %SOAP.
0
0 118
文章 姚 鑫 · 九月 10, 2024 3m read

第二十一章 加密 SOAP 主体 - 变体:使用可识别证书的信息

<BinarySecurityToken> 包含序列化、base-64 编码格式的证书。可以忽略此令牌,而改用标识证书的信息;接收方使用此信息从相应位置检索证书。为此,请使用上述步骤,并进行以下更改:

  • 跳过步骤 34。也就是说,不要添加 <BinarySecurityToken>
  • 在步骤 5(创建加密密钥)中,使用步骤 1 中设置的凭据(而不是二进制安全令牌)作为 CreateX509() 的第一个参数。例如:
 set enckey=##class(%XML.Security.EncryptedKey).CreateX509(credset,,referenceOption)

对于第三个参数(referenceOption),可以指定<Signature> 元素如何使用证书。

如果指定一个凭据集作为第一个参数(正如我们在此变体中所做的那样),则referenceOption的默认值为$$$SOAPWSReferenceThumbprint。 可以选择指定一个值,如本节所述。 可以使用除$$$SOAPWSReferenceDirect之外的任何值。

X.509 证书的参考选项

WS-Security 标头简介部分介绍了在 SOAP 消息中使用证书的一种方法。

0
0 128
文章 姚 鑫 · 九月 9, 2024 2m read

第十七章 手动添加安全元素

本主题主要介绍如何手动向 IRIS Web 服务和 IRIS Web 客户端发送的消息中添加安全元素。

以下主题提供了有关特定安全任务的详细信息。

添加安全标头元素

要将安全元素添加到 WS-Security 标头元素,请在 Web 客户端或 Web 服务中使用以下常规过程:

  1. 创建适用类的实例。为此,可以使用名为 Create()CreateX509() 的方法(具体取决于类)。该实例表示 WS-Security 标头元素之一,例如 <Username> or <EncryptedKey>
  2. 通过更新 Web 客户端或 Web 服务的 SecurityOut 属性,将每个实例添加到 WS-Security 标头元素。为此,请调用 AddSecurityElement() 方法。
  3. 发送 SOAP 消息。WS-Security 标头包含在消息中,并包含添加到其中的元素。
  4. 对于后续传出消息:
  • 对于 Web 客户端,SecurityOut 属性保持不变,以便此实例的后续出站消息包含添加的安全标头。如果不希望这样,请将 SecurityOut 属性设置为 null
  • 对于 Web 服务,在第一个出站 SOAP 消息之后,SecurityOut属性会自动设置为null`。

标题元素的顺序

当将多个安全元素添加到标头时,按适当的顺序添加安全标头元素非常重要。

0
0 75
文章 姚 鑫 · 九月 8, 2024 3m read

第二十章 加密 SOAP 主体

本主题介绍如何加密 IRIS Web 服务和 Web 客户端发送的 SOAP 消息正文。

主题“加密安全标头元素”和“使用派生密钥令牌进行加密和签名”描述了如何加密安全标头元素以及加密 SOAP 主体的其他方法。

加密概述

IRISSOAP 消息加密的支持基于 WS-Security 1.1。反过来,WS-Security 遵循 XML 加密规范。根据后者规范,要加密 XML 文档:

  1. 生成一个对称密钥以供临时使用。
  2. 可以使用它来加密文档(或文档的选定部分)。

使用包含内容加密版本的 <EncryptedData> 元素替换文档的这些部分。

  1. 使用要向其发送文档的实体的公钥加密对称密钥。

可以从该实体的请求消息中包含的 X.509 证书中获取公钥。或者可以提前获取它。

  1. 在同一文档中的 <EncryptedKey> 元素中包含加密的对称密钥。 <EncryptedKey> 元素直接或间接地提供信息,使接收者能够确定用于解密此元素的密钥。

此信息可以包含在 <EncryptedKey> 元素中,或者 <EncryptedKey> 元素可以包含对包含 X.509 证书或签名的 SAML 断言的二进制安全令牌的直接引用。在后一种情况下,必须在添加 <Signature>元素之前将安全令牌添加到消息中。

0
0 147
文章 姚 鑫 · 九月 7, 2024 2m read

第十九章 添加时间戳和用户名令牌 - 时间戳和用户名令牌示例

时间戳和用户名令牌示例

此示例显示了一个需要密码验证的 Web 服务,以及一个在其请求消息中发送时间戳和用户名令牌的 Web 客户端。

注意:此示例以明文形式发送用户名和密码。

为了使此示例在自己的环境中运行,请首先执行以下操作:

  • 对于 Web 服务所属的 Web 应用程序,将该应用程序配置为仅支持密码验证:
  1. 从管理门户主页,选择系统管理 > 安全 > 应用程序 > Web 应用程序。
  2. 选择 Web 应用程序。
  3. 仅选择密码选项,然后选择保存。
  • 如果不使用默认设置,请编辑客户端以使用适当的 IRIS 用户名和密码。

Web服务如下:

Class Tokens.DivideWS Extends %SOAP.WebService
{

Parameter SECURITYIN = "REQUIRE";

///  Name of the Web service.
Parameter SERVICENAME = "TokensDemo";

///  SOAP namespace for the Web service
Parameter NAMESPACE = "http://www.myapp.org";

///  Divide arg1 by arg2 and return the result.
0
0 104
文章 姚 鑫 · 九月 6, 2024 3m read

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

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

概述

时间戳是 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.

0
0 169
文章 姚 鑫 · 九月 5, 2024 1m read

第十六章 WS-Policy 配置类详细信息 - 自定义配置示例

自定义配置示例

本节提供了一些自定义配置类的示例。

策略备选配置

以下配置类包括两种策略选择:使用 WS-Addressing 标头或不使用。

/// PolicyAlternatives.DivideWSConfig
Class PolicyAlternatives.DivideWSConfig Extends %SOAP.Configuration
{

XData service
{
<cfg:configuration xmlns:cfg="http://www.intersystems.com/configuration" 
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" 
xmlns:wsap="http://www.w3.org/2006/05/addressing/wsdl" 
xmlns:wsp="http://www.w3.org/ns/ws-policy" 
name="service">
  <cfg:service classname="PolicyAlternatives.
0
0 77
文章 姚 鑫 · 九月 4, 2024 3m read

第十五章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(二)

<method>

<method> 元素将策略与父 <service> 元素指定的 Web 服务或客户端内的特定 Web 方法相关联。<method> 元素包括以下项目:

Attribute or Element Purpose
name Web 方法的名称。
<wsp:Policy> (包括 01)指定要应用于此 Web 服务或客户端的策略(在操作级别)。指定 WS-Policy 1.2WS-Policy 1.5 策略表达式。指定<wsp:Policy>, <wsp:PolicyReference>, 或不指定。
<wsp:PolicyReference> (包括 01)为此 Web 方法指定可选的引用 WS-Policy 1.2WS-Policy 1.5 策略表达式。policyID 属性是对同一配置类中不同 XData 块中定义的本地策略的引用。有关示例,请参阅使用 PolicyReference 的配置。指定 <wsp:Policy>, <wsp:PolicyReference> 或两者都不指定。
<request> (包括 01)将策略与 Web 方法的请求消息关联。
0
0 109
文章 姚 鑫 · 九月 3, 2024 2m read

第十四章 WS-Policy 配置类详细信息 - 配置 XData 块的详细信息(一)

配置 XData 块的详细信息

本节介绍 Web 服务或客户端配置类的 XData 块的内容。

<configuration>, <service>, <method>, <request>, and <response>元素都必须位于以下命名空间中:

"http://www.intersystems.com/configuration"

在本主题中,前缀 cfg 指的是该命名空间。

<configuration>

<configuration> 元素是 XData 块中的根元素。此元素包括以下项目:

Attribute or Element Purpose
name (可选)此配置的名称。如果指定,则必须与 XData 块的名称匹配。
<service> (可选)将策略与 IRIS Web 服务或 Web 客户端关联。

<service>

<service> 元素将策略与 IRIS Web 服务或 Web 客户端关联。此元素包括以下项目:

Attribute or Element Purpose
classname (必填) IRIS 网络服务或客户端的完整包和类名。
0
0 107
文章 姚 鑫 · 九月 2, 2024 1m read

第十三章 WS-Policy 配置类详细信息 - 添加扩展属性

添加扩展属性

除了 cfg:wsdlElement 属性(前面讨论过)之外,可能还需要在策略元素中的以下元素中添加扩展属性:

  • <sp:X509Token> (在 <sp:InitiatorToken> or <sp:RecipientToken> 内)

    在此元素中,为 cfg:FindFieldcfg:FindValue 属性指定一个值,这些值指定用于此令牌的 IRIS 凭证集。

    • cfg:FindField 属性指定要搜索的字段的名称。通常为 Alias
    • cfg:FindValue 属性指定该字段的值。如果 cfg:FindFieldAlias,则这是 IRIS 凭证集的名称。

例如:

<sp:X509Token IncludeToken="http://schemas.xmlsoap.
0
0 96
文章 姚 鑫 · 九月 1, 2024 1m read

第十二章 WS-Policy 配置类详细信息 - 配置类基础知识

作为参考,本主题包含有关 IRIS 用于存储 WS-Policy 信息的配置类的详细信息。

配置类基础知识

要手动创建 WS-Policy 配置类,请创建 %SOAP.Configuration 的子类。在此类中,添加 XData 块,如下所示:

XData service
{
<cfg:configuration xmlns:cfg="http://www.intersystems.com/configuration" name="service">
...

XData 块具有以下一般结构:

XData service
{
<cfg:configuration ...>
   <service ...>
      <method ...>
         <request ...>
         <response ...>
...

<service>, <method>, <request>, and <response> 元素均可包含适用于该级别的策略信息。<service> 元素是

0
0 111
文章 姚 鑫 · 八月 29, 2024 2m read

第十一章 创建和使用策略 - 在运行时指定策略

在运行时指定策略

对于 IRIS Web 客户端,可以指定运行时要使用的策略;这将覆盖任何策略配置类。要在运行时指定策略,请设置 Web 客户端实例的 PolicyConfiguration 属性。该值必须具有以下形式:

Configuration class name:Configuration name

其中,配置类名称是策略配置类的完整包和类名,如本主题前面所述,配置名称是该类中策略的 <configuration> 元素的 name 属性的值

抑制不支持的策略的编译错误

默认情况下,当编译配置类时,如果配置包含 IRIS 不支持的任何策略表达式, IRIS 会发出错误。要避免此类错误,请在配置类中包含以下内容:

Parameter REPORTANYERROR=0;

当从 WSDL 生成 Web 客户端或 Web 服务时,如果 IRIS 还生成配置类,则会将此参数设置包含在该类中。

只要有一个受支持的策略替代方案,就可以忽略不受支持的替代方案。

编辑生成的策略

如果从 WSDL 生成配置类,并且 WSDL 位于 IRIS 此实例的外部,则必须编辑配置类以包含有关要使用的证书和 SSL/TLS 配置的信息。或者可以在运行时指定此信息。

下表给出了详细信息:

If the Generated Policy Includes .
0
0 73
文章 姚 鑫 · 八月 28, 2024 2m read

第十章 创建和使用策略 - 在运行时添加证书

在运行时添加证书

如果 Web 服务或客户端必须以编程方式选择并包含证书,请使用以下过程:

  1. 检索 %SYS.X509Credentials 的实例,如以编程方式检索凭据集中所述。

例如:

 set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password)

 set credset=..SecurityIn.Signature.X509Credentials 
  1. 创建 %SOAP.Security.BinarySecurityToken 实例,其中包含来自该凭证集的证书。例如:
 set bst=##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)

其中 credentials 是在上一步中检索到的凭证集。

这将返回一个代表 <BinarySecurityToken> 元素的对象,该元素以序列化的 base-64 编码形式携带证书。

  1. 调用Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于方法参数,请使用之前创建的二进制安全令牌。例如:
 do .
0
0 100
文章 姚 鑫 · 八月 28, 2024 2m read

第九章 创建和使用策略 - 创建并附加策略

创建并附加策略

要创建策略并将其附加到Web 服务或客户端,请创建并编译配置类。有多种方法可以创建此类:

  • 使用 GeneratePolicyFromWSDL() 方法从 WSDL 生成配置类。如果 Web 服务或客户端类已存在,并且您不想重新生成,则适用此选项。
  • 为现有的 Web 服务或客户端手动创建配置类。

如果从 WSDL 生成策略类,则可能需要按下一节所述对其进行编辑。

WSDL 生成策略

在某些情况下,可能已经有客户端类,但没有相应的配置类。例如,如果从 WSDL 生成客户端类,而 WSDL 后来被修改为包含 WS-Policy 信息,则可能会发生这种情况。在这种情况下,可以使用 %SOAP.WSDL.Reader中的实用程序方法单独生成配置类,如下所示:

  1. 创建 %SOAP.WSDL.Reader 的实例。
  2. 根据需要设置该实例的属性。请参阅 %SOAP.WSDL.Reader 类文档。

不要使用 Process() 方法。

  1. 调用实例的 GeneratePolicyFromWSDL() 方法。
0
0 135
文章 Jeff Liu · 八月 26, 2024 2m read

出于实际原因,可能需要在 Linux 服务器重启后自动启动 IRIS 实例。

下面是在 Linux 服务器重启时通过 systemd 自动启动 IRIS 的步骤:

1. 在 /etc/systemd/system/iris.service 中创建一个 iris.service 文件,其中包含以下信息

[Unit]
Description=InterSystems IRIS Data Platform
After=network.target

[Service]
Type=forking
User=irisusr
ExecStart=/usr/bin/iris start iris
ExecStop=/usr/bin/iris stop iris quietly
Restart=on-failure
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

注意:User应该填入IRIS实例的所有者。

2. 重新加载 systemd 配置管理器

sudo systemctl daemon-reload

3. 启用IRIS服务,使其自动启动

sudo systemctl enable iris

激活后将创建软链接,自动启动 IRIS:

Synchronizing state of iris.
0
0 222
文章 姚 鑫 · 八月 26, 2024 3m read

第八章 创建和使用策略

本主题介绍如何在 IRIS 中使用 WS-Policy 支持。WS-Policy 使您能够指定要使用或预期的 WS-Security 标头。它还使能够指定 WS-Addressing 标头和 MTOM 的使用(在创建 Web 服务和 Web 客户端中描述)。可以在单独的类中创建策略,而不是直接编辑 Web 服务或 Web 客户端。在大多数情况下,不需要进行低级编程。

概述

IRIS 中,Web 服务或客户端的策略(或策略集合)包含在单独的配置类中,即 %SOAP.Configuration的子类。编译该类时,策略生效。

通常不需要编码。但是,在某些情况下,可以通过编程指定详细信息,而不是将该元素硬编码到策略中。

配置类的作用

当编译配置类时,Web 服务或客户端的未来操作将受到如下影响:

  • Web 服务或客户端根据策略的详细信息在出站消息中包含额外的标头元素。
  • Web 服务或客户端根据策略验证传入的 SOAP 消息。这包括在适当的情况下解密传入的消息。
  • 如果合适,Web 服务或客户端可以选择加密传出消息。
  • 对于 Web 服务,WSDL 会自动受到影响。具体来说,会添加 <wsp:Policy> 元素,并且命名空间声明包括以下内容:
xmlns:wsp="http://www.w3.
0
0 93
文章 姚 鑫 · 八月 25, 2024 2m read

第七章 设置和其他常见活动 - 从入站消息中检索证书

从入站消息中检索证书

如果收到已进行数字签名的 SOAP 消息,则相关证书可在 %SYS.X509Credentials 的实例中找到。可以检索该证书。操作方法如下:

  1. 首先通过 Web 服务或 Web 客户端的 SecurityIn 属性访问 WS-Security 标头元素。这将返回 %SOAP.Security.Header 的实例。
  2. 然后执行以下操作之一:
  • 在实例中访问 %SOAP.Security.HeaderSignature 属性,该属性引用安全标头元素中的第一个 <Signature> 元素。
  • 在实例中使用 %SOAP.Security.HeaderFindElement() 方法访问实例中 %SOAP.Security.Header的第一个 <Signature> 元素。

无论哪种情况,结果都是在包含数字签名的 %XML.Security.Signature 实例。

  1. 访问签名对象的 X509Credentials 属性。
  2. 检查返回对象的类型,看它是否是 %SYS.X509Credentials 的实例。
 if $CLASSNAME(credset)'="%SYS.
0
0 98
文章 姚 鑫 · 八月 22, 2024 2m read

第六章 设置和其他常见活动 - 编辑 IRIS 凭证集

编辑 IRIS 凭证集

创建 IRIS 凭证集后,可以按如下方式编辑它:

  1. 在管理门户中,选择系统管理 > 安全 > X.509 凭证。
  2. 在凭证集表中,别名列的值用作标识符。对于要编辑的凭证集,请单击编辑。
  3. 根据需要进行编辑。有关这些字段的信息,请参阅上一节。
  4. 单击“保存”以保存更改。

无法更改凭证集的别名或证书;也无法添加、更改或删除关联的私钥。要进行此类更改,请创建新的凭证集。

通过编程方式检索凭证集

执行加密或签名时,必须指定要使用的证书。为此,可以选择 IRIS 凭证集。

当手动创建 WS-Security 标头时,必须以编程方式检索凭据集并使用它。

作为参考,本节讨论以下常见活动:

  • 如何检索存储的凭证集
  • 如何从入站消息中检索凭证集

检索存储的凭证集

要检索 %SYS.X509Credentials的实例,请调用 GetByAlias() 类方法。此方法返回包含证书和其他信息的 IRIS 凭证集。例如:

 set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password)
  • alias 是证书的别名。
  • pwd 是私钥密码;这仅适用于拥有证书的情况。仅当关联的私钥已加密且您在加载私钥文件时未加载密码时,才需要此密码。

如果不拥有该证书,则无法以任何形式访问私钥。

0
0 115
文章 姚 鑫 · 八月 5, 2023 3m read

第十三章 配置Production - 添加HL7业务操作

添加HL7业务操作

要从production中发送HL7消息,必须添加HL7业务操作。要将HL7业务操作添加到production品中,必须创建它,将其集成到production中,并根据需要对其进行配置。以下小节提供详细信息。

创建HL7业务操作

HL7业务操作添加到production中:

  1. Management Portal的“production Configuration”页面(在“Home”页面选择“Interoperability > Configure > production”)中显示production结果。
  2. 在Operations列中,单击Add按钮(加号)。
  3. 单击“HL7 Output”
  4. 从输出类型列表中单击以下其中一个:
  • TCP
  • File
  • FTP
  • HTTP
  • SOAP

此选择确定此业务操作的主机类。

  1. 对于“操作名称”,键入此业务操作的名称。名称在业务操作中应该是唯一的。不要使用句号或空格。

默认值是此操作所基于的类的名称。 6. 单击OK

除了此处使用的 HL7 业务操作之外, 还提供两个简单的业务操作:EnsLib.File.PassthroughOperationEnsLib.FTP.PassthroughOperation

1
0 166
文章 姚 鑫 · 八月 21, 2024 3m read

第五章 设置和其他常见活动 - 创建 IRIS 凭证集

创建 IRIS 凭证集

要创建 IRIS 凭证集:

  1. 获取以下文件:
  • 个人 X.509 证书,采用 PEM 编码的 X.509 格式。

这可以是自己的证书,也可以是从希望与之交换 SOAP 消息的实体获取的证书。

  • (可选)关联的私钥,采用 PEM 编码的 PKCS#1 格式。

这仅适用于拥有证书的情况。如果不想签署出站消息,则无需加载私钥文件。

  • (可选)包含根证书的文件,即 PEM 编码格式的受信任的 CA X.509 证书,可与此凭证集一起使用。

有关创建这些文件的信息超出了本文档的范围。

  1. 在管理门户中,选择系统管理 > 安全 > X.509 凭证。
  2. 单击“创建新凭证”。
  3. 指定以下值:
  • Alias — 指定一个唯一的、区分大小写的字符串来标识此凭证集。此属性是必需的。
  • 包含 X.509 证书的文件 — 单击浏览...并导航到证书文件。此属性是必需的。
  • 包含相关私钥的文件 — 单击浏览...并导航到该文件。
  • 私钥密码和私钥密码(确认)— 指定私钥的密码。如果不指定密码,则在检索凭证集时必须提供密码。

仅当为包含关联私钥的文件指定值时才会显示这些字段。

  • 包含受信任的证书颁发机构 X.509 证书的文件 — 此凭证集信任的任何 CAX.509 证书的路径和文件名。证书必须采用 PEM
0
0 101
文章 姚 鑫 · 八月 20, 2024 2m read

第四章 设置和其他常见活动

作为参考,本主题介绍了用于保护 Web 服务的常见活动。

执行设置任务

对于大多数与 SOAP 安全相关的任务,必须首先执行以下任务:

  • 提供可信证书供 IRIS 使用
  • 创建 IRIS 凭证集

这些任务也是使用 XML 工具中描述的某些任务的先决条件。

可能还需要创建 SSL/TLS 配置。有关信息,请参阅 TLS 指南。

IRIS 提供可信证书

IRIS 使用其自己的可信证书集合来验证入站 SOAP 消息(或 XML 文档)中的用户证书和签名。在加密出站 SOAP 消息中的内容或加密 XML 文档时,它也会使用这些证书和签名。此集合可供此 IRIS 安装的所有命名空间使用。要创建此集合,请创建以下两个文件并将它们放在系统管理器的目录中:

  • iris.cer — 包含根证书,即 PEM 编码格式的受信任 CA X.509 证书。如果想在 IRIS 中使用任何 WS-PolicyWS-Security 功能,则需要此文件。
  • iris.crl — 包含 PEM 编码格式的 X.509 证书撤销列表。此文件是可选的。

请注意,可以使用特定的 IRIS 凭证集作为备用根证书;请参阅下一节。

有关创建这些文件的信息超出了本文档的范围。有关 X.509(指定证书和证书撤销列表的内容)的信息,请参阅 RFC5280 (https://www.ietf.

0
0 98
文章 姚 鑫 · 八月 18, 2024 3m read

第三章 使用 SOAP 保护 Web 服务 - IRIS 中的 WS-Policy 支持

IRIS 中的 WS-Policy 支持

支持 WS-Policy 1.2 (https://www.w3.org/Submission/WS-Policy/) 和 WS-Policy 1.5 (https://www.w3.org/TR/ws-policy) 框架以及相关的特定策略类型:

0
0 76
文章 Michael Lei · 八月 17, 2024 3m read

各位社区成员,大家好,

利用面向您的组织中的各个角色提供的全套 InterSystems 学习资源(在线或面授形式),您可以全面挖掘 InterSystems IRIS 的潜力,并帮助您的团队完成入门流程。 开发者、系统管理员、数据分析师和集成商可以快速上手。

学习服务提供的资源

在深入学习角色特定的资源之前,我们先来总体了解一下现有的学习资源:

  • 💻 在线学习:在 learning.intersystems.com 上免费注册,以访问自定进度的课程、视频和练习。 您还可以完成基于任务的学习路径或基于角色的计划,以促进您的职业发展。
  • 👩‍🏫 课堂培训:查看直播、面授或虚拟课堂培训的时间安排,或为您的团队申请不公开课程。 访问 classroom.intersystems.com 了解详细信息。
  • 📘 InterSystems IRIS 文档:全面的参考资料、指南和操作说明文章。 探索文档
  • 💬 开发者社区:与其他开发者互动、发布问题、阅读文章并及时了解最新公告。 请先阅读本帖,其中介绍了在开发者社区中学习的技巧
  • 📧 支持:如需获取技术支持,请发送电子邮件至 support@intersystems.com
0
0 573
文章 Michael Lei · 八月 17, 2024 1m read

可定制以收集全方位的身心健康数据。

Caren从可穿戴设备和护理设备点(如iHealth®、Fitbit®、Omron®、Tenovi®和Withings®)收集数据。数据显示在网络仪表板上,可以在电子病历系统内也可以独立查看。Caren可以定制,使用API从专门的医疗设备收集健康数据。

语音交互式移动应用程序提高了患者的参与度。

用户友好的语音交互式移动应用程序提供了简单、直观的设计,用户只需轻点一下即可进入或查看测量和观察结果。

公司介绍:https://www.carenmhealth.com

软件试用

目标使用者--临床医生和患者

类别--临床研究、疾病管理、远程医疗

应用程序类型--SMART ON FHIR应用程序

FHIR 版本--R4

支持的电子病历系统--Cerner、Epic等支持FHIR API的软件系统

0
0 159
文章 姚 鑫 · 八月 16, 2024 4m read

第二章 使用 SOAP 保护 Web 服务 - WS-Security 标头简介

WS-Security 标头简介

SOAP 消息在 WS-Security 标头元素(SOAP <Header> 元素的 <Security> 子元素)中携带安全元素。以下示例显示了一些可能的组件:

这些元素如下:

  • 时间戳标记 (<Timestamp>) 包含 <Created><Expires> 元素,它们指定此消息有效的时间范围。严格来说,时间戳不是安全元素。但是,如果时间戳已签名,则可以使用它来避免重放攻击。
  • 二进制安全令牌 (<BinarySecurityToken>) 是二进制编码的令牌,其中包含使接收者能够验证签名或解密加密元素的信息。您可以将其与签名元素、加密元素和断言元素一起使用。
  • 用户名令牌 (<UsernameToken>) 使 Web 客户端能够登录 Web 服务。它包含 Web 服务所需的用户名和密码;默认情况下,这些内容以`文形式包含。有多种保护密码的选项。
  • 断言元素 (<Assertion>) 包含创建的 SAML 断言。断言可以是签名的,也可以是未签名的。

断言元素可以包含主题确认元素 (<SubjectConfirmation>)。此元素可以使用 Holder-of-key 方法或 Sender-vouches 方法。在前一种情况下,断言携带可用于其他目的的密钥材料。

0
0 103
文章 姚 鑫 · 八月 15, 2024 3m read

第一章 使用 SOAP 保护 Web 服务

IRIS 支持 WS-SecurityWS-PolicyWS-SecureConversationWS-ReliableMessaging 规范的部分内容,这些规范描述了如何为 Web 服务和 Web 客户端添加安全性。本主题总结了这些工具并列出了支持的标准。

如果 IRIS Web 客户端使用需要身份验证的 Web 服务,并且有特殊原因,则可以使用较旧的 WS-Security 登录功能。请参阅使用 WS-Security 登录功能。

IRIS 中与 SOAP 安全相关的工具

IRIS 提供以下与 Web 服务和 Web 客户端安全相关的工具:

  • 能够为 IRIS 提供可信证书,以用于验证入站消息中收到的证书和签名。
  • 能够表示 X.509 证书。可以在 IRISSYS 数据库中存储拥有的证书以及将与之通信的实体的证书。对于拥有的证书,如果需要签署出站消息,还可以存储相应的私钥。

IRISSYS 数据库中,X.509 证书包含在 IRIS 凭证集中,具体来说,包含在 %SYS.X509Credentials实例中。可以使用此类的方法将证书(以及可选的关联私钥文件,如果适用)加载到数据库中。可以直接执行这些方法,也可以使用管理门户。

可以指定谁拥有凭证集以及谁可以使用它。

%SYS.

0
0 122
文章 姚 鑫 · 八月 14, 2024 2m read

第十章 指定 SAX 解析器的标志

指定 SAX 解析器的标志

Web 客户端调用 Web 服务时,它会在内部使用 SAX 解析器,这是 IRIS 附带的第三方产品。可以设置 Web 客户端的 SAXFlags 属性,以设置解析器要使用的标志。

要使用 WS-Security 登录功能:

  1. 确保在 Web 客户端和托管 Web 服务的 Web 服务器之间使用 SSLWS-Security 标头以明文形式发送,因此除非使用 SSL,否则此技术并不安全。请参阅将客户端配置为使用 SSL
  2. 调用 Web 客户端的 WSSecurityLogin() 方法。此方法接受用户名和密码,生成带有明文密码的 WS-Security 用户名令牌,并将 WS-Security 标头添加到 Web 请求。
  3. 调用 Web 方法。

此技术仅将安全令牌添加到下一条 SOAP 消息中。

使用 HTTP 身份验证

某些 Web 服务需要 HTTP 身份验证,而不是使用 WS-Security(在“保护 Web 服务”中进行了描述)。

0
0 72
文章 姚 鑫 · 八月 13, 2024 2m read

第九章 从 Web 客户端指定自定义传输

从 Web 客户端指定自定义传输

默认情况下,如果使用 Web 客户端,Web 客户端将使用 HTTPSOAP 消息传输到 Web 服务并接收响应。可以定义并使用自己的传输类。

背景

为了与其使用的 Web 服务进行通信, Web 客户端需要一个传输类。传输类包含与通信相关的参数、属性和方法。整体通信工作方式如下:

  1. 运行 Web 客户端代理方法时,Web 客户端实例会检查其 Transport 属性的值。

如果此属性为空,则 Web 客户端实例将使用自身作为传输类实例。可以将 Transport 属性设置为其他合适类的实例(如果已定义此类)。

  1. Web 客户端实例执行传输类的 DoSOAPRequest() 方法,并传递以下参数:

a. Web 客户端类的 OREF

b. 指定 SOAP 操作的字符串。

c. 包含以 UTF-8 编码的请求的流。

d. (通过引用)包含响应的流。

  1. Web 客户端实例检查结果的状态并采取相应行动。

对于 HTTP 传输,DoSOAPRequest() 方法包括以下逻辑:

  1. 创建请求对象(%Net.HttpRequest 的实例)并设置其属性。此处,该方法使用 Web 客户端实例的属性值,特别是 HttpRequestHeaderCharset 和其他与 HTTP 相关的属性。
0
0 88