文章
· 四月 24, 2021 阅读大约需 6 分钟
置顶--InterSystems 中文开发者社区精华文章集锦

欢迎大家将相关的经验在这个讨论区分享。

板块 文章列表
征文大赛作品集锦

2022年首届InterSystems 技术征文大赛集锦

2023年第二届InterSystems 技术征文大赛集锦

官方文档

我司即将推出中文官方文档门户,欢迎大家把需要的官方文档发在评论区,我们会优先发布。谢谢!

1 1
3 857

第四十五章 创建和添加 SAML 令牌 - 变体:不使用

变体:不使用 <BinarySecurityToken>

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

0 0
0 5
文章
· 十月 10 阅读大约需 3 分钟
第四十四章 创建和添加 SAML 令牌

第四十四章 创建和添加 SAML 令牌

本主题描述如何将SAML 令牌添加到 WS-Security 标头元素。

另请参阅 %SAML.Assertion 的类参考和相关类。

未实现完整的 SAML 支持。 IRIS 中的 SAML 支持仅指 IRIS 中的 WS-Security 支持中列出的详细信息。

概述

借助 IRIS SOAP 支持,可以将 SAML 令牌添加到 WS-Security 标头元素。

0 0
0 4

第四十三章 使用 WS-ReliableMessaging - 对 WS-ReliableMessaging 标头进行签名

WS-ReliableMessaging 标头进行签名

可以通过以下任一方式签署 WS-ReliableMessaging 标头。

使用 SecurityContextToken 对标头进行签名

如果还使用 WS-SecureConversation,则 Web 客户端的 SecurityContextToken 属性包含一个对称密钥,可以使用该密钥对 WS-ReliableMessaging 标头元素进行签名。为此,请在调用 %SOAP.RM.CreateSequence实例的 AddSTR() 方法,并将 SecurityContextToken 属性作为参数传递:

0 0
0 3
文章
· 十月 9 阅读大约需 2 分钟
在 IRIS 中使用 Foreign Table(外部表)

Foreign Table 的概念

Foreign Table 是 IRIS SQL 中一种特殊类型的表。它不代表 IRIS 本地全局管理的数据,而是投射出来的,由 “外部服务器 ”管理的外部数据。从 SQL 的角度来看,外部表与普通表一样,可以在查询中使用,没有任何特定限制。

在数据编织中可以帮助整合不同的来源的数据,以支持各种应用、分析并提供智能洞察力。

1 0
0 5
文章
· 十月 8 阅读大约需 2 分钟
第四十二章 使用 WS-ReliableMessaging

第四十二章 使用 WS-ReliableMessaging

IRIS 支持 WS-ReliableMessaging 规范的部分内容,如简介中所述。此规范提供了一种按顺序可靠地传递一系列消息的机制。本页介绍如何手动使用可靠消息传递。

Web 客户端发送一系列消息

要将一系列消息从 IRIS Web 客户端可靠地发送到支持 WS-ReliableMessagingWeb 服务,请执行以下操作:

  1. 根据需要指定 Web 客户端的安全标头元素。

如果正在使用 WS-SecureConversation,请启动安全对话。

  1. 调用 %SOAP.RM.CreateSequenceCreate() 类方法。这将返回该类的一个实例。

此方法具有以下签名:

1 0
0 5
文章
· 十月 8 阅读大约需 5 分钟
FHIR Object Model 简介

挑战

在使用FHIR进行开发的过程中,我们会面对海量的FHIR规范中定义的数据结构,具体来说在FHIR规范中定义了超过150个资源、700多个资源内元素。每个定义里都包括了对自身结构的描述以及数据约束、数据绑定值集等。对于一个开发人员要记住这些内容非常困难。

同时FHIR数据,特别是Json格式的FHIR数据是典型的“有向图”结构,它的资源中嵌套元素定义、集合以及复杂的资源间“关系”,在这些复杂结构的数据间导航并操作,非常困难。

解决方案

在InterSystems IRIS for Health 2024.1之前,我们会将FHIR数据以Json文档的方式载入 %DynamicAbstractObject,例如下面的代码

