第三十七章 结合加密和签名 - 安全标头元素的顺序

文章目录

  • [第三十七章 验证和解密入站消息](#第三十七章 验证和解密入站消息)
  • 概述
  • [验证 `WS-Security` 标头](#验证 WS-Security 标头)
  • [访问 `WS-Security` 标头中的 `SAML` 断言](#访问 WS-Security 标头中的 SAML 断言)

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

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

概述

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

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

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

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

验证 WS-Security 标头

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

  1. Web 服务或 Web 客户端中,设置 SECURITYIN 参数。使用以下值之一:
    • REQUIRE --- Web 服务或 Web 客户端验证 WS-Security 标头元素,如果不匹配或缺少此元素,则会发出错误。
    • ALLOW --- Web 服务或 Web 客户端验证 WS-Security 标头元素。

在这两种情况下,Web 服务或 Web 客户端都会验证 &<Timestamp>, <UsernameToken>, <BinarySecurityToken>, <Signature>, and <EncryptedKey> 标头元素。它还会验证标头中 SAML 断言中的 WS-Security 签名(如果有)。如果合适,还会解密消息。

如果验证失败,则返回错误。

SECURITYIN 参数还有两个可能的值,可用于测试和故障排除:

  • IGNORE --- Web 服务或客户端忽略除 <UsernameToken> 之外的 WS-Security 标头元素,如 CSP 身份验证和 WS-Security 中所述。

为了向后兼容,此值是默认值。

  • IGNOREALL --- Web 服务或客户端忽略所有 WS-Security 标头元素。

注意:如果关联(和编译)配置类中存在安全策略,则 SECURITYIN 参数将被忽略。

访问 WS-Security 标头中的 SAML 断言

如果 WS-Security 标头元素包含 <Assertion> 元素,则 IRIS Web 服务或 Web 客户端会自动验证该 SAML 断言的签名(如果已签名)。

注意:验证需要可信证书。如果 IRIS 可以验证签名者的证书链(从签名者自己的证书到 IRIS 信任的证书颁发机构 (CA) 的自签名证书,包括中间证书(如果有),则它可以验证签名。

但是, IRIS 不会自动验证断言。代码应该检索断言并进行验证。

要访问 SAML 断言,请找到安全标头元素的 <Assertion> 元素。为此,请使用服务或客户端的 SecurityIn 属性的 FindElement() 方法,如下所示:

java 复制代码
 Set assertion=..SecurityIn.FindElement("Assertion") 

这将中返回 %SAML.Assertion 的一个实例。根据需要检查此对象的属性。

相关推荐
算力魔方AIPC23 分钟前
使用 Docker 一键部署 PaddleOCR-VL: 新手保姆级教程
运维·docker·容器
Evan芙36 分钟前
nginx核心配置总结,并实现nginx多虚拟主机
运维·数据库·nginx
FIT2CLOUD飞致云1 小时前
操作教程丨通过1Panel快速安装Zabbix,搭建企业级监控系统
运维·服务器·开源·zabbix·监控·1panel
幸存者letp1 小时前
Python 常用方法分类大全
linux·服务器·python
石像鬼₧魂石1 小时前
内网渗透是网络安全渗透测试
安全·web安全
悟空空心1 小时前
服务器长ping,traceroute
linux·服务器·网络·ssh·ip·ping++
Ghost Face...1 小时前
Docker实战:从安装到多容器编排指南
运维·docker·容器
此生只爱蛋2 小时前
【Linux】正/反向代理
linux·运维·服务器
qq_5470261792 小时前
Linux 基础
linux·运维·arm开发
废春啊2 小时前
前端工程化
运维·服务器·前端