问题标签 [ws-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在使用 Web 服务的客户端应用程序中使用证书
我正在实现一个使用 Web 服务的 VB.NET 桌面应用程序。
用 Java 实现的 Web 服务,我目前在本地主机上使用 Tomcat 来托管 Web 服务。
Web 服务需要与客户端进行安全通信,因此我按照说明如何使用 Java 的 keytool.exe 创建两个 .jks 密钥库(一个用于客户端,一个用于服务器),然后创建两个 .cer 证书(一个一个用于客户端,一个用于服务器)
我已将生成的密钥库和证书放入 Web 服务期望它们的目录中(根据说明)
我已将证书安装到 TrustedPeople 中,并尝试通过设置 ClientCredentials.ClientCertificates 属性来使用证书,如下所示:
当我尝试调用任何方法时,我不断收到以下错误消息:
处理 <wsse:Security> 标头时发现错误
我的问题是我不知道如何在使用 Web 服务的 VB.NET 客户端应用程序中使用它。我可能做错了。任何有关此主题的指导将不胜感激。
谢谢,
-弗林尼
jakarta-ee - 如何获取传递给 JAX-WS 服务客户端的登录信用及其关联的策略集和 Rational/WebSphere 工具中的绑定
我专门使用 WebSphere Integration Developer V7,但我也可以使用 Rational Software Architect V 7.5.1(因为我两者都有)。
上下文:我正在尝试创建一个 JAX-WS 客户端来调用 WebSphere Process Server V7 中的 Human Task Manager 和 Business Flow Manager 服务,这些服务通过 JAX-WS 公开。默认情况下,它们附加了策略集和提供者绑定,这些绑定指定了一些 WS-Security 设置(因为这些未在 WSDL 中定义)。
我已经弄清楚如何使用动态 Web 项目使其工作。我已经能够从 WSDL 生成 JAX-WS 客户端代码。我已经能够从 Process Server 导出策略集以及提供者和客户端绑定,并将它们导入我的工作区。我已经能够将策略集和客户端绑定附加到客户端服务。我已经能够设置一个页面和一个 servlet 来调用我的 Web 服务(以测试客户端)。而且我已经能够在部署描述符和 websphere 绑定/扩展文件中设置安全设置以使其正常工作。
这一切都很棒,但实际上我们不希望仅仅为了将 Web 服务客户端暴露给我们正在编写的其他应用程序而引起战争。我们想生成一个 Web 服务客户端 jar 并将其与其他应用程序打包在一起。
考虑到这种思路,我已经能够弄清楚如何在我的 IDE 中使用常规 Java 项目并在其中生成 Web 服务客户端。我还能够将策略集和客户端绑定附加到客户端。
我现在的问题是如何调用它?我像以前一样使用我的页面和 servlet 创建了一个动态 Web 项目来测试我的客户端。我将我的客户端项目设置为 Web 库依赖项,因此它可以访问客户端代码。我什至可以像以前一样设置部署描述符来强制登录和验证。现在唯一的问题是我无法弄清楚如何将凭据传递给我的 Web 服务,因为它位于它自己的“jar”中。在我访问菜单来设置 TokenGenerator 和 CallbackHandler 之前。现在,我无法访问这些菜单,因为客户端不在动态 Web 项目中。所以现在我有一个“断开连接”,当尝试在服务器上运行它时它当然会失败。
必须有办法做到这一点。我应该能够生成一个客户端 jar 并传递它需要的东西。有人遇到过这种情况吗?
wcf - 具有 WS-Security 的 WCF 服务仅需要签名时间戳
我需要向将发送带有签名时间戳的肥皂消息的第三方提供服务。
如何配置我的服务以支持此功能?
更新 我已经设法接近我们所追求的 Soap 消息的格式,但 WCF 坚持对用户名和时间戳令牌进行签名,有没有办法修改绑定以仅签名时间戳?
进一步更新 以下是我们的要求:
- Timestamp 元素必须签名。
- 用于签名的证书上的 CN 名称必须与 UsernameToken 元素中给出的用户名匹配。
- 用于签名的证书必须在 BinarySecurityToken 元素中发送。
- KeyInfo 元素必须只包含一个 SecurityTokenReference 元素,它必须用于引用 BinarySecurityToken。
- 必须指定规范化算法。
- 必须指定 SignatureMethod 并且必须是 SHA-1 或 SHA-2 算法。
- 应该使用分离的签名。
有什么建议么?
当前配置
客户端绑定
客户端端点
客户行为
服务绑定
服务端点
服务行为
coldfusion - WS security Coldfusion
Working on a docuSign integration with Coldfusion and need assistance in making the SOAP request using WS security.
eclipse - 无法接合模块壁垒,未发送安全详细信息
我正在使用带有 WTP 插件的 eclipse 来创建客户端来调用安全的 Web 服务。
我已经使用 Web 服务客户端向导生成客户端,现在我想在 eclipse 项目中配置 apache 壁垒以调用受用户名令牌保护的服务
错误是“无法接合模块壁垒”。 - - - - 更新 - -
在纠正了无法接合的模块壁垒后,我开始关注:
_------------------------ 更新结束 ------------ --------
提前致谢
c# - 从头开始使用 WS-Addressing 和 WS-Security 创建 SOAP 标头
我正在从 Windows 服务向 http 端点发送一条 SOAP 消息(常规的 aspx 页面,只接受整个 SOAP 信封)。整体操作是异步的,实际响应会在稍后返回。设置的性质(aspx 页面接收消息)意味着我的项目中不能有服务引用。
SOAP 标头必须包括 WS-Addressing 和 WS-Security。我需要做的基本上是构建 SOAP 信封,但更具体地说是从头开始构建 SOAP 标头,然后在发送之前编写 SOAP 信封。
现在是星期五下午,我很疲惫,我正在努力解决这个问题。使用 .net3.5/C#,如何从头开始构建具有寻址和安全性的 SOAP 标头?
php - 在 PHP 中实现 WS-Security 中的安全令牌交换
我正在尝试与由 .NET 开发的 Web 服务进行通信,并且我正在用 PHP 编写我的客户端。现在最头疼的事情之一是生成 SignatureValue 和用于 SignedInfo。
有一个熵发送到服务器,并且从服务器接收到熵......发送到服务器:
从服务器收到:
根据我的阅读,我想使用 PSHA1 生成共享密钥,然后在 conocalized SignedInfo 上运行 HMAC_SHA1 以生成签名值。使用这两个熵,期望值是,nXJEN8p1nupMA/00TK03VZlADkU=
但我永远无法生成......
我的 psha1_derive 参数是psha1_derive($entropySentByMe (as $secret), 'WS-SecureConversationWS-SecureConversation', $entropyReturnedByServer (as $seed), '' (as timestamp), and length is 32 (256 bits));
如果有人有更多关于如何使用 PSHA1 导出共享密钥或如何生成签名值的信息,请告诉我!
.net - 通用身份验证框架的最佳方法
我们有多个应用程序使用不同的身份验证方式来验证用户身份。几乎所有的应用程序都是用 WPF 开发的,但很少有应用程序是用 ASP.NET 和 Silverlight 开发的。
我们的最终目标是我们已经开发的每个应用程序以及我们将来开发的应用程序都将使用一个通用的身份验证框架来验证用户身份,并且该框架将返回身份验证状态
最好的方法是什么?开发这样的系统是否可行?有人过去吗?
欢迎任何建议/问题/批评。
谢谢
php - 无法使用 PHP SOAP 扩展通过 WS-Security 连接到 SSL Web 服务 - 证书、复杂的 WSDL
使用 PHP5 SOAP 扩展,我无法连接到具有 https 端点、客户端证书和使用 WS-Security 的 Web 服务,尽管我可以使用具有完全相同 wsdl 和客户端证书的soapUI 进行连接,并获得对的正常响应请求。没有 HTTP 身份验证,也没有涉及代理。我收到的消息是“无法连接到主机”。已经能够验证我没有击中主机服务器。(之前我错误地说我正在访问服务器。)
自签名客户端 SSL 证书是由 openssl 从 .p12 密钥库转换的 .pem 文件,而该文件又由 keytool 从 .jks 密钥库转换而来,该密钥库具有由私钥和客户端证书组成的单个条目。
在soapUI 中我不需要提供服务器私有证书,我给它的唯一两个文件是wdsl 和pem。我确实必须提供 pem 及其密码才能连接。我推测尽管有错误消息,但我的问题实际上可能在于 XML 请求的形成,而不是 SSL 连接本身。
我得到的 wsdl 具有嵌套的复杂类型。php 服务器在我的带有 IIS 的 Windows XP 笔记本电脑上。
代码、数据值和 WSDL 提取如下所示。(WSSoapClient 类只是简单地扩展了 SoapClient,添加了一个带有 mustUnderstand = true 的 WS-Security Username Token 标头并包括一个 nonce,soapUI 调用都需要这两者。)
非常感谢任何帮助。我是一个陷入困境的新手,以及如何!在这方面做了很多天的大量谷歌搜索,遵循了许多建议,并阅读了 Kevin McArthur 的 Pro PHP。使用类图代替嵌套数组的尝试也失败了。
编码
$连接如下:
$clientArguments 如下:
$操作如下:
$请求如下:
请注意如何有一个额外的嵌套级别,一个包装请求的数组,它本身就是一个数组。这是在帖子中提出的,虽然我没有看到原因,但它似乎有助于避免其他例外情况。
___soapCall 抛出的异常如下:
以下是一些 WSDL 摘录(TIBCO BusinessWorks):
如果它是相关的,这里是 WSSoapClient 类:
更新:
请求 XML 将如下所示:
这是通过 WSSoapClient 中的以下代码获得的:
wcf - 带有 WCF 客户端的 Java JAX-WS 服务
是否可以使用 JAX-WS 创建 WebService,然后使用这种绑定由 WCF 客户端使用?
我现在在没有 WSIT 的情况下创建了这样的服务,只是一个普通的服务,并且只想忽略传入 SOAP 消息中的“Security”标头。但它失败了:
“无法为具有权限‘xxxxxxxxxx’的 SSL/TLS 建立安全通道。”
如果我改变:
至:
一切都完美无缺。任何想法我做错了什么?