1 0
0 12

第四十一章 创建安全对话 - 使用

Web 服务使用 <SecurityContextToken>, 做出响应后,客户端实例和服务实例可以访问相同的对称密钥。有关此密钥的信息包含在两个实例的 SecurityContextToken 属性中。建议的程序如下:

  1. 在客户端中,将 SecurityOut 属性设置为 null,以删除请求消息中使用的安全标头。

Web 服务中不需要这样做,因为 Web 服务会在每次调用后自动清除安全标头。

1 0
0 4

第四十章 创建安全对话 - 启用 IRIS Web 服务以支持 WS-SecureConversation

启用 IRIS Web 服务以支持 WS-SecureConversation

Web 客户端向 Web 服务发送请求安全对话的消息时,安全对话就开始了。作为响应,Web 服务发送双方都可以使用的 <SecurityContextToken>

要使 IRIS Web 服务能够使用此令牌进行响应,请重写 Web 服务的 OnStartSecureConversation() 方法。此方法具有以下签名:

1 0
0 7
文章
· 十月 4 阅读大约需 3 分钟
第三十九章 创建安全对话

第三十九章 创建安全对话

IRIS 支持安全对话,遵循 WS-SecureConversation 1.3 规范。本页介绍如何手动创建安全对话。

概述

在安全对话中,Web 客户端向 Web 服务发出初始请求并接收包含 <SecurityContextToken> 的消息。此元素包含双方都可以使用的对称密钥的信息。此信息指的是只有双方知道的共享密钥。然后双方可以在后续交换中使用对称密钥,直到令牌过期或客户端取消令牌。

双方不应该直接使用 <SecurityContextToken> 执行这些任务(不推荐),而应该从中生成一个 <SecurityContextToken>,然后使用它进行加密、签名、解密和签名验证。

共享密钥可以通过以下任一方式指定:

1 0
0 11

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

实例身份验证和 WS-Security

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

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

这些机制协同工作如下:

1 0
0 11

第三十七章 验证和解密入站消息

本主题介绍如何验证 IRIS Web 服务或 Web 客户端收到的消息中的安全元素(并自动解密任何加密内容)。

概述

IRIS 网络服务和网络客户端可以验证入站 SOAP 消息的 WS-Security 标头元素,以及自动解密入站消息。

IRIS Web 服务和 Web 客户端还可以处理已签名的 SAML 断言令牌并验证其签名。但是,验证 SAML 断言的详细信息是您的应用程序的责任。

如果使用安全策略,所有上述活动都是自动的。

在所有场景中,IRIS 都使用其根颁发机构证书集合;请参阅设置和其他常见活动。

验证 WS-Security 标头

要验证任何入站 SOAP 消息中包含的 WS-Security 标头元素,请执行以下操作:

0 0
0 10

第三十六章 结合加密和签名 - 使用对称密钥签名并加密

使用对称密钥签名并加密

签名然后加密(使用对称密钥时):

  1. 按照使用<DerivedKeyToken> 进行加密中的步骤进行操作。
  2. 按照使用<DerivedKeyToken> 进行签名中的步骤进行操作。

使用元素

以下示例使用对称密钥进行签名和加密。它使用消息接收者的公钥创建一个 <EncryptedKey>元素,然后使用该元素生成两个 <DerivedKeyToken> 元素,一个用于签名,一个用于加密:

0 0
0 11
文章
· 九月 29 阅读大约需 3 分钟
第三十五章 结合加密和签名

第三十五章 结合加密和签名

可以在同一条消息中加密和签名。在大多数情况下,只需组合前面主题中给出的方法即可。本主题讨论了多种场景。

使用非对称密钥签名并加密

要签名然后加密(使用非对称密钥时),请执行以下操作:

  1. 按照添加数字签名中的步骤进行操作。
  2. 按照加密安全标头元素中的步骤进行操作。

或者按照加密 SOAP 主体中的步骤进行操作。

使用非对称密钥加密并签名

