开发 SAML 感知的初始程序

您可以编写程序以抽取 SAML 令牌并链接到 DFHSAML 以处理该令牌。

稳定功能: 稳定了使用 CICS® 安全令牌服务对 SAML 的支持。 另请参阅 " 稳定通知 "和 "停止的职能 "。

6.3 使用 CICS 安全令牌服务的 SAML 支持已从 CICS TS 6.3 中删除。

6.2 如果使用该函数,CICS_STABILIZED_FUNCTIONS 健康检查会发出消息 DFHH0955。

作为使用 Web Service 支持的替代方法 (请参阅 配置提供程序管道以使用 SAML 令牌) ,您可以编写自己的 SAML 感知初始程序作为验证 SAML 令牌的安全前端。 当您使用采用 HTTP、 IBM® MQ 或任何其他协议的消息(而非 SOAP 消息)时,此类程序非常有用。

SAML 感知的初始程序从消息中抽取 SAML 令牌。 然后,将令牌放入通道中的字符容器 DFHSAML-TOKEN 中。 然后,程序通过通道链接到程序 DFHSAML ,以验证令牌并抽取容器。 有关容器的详细信息,请参阅 SAML 支持容器

可以使用用户定义的通道或事务通道 (DFHTRANSACTION)。 如果您正在使用用户定义的通道,那么将在显式传递该通道的 LINK 请求上传递容器。 如果您正在使用事务通道,那么容器在整个事务中都可用。

应用程序可以使用 GET CONTAINER 命令来使用容器中的信息,例如 SAML 属性。 有关如何使用此信息的特定示例,请参阅 Pattern: 开发 SAML 感知的初始程序

模式: 开发 SAML 感知的初始程序

SAML 感知程序可以符合公共模式。 应用程序的典型模式是使初始程序具有 SAML-aware。 在此模式中,程序在运行应用程序的相应部分之前使用 SAML 断言中的信息来制定决策。

SAML 断言中的信息位于只读容器中。 这些容器位于从 SOAP 管道传递到程序的通道中,或者如果程序正在执行其自己的消息处理和 SAML 验证,那么从 DFHSAML 程序返回。

SAML 感知程序执行的处理的一个示例是从属性容器获取信息。 它将查找属性名称容器 (例如, DFHSAML-ATTRN001) 以及该容器中的属性值 (例如, DFHSAML-A001V001)。 此属性可能由程序用于表示用户的角色或权限,因此允许应用程序选择应用程序的哪些部分可供调用者使用。

应用程序可能必须将信息传递到应用程序中的其他程序。 由于容器是只读的,因此可以通过将通道传递到 LINK , XCTL , RETURN 或 START 命令上的下一个程序或使用 CHANNEL 接口的事务来安全地传递信息。

应用程序可能还必须审计请求,以便事务可以与原始 SAML 令牌相关联,从而与用户相关联。 要建立此关联,请编写客户日志记录程序,该程序将已验证的 SAML 令牌 (在容器 DFHSAML-OUTTOKEN 中) 或所选容器写入日志。

模式: 复用已验证的 SAML 令牌

您可能想要验证 SAML 令牌,稍后在同一事务中从请求者程序调用 Web Service 并使用同一令牌。

已验证的 SAML 令牌保存在 DFHSAML-OUTTOKEN 容器中。 由于此容器是只读的,因此无法在通道之间移动。 为了避免重新发出验证请求,从而提高性能,可以使用事务通道 DFHTRANSACTION。

从入局 Web Service 验证 SAML 令牌时,请在提供程序管道的配置文件中的 <sts_authentication> 元素内对 tran_channel="yes" 属性进行编码。 此属性指定将 SAML 断言从输出容器复制到 DFHTRANSACTION 通道中的容器。

要在 Web Service 中复用已验证的 SAML 令牌,请在 Web Service 所使用的请求者管道的配置文件的 <sts_authentication> 元素中对 tran_channel="yes" 属性进行编码。