问题标签 [ws-trust]
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.
cxf - CXF 服务抛出 WSSecurityException:未找到用于解密的证书 (KeyId)
我正在按照http://web-gmazza.rhcloud.com/blog/entry/cxf-sts-tutorial中的示例使用 CXF-STS 应用程序。我能够生成 SAML 断言,但它在到达服务提供者时失败。
我在服务中有 PasswordCallback,
WSPasswordCallback 类型被发现为 SECRETKEY 或其他东西,但是not WSPasswordCallback.DECRYPT or WSPasswordCallback.SIGNATURE
在上面的代码中调试时的标识符显示为_0bfaf221-9588-4033-b3fa-db9ecbd478fe
或一些随机文本。在服务提供商上,我有 Keytype 的 Symmetric 绑定 - SymmetricKey as
在 STS 端,我提供服务提供商的公钥用于加密
遵循http://mail-archives.apache.org/mod_mbox/cxf-users/201112.mbox/%3CCAB8XdGABkphcJXTbtVpDfBZ3KcymtZYX-Rmv0H8QiuwYNHP5OQ@mail.gmail.com%3E和http://coheigea.blogspot.in/2011/的建议05/ws-trust-sample-in-talend-service.html
我不确定对称密钥在加密时如何可供服务提供商使用。
我检查了所有相关文件,一切似乎都完好无损。我在https://github.com/sampleref/CXFSecurity上有我的示例供参考。运行客户端时遇到错误,显示服务提供商日志
未找到证书。请提供一些建议
谢谢
adfs - 使用 WS-Trust (ADFS) 执行 SOAP 调用
我有一个庞大而古老的 Java 5 应用程序,现在应该从 MS-CRM 调用 Web 服务。这是通过 ADFS 保护的,并且可以使用 WS-Trust 完成 SOAP 调用。
我第一次(未经授权)尝试使用 Apache HTTP Components 4.3(httpcore/httpclient)还不错,但它们只提供 HTTP Basic//Digest 和 NTLM 身份验证——而不是 WS-Trust。
是否有一个库可以使用 WS-Trust 从独立的 Java 5 应用程序(无 servlet 引擎或应用程序服务器)执行 SOAP 客户端调用?
关键要求:
- Java 1.5
- 只需要客户端
- WS-Trust 身份验证
- 首选非代码生成的客户端,因为执行调用的应用程序有些限制
java - 通过代码为 STS/WS-Trust 配置 CXF
我喜欢使用 CXF 访问受 STS/WS-Trust 保护的 SOAP 服务。由于我被迫减少我使用的依赖CXFBusFactory
项而不是 spring 配置。这意味着我被迫通过代码进行配置,而这在网络上的文档和流行程度相当低。
谁能指出缺少哪些配置设置以及如何通过代码进行设置?
我有:
如果重要,目标服务是 MS CRM 2013。
到目前为止,我从 CXF 日志记录中得到:
然后这个例外:
更新 1:我认为主要问题是sp:HttpsToken/wsp:Policy
通过代码设置。网络经常向我展示这个示例弹簧配置,但我看不到如何使用代码进行复制(Client client = ClientProxy.getClient(port);
让我获得客户端)。例子:
更新 2:这是服务服务器的 WSDL 策略:
wcf - 签名的 SOAP 标头有两个 BinarySecurityTokens(实际上它可以而且应该有一个)
我正在尝试从 STS 服务请求安全令牌。该服务是第 3 方,因此我无法对其进行修改、检查日志等。
生成的请求 SOAP 消息看起来与我的示例请求几乎相同。只是有两个BinarySecurityToken
元素添加了相同的值,而正确的请求只包含一个令牌。
SOAP 消息如下所示:
安全绑定元素以及绑定配置如下:
我还专门配置了WSTrustChannelFactory
仅对消息签名(不签名和加密):
唯一的问题是服务的安全策略提到启动器令牌应该是 SAML 令牌,而我使用的是 X509SecurityTokenParameters。这主要是因为我不知道如何添加 SAML 令牌,但我不确定这会产生什么不同。
作为参考,WS-Security 策略是:
最终,我正在寻找一种让消息只包含一个二进制令牌的方法。如果唯一的方法是在发送 SOAP XML 之前手动更改它,那就这样吧。
java - 通过 OpenSAML 中的现有元素创建 SAML 2.0 断言
我正在尝试使用 OpenSAML 使用现有的断言元素为令牌更新过程创建 SAML 2.0 断言。
我收到两个错误。
- 使用
DefaultBootstrap.bootstrap();
时会抛出异常java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null"
- 当
DefaultBootstrap.bootstrap()
被移除时,它会抛出 Assertion samlAssertion =(Assertion) unmarshaller.unmarshall(x1);
有什么我错过的吗?
c# - 无法跟踪使用 CreateChannelWithIssuedToken 创建的 WCF 客户端的错误
这是这个问题的后续行动。可能与此没有直接关系。
我正在尝试调用使用从安全令牌服务获得的令牌(联合安全性,WS-Trust 1.3)保护的 Web 服务。我有SecurityToken
(通用 XML),我创建了一个ChannelFactory<T>
然后调用CreateChannelWithIssuedToken
.
当我尝试调用服务方法时会出现实际错误。消息很短,我实际上不知道接下来该往哪里看:MessageSecurityException
和消息Unable to create token reference。嗯,这可能意味着任何事情。
相关代码:
调用服务是:
我想知道接下来我可以去哪里看。什么可能导致此错误?
额外细节:
- 在向服务器发出任何请求之前引发错误(使用 Fiddler 检查)。
- 服务器不是基于 WCF 的。它是一些符合 WS-Trust 和 WS-Security 的服务。
wcf - 如何使用 SAML 断言令牌签署 SOAP 消息(正文和标头元素)?
情况是这样的:
- 我有一个来自 STS 的安全令牌,格式为 a
GenericXmlSecurityToken
(我也有它的 SAML 断言元素)。 - 我需要使用此安全令牌来调用第 3 方服务,该服务除了
WS2007FederationHttpBinding
可以执行的操作外,还需要在请求中添加一些额外内容。 - 实际的 SOAP 请求,除了 SOAP 安全标头中的 SAML 断言元素外,还必须包含签名元素(来自 namespace
http://www.w3.org/2000/09/xmldsig#
),它对时间戳元素和带有 SAML 断言的主体元素进行签名。 WS2007FederationHttpBinding
,以及许多自定义绑定变体无法在具有值类型的签名中包含键引用元素http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID
(因此,SAML 断言)。- 我能从它们中得到的最多(via
ProtectTokens
= true)是一个签名的 SAML 断言元素,但仅此而已。
基本上,我需要在请求中得到的是:
但是,我不知道如何配置WS2007FederationHttpBinding
(或自定义绑定)以添加签名。
我现在正在使用的内容:
除此之外,我还尝试使用 a TransportSecurityBindingElement
,结果相同:我可以在请求中获取令牌,但不能获取签名。
欢迎任何关于此的想法/提示。
wcf - 如何在 .NET 4.5 中使用 ADFS 保护 WCF Web 服务?
使用身份和访问工具(VS 2012 的一部分),我能够配置 WCF 以使用我们公司的 ADFS 服务器。
相关web.config
但是,当我从控制台应用程序(添加服务引用)引用此 WCF 服务时,调用是直接对 WCF 服务进行的,它不会像使用标准 ASP.NET 应用程序那样重定向到 ADFS 进行身份验证。
我真的必须通过代码实现对 adfs 的调用吗?如果是这样,有什么线索可以做吗?
wif - 如何使用 saml 2.0 协议配置 adfs 以与活动客户端一起使用(非基于浏览器)
有没有办法使用带有 saml 2.0 协议的 adfs 来与活动客户端(非基于浏览器)服务提供商一起工作?saml 2.0 协议是否与 WSTrust(在 WS-Federation 协议上)有任何等价性?如果可能的话,你能给我举个例子吗?
wcf - 如何将证书传递给 WSTrust 以获取 Saml Token
这是使用 WSTrustChannelFactory 获取令牌的示例。从这里。
现在我没有用户名/密码,但提供商给了我证书 .pfx 文件。如何将它传递给 WSTrushChannelFactory?我试过使用 CertificateBinding 但没有成功。
上面更新的代码:2014 年 11 月 5 日:
收到此错误:ID3242:无法对安全令牌进行身份验证或授权。