要仅加密 SOAP 主体,然后添加数字签名(使用非对称密钥时),请执行以下操作:

  1. 按照加密 SOAP 主体中的步骤进行操作。
  2. 按照添加数字签名中的步骤进行操作。

要加密任何安全标头元素,然后添加数字签名(使用非对称密钥时),必须使用顶级 <ReferenceList> 元素(在文档的其他地方不需要)。在这种情况下,请执行以下操作:

0 0
0 10

欢迎来到我的 CI/CD 系列的下一个章节,我们将探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。

今天,我们来谈谈互操作性。

问题

当您有一个有效的互操作性生产时,您有两个独立的流程:一个是处理消息的可以正常运行的生产流程,另一个是更新代码、生产配置和系统默认设置的 CI/CD 流程。

显然,CI/CD 流程会影响互操作性。 但问题是:

  • 更新期间究竟发生了什么?
  • 我们需要做些什么以在更新期间尽可能缩短或消除生产停机时间?
0 0
0 10

经过将近四年的停顿,我的 CI/CD 系列又回来了! 这些年来,我与多个 InterSystems 客户合作,为不同的用例开发 CI/CD 管道。 希望本文中提供的信息对您有所帮助。

系列文章探讨了使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。

我们有一系列激动人心的话题要讨论:但今天,我们来谈谈代码之外的事情 – 配置和数据。

问题

之前我们探讨过代码提升,这在某种程度上是无状态的 – 我们总是从一个(大概)空实例到完整的代码库。 但有时,我们需要提供数据或状态。 不同的数据类型包括:

0 0
0 11

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD
  • 为何使用容器?
  • 容器基础架构
  • 使用容器的 CD
  • 使用 ICM 的 CD
  • 容器架构

在本文中,我们将讨论如何构建并部署您自己的容器。

0 0
0 13

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD
  • 为何使用容器?
  • 容器基础架构
  • 使用容器的 CD
  • 使用 ICM 的 CD

在本文中,我们将使用 InterSystems Cloud Manager 构建持续交付。 ICM 是一个面向基于 InterSystems IRIS 的应用程序的云配置和部署解决方案。 它允许您定义所需部署配置,ICM 会自动提供这些配置。 有关详情,请参阅 ICM 概述

0 0
0 15

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD
  • 为何使用容器
  • 容器基础架构
  • 使用容器的 CD

第一篇文章中,我们介绍了 Git 基础知识、深度理解 Git 概念对现代软件开发至关重要的原因,以及如何使用 Git 开发软件。

第二篇文章中,我们介绍了 GitLab 工作流 – 一个完整的软件生命周期流程,并介绍了持续交付。

第三篇文章中,我们介绍了 GitLab 安装和配置以及将环境连接到 GitLab

第四篇文章中,我们编写了 CD 配置。

第五篇文章中,我们讨论了容器以及使用容器的方式(和原因)。

第六篇文章中,我们将探讨运行包含容器的持续交付管道所需的主要组件以及这些组件如何协同运行。

在这篇文章中,我们将构建上一篇文章中探讨的持续交付配置。

0 0
0 10

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD
  • 为何使用容器?
  • 容器基础架构
  • 使用容器的 GitLab CI/CD

第一篇文章中,我们介绍了 Git 基础知识,以及为什么对 Git 概念的高层次理解对于现代软件开发如此重要,以及如何使用 Git 开发软件。

第二篇文章中,我们介绍了 GitLab 工作流 – 一个完整的软件生命周期流程和持续交付。

第三篇文章中,我们介绍了 GitLab 的安装和配置以及如何将环境连接到 GitLab。

第四篇文章中,我们编写了 CD 配置。

第五篇文章中,我们讨论了容器与如何(以及为什么)使用它们。

在本文中,我们将探讨运行使用容器的持续交付管道所需的主要组件,以及它们如何协同工作。

0 0
0 11

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD
  • 为何使用容器
  • 使用容器的 GitLab CI/CD

第一篇文章中,我们介绍了 Git 基础知识、深度理解 Git 概念对现代软件开发至关重要的原因,以及如何使用 Git 开发软件。

第二篇文章中,我们介绍了 GitLab 工作流 – 一个完整的软件生命周期流程,并介绍了持续交付。

第三篇文章中,我们介绍了 GitLab 安装和配置以及将环境连接到 GitLab

第四篇文章中,我们编写了 CD 配置。

在这篇文章中,我们将介绍容器以及使用容器的方法(和原因)。

0 0
0 10

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD

第一篇文章中,我们介绍了 Git 基础知识、深度理解 Git 概念对现代软件开发至关重要的原因,以及如何使用 Git 开发软件。

0 0
0 11

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD

第一篇文章中,我们介绍了 Git 基础知识、深度理解 Git 概念对现代软件开发至关重要的原因,以及如何使用 Git 开发软件。

第二篇文章中,我们介绍了 GitLab 工作流 – 一个完整的软件生命周期流程,并介绍了持续交付。

在这篇文章中,我们将探讨:

  • GitLab 安装和配置
  • 将环境连接到 GitLab
0 0
0 8

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • 持续交付
  • GitLab 安装和配置
  • GitLab CI/CD

上一篇文章中,我们介绍了 Git 基础知识、深度理解 Git 概念对现代软件开发至关重要的原因,以及如何使用 Git 开发软件。 我们的侧重点仍是软件开发的实现部分,但本部分会介绍:

  • GitLab 工作流 - 从想法到用户反馈的完整软件生命周期流程
  • 持续交付 – 软件工程方式,团队通过这种方式在短周期内制作软件,从而确保软件可以随时实现可靠发布。 它的目的是更快速、更频繁地构建、测试和发布软件。

0 0
0 14

大家都搭建了测试环境。

有些人很幸运,可以在完全独立的环境中运行生产。

-- 佚名

.

在这一系列文章中,我想向大家介绍并探讨使用 InterSystems 技术和 GitLab 进行软件开发可以采用的几种方式。 我将介绍以下主题:

  • Git 101
  • Git 流程(开发流程)
  • GitLab 安装
  • GitLab 工作流
  • GitLab CI/CD
  • 包含容器的 CI/CD

第一部分将介绍现代软件开发的基础 – Git 版本控制系统和各种 Git 流程。

0 0
0 11

第三十四章 使用派生密钥令牌进行加密和签名 - 使用 进行签名

要使用 <DerivedKeyToken>进行签名,请使用以下步骤:

  1. 如果想要签署任何安全标头元素,请创建这些安全标头元素。
  2. 创建 <DerivedKeyToken> 并将其添加到 WS-Security 标头,如创建和添加 <DerivedKeyToken> 中所述。

请注意,此步骤还会创建并添加 <DerivedKeyToken> 所基于的 <EncryptedKey> 元素。

0 0
0 8

第三十三章 使用派生密钥令牌进行加密和签名 - 使用

进行加密(一)

  1. 如果加密了任何安全标头元素,请将它们添加到 WS-Security 标头元素中。为此,请调用 Web 客户端或 Web 服务的SecurityOut 属性的 AddSecurityElement() 方法。在这种情况下,需要两个参数:

a. 安全标头元素(而不是从中生成的的 %XML.Security.EncryptedData)。

b. 引用列表实例。第二个参数指定将第一个参数指定的项目放在何处。如果参数是 AB,则 IRIS 确保 AB 之后。指定此项以便收件人首先处理引用列表,然后再处理依赖于它的加密安全标头元素。

0 0
0 6

第三十二章 使用派生密钥令牌进行加密和签名 - 使用

进行加密

要使用 <DerivedKeyToken> 进行加密,请使用以下步骤:

  1. 如果要加密一个或多个安全标头元素,请创建这些安全标头元素。.
  2. 创建 <DerivedKeyToken> 并将其添加到 WS-Security 标头,如创建和添加 <DerivedKeyToken> 中所述。

请注意,此步骤还会创建并添加 <EncryptedKey> 所基于的 <EncryptedKey> 元素。

0 0
0 10