问题标签 [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.

0 投票
1 回答
14083 浏览

java - 来自 Java 的肥皂中的 UserNameToken

我正在尝试使用来自 Netbeans 的 gSoap 生成的 wsdl。Web 服务要求传入 UserNameToken。当我使用 SoapUI 中的 wsdl(有效)时,它会发送以下内容:

但是,当我使用处理程序从 Netbeans 尝试它时(参见How do I add a SOAP Header using Java JAX-WS),如下所示:

它生成这样的肥皂标题:

这会导致 Web 服务回复身份验证错误。

因此,我的问题是:

  1. 如何以正确的方式生成 UserNameToken(如 SoapUi 那样)?
  2. 使用处理程序还是使用 Apache WSS4J 之类的外部 WSSE 库更好(有人可以向我展示一些示例代码)
0 投票
1 回答
955 浏览

c++ - 使用 gSOAP 进行 VS 2003/C++ 访问具有 WS-Security 的 SOAP Web 服务?

我们有一个即将推出的项目,以允许只能使用 C++/VS 2003 扩展的旧平台调用使用 WS-Security 的基于 SOAP 的 Web 服务。

我的 Google 研究表明gSOAP可能是最好的方法。

我正在寻找验证和/或替代建议。

0 投票
2 回答
5446 浏览

c# - 如何在 C# 中使用 WS-Security?

如何在 C# 中创建一个使用 WS-Security 为双方(请求和响应)进行加密和签名的 Web 服务?

客户端和服务器将使用证书。

0 投票
2 回答
1348 浏览

wcf - 识别未正确处理的 WCF 客户端

我们在 IIS 中托管了一个 WCF 服务。现在有大量不同的客户端应用程序调用此服务。使用 WS-SecureConversion。

现在,服务诊断日志显示安全会话正在中止的警告。这很可能是因为客户端没有正确关闭会话。

更多信息:问题是“待定”安全会话。这些是从未使用过的会话,只是打开的。这很烦人,因为在您的服务开始发出 500 个请求之前,您最多可以有 128 个这样的待处理会话。

这可以很容易地复制(见下面的答案)。我能够使用 WinDbg 查询 128 个 SessionInitiationMessageHandlers。因此,这可能是识别这种情况的好方法。

尽管如此,识别那些“行为不端”的客户的方法还是有用的。

问候,亚历克斯

0 投票
5 回答
392 浏览

.net - 这种 Web 服务架构的具体安全风险是什么?

我需要弹药来尝试为一组外部可用的 Web 服务推广WS-Security,这些 Web 服务直接与我们的生产客户服务应用程序交互。我的愿景是实现 IPassword 提供程序并通过我们的 AD 商店进行身份验证。从上层下来的架构建议是 SSL,在路由器上有一个 IP 过滤器,只允许某些 IP 地址调用 Web 服务。将使用 GUID 密钥授予访问权限。无需登录名或密码。

每个授权访问我们的网络服务的合作伙伴都将获得一个密钥。它将由我们生成,并可能通过电子邮件发送给他们。我不知道没有到期政策。

这对我来说感觉不对,但他们并没有接受我的论点,即这里没有实际的身份验证。这种架构有哪些特定的安全风险?究竟有哪些攻击场景是可能的,入侵我们的系统有多容易?我需要能够详细说明风险,甚至可能向我们的架构团队展示它们。

0 投票
1 回答
1634 浏览

java - WSContext.getUserPrincipal() 为密码摘要身份验证返回 null

在我的 WebService 中,我需要记录调用者的 ID,但 wsContext.getUserPrincipal() 会返回 null,即使用户已使用 WS-Security 和密码身份验证进行身份验证。根据 JAX-WS 2.1 的 JavaDocs WSContext.getUserPrincipal() 只有在用户未通过身份验证时才应返回 null。

我必须在安全处理程序中做些什么来将用户主体设置到 WSContext 中吗?文档似乎表明它是自动完成的。

我在 Tomcat 上使用 Metro 1.1 堆栈(我认为是 1.1.5)和 jax-ws 2.1.3 堆栈。

0 投票
1 回答
1195 浏览

wcf - SSL 传输的消息中的安全令牌

我需要在 WCF 中确保这样的肥皂标题:

其中时间戳和正文部分/元素将由消息中包含的直接引用证书(BinarySecurityToken)进行数字签名,并且仅在 SSL(IIS 托管服务)的传输级别上确保机密性。目前我正在使用类 TransportSecurityBindingElement 和 HttpsTransportBinding,但是我无法获得我想要的肥皂头......问题是(根据消息跟踪)BinarySecurityToken 元素中缺少 id、EncodingType、ValueType 和消息正文等属性已签署(我将 ProtectionLevel 设置为签署合同)

因此,如果有人有这方面的技能,我将非常感激。

0 投票
2 回答
378 浏览

java - 如何读取 ws-security 中提供的用户或标识符

我正在使用最新的 Apache CXF 创建 Web 服务。我已经使用org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor. 在我的passwordCallbackClass我可以通过调用类的getIdentifier()方法来访问用户或标识符org.apache.ws.security.WSPasswordCallback

我也在整个设置中使用弹簧。

我想知道如何在代码中的其他任何地方访问标识符?我可以考虑ThreadLocal在我的passwordCallbackClass? 另一种方法是在我的所有服务方法参数中定义标识符属性,但这意味着客户端需要传递标识符两次,一次在安全块中,另一次在服务调用中?


编辑

我的服务类看起来像这样,我需要在sayHi方法中读取标识符。

我的密码回调方法是我可以获得标识符的地方。

0 投票
1 回答
201 浏览

iphone - 来自加密的 ws-security SOAP 消息的未加密 EncryptedData 标记开头的那些“垃圾”16 个字节是什么?(WCF)

我正在检查 WCF 请求消息,以实现部分 WS-Security 标准以实现 iPhone <-> WCF 互通(我在 basicHttpBinding 上使用证书安全性)。
在阅读了标准的xmlenc-core之后,我可以解密 SignedInfo 和 Body 标签,但是我在两个未加密标签的开头看到了 16 个字节,我对此一无所知。
我根据标准创建了一个示例应用程序,以便将请求从 iPhone 发送到自托管的 WCF,但它继续响应“验证消息安全性时发生错误”。我唯一不知道如何实现的是这 16 个字节,有人知道在这 16 个字节上使用什么吗?

谢谢

0 投票
1 回答
11213 浏览

c# - 如何从 ASMX Web 服务使用 WS-Security 和访问 UsernameToken?

好的,所以我们有一个旧版 ASMX Web 服务,目前在 .NET 3.5 中运行,并且我们使用的是 Visual Studio 2008。

问题是,我们需要添加身份验证并希望利用 WS-Security 模型而不破坏任何当前不需要进行身份验证的现有内部客户端。

我们考虑过添加自定义标头,但这不是很符合 WS-Security-ish。此外,升级到 WCF 虽然是一个长期目标,但在短期内是不可行的。

有没有办法在 VS2008 ASMX Web 服务的soap 标头中间接访问 UsernameToken(假设它是由客户端传递的)?