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

0 投票
1 回答
711 浏览

wcf - WsTrust.Trust13Issue - 设置 RequestSecurityTokenType -ID3007:名称空间为“”的元素“TokenType”无法识别

我正在使用 WSTrust13 STS 服务来获取令牌。我在控制台应用程序中使用 addreference 机制为 WCF 服务创建了客户端。在向 WCF 发出请求时,请求到达了 WCF 服务,但它说“ID3007:带有命名空间''的元素'TokenType'无法识别。” 标头提取正确,但在处理邮件正文时显示此错误。

这是调用 WCF 服务的 C# 代码。

WSTrust13SyncClient 代理 = 新 WSTrust13SyncClient();

实际上,当我使用 SOAPUI 调用这个 WCF 时,它工作正常,下面是 SOAPUI 请求的主体。 在此处输入图像描述

我试图在 C# 代码中模仿相同的内容,将它们添加到请求中,但无法克服错误。

这是Issue 方法epxcted 的类对象。

0 投票
1 回答
564 浏览

java - 使用 Apache CXF 在 Java 中获取 Azure Pack 的安全令牌

我正在尝试用 Java 编写代码,该代码可以从 Azure Pack 的 STS 获取安全令牌,然后我可以使用它来验证对 Azure Pack API 的调用。以下是Microsoft 提供(有效)用于在 C# 中获取此令牌的示例代码:

这是我目前在 Java 中所拥有的,我正在尝试做同样的事情:

运行 Java 测试代码时收到 401 Unauthorized HTTP 响应:

在尝试重新创建 C# 代码的功能时,我似乎缺少以下功能,但我无法弄清楚在 Java/使用 Apache CXF 库中以下代码的等价物是什么:

1) identityProviderBinding.Security.Message.EstablishSecurityContext = false;

2) identityProviderBinding.Security.Message.ClientCredentialType = MessageCredentialType.None;

3) identityProviderBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;

我也有可能做错了其他事情。有什么想法或建议吗?

0 投票
1 回答
831 浏览

c# - WCF Active STS (WS-Trust):在 System.ServiceModel.Dispatcher.AuthorizationBehavior.Authorize 处拒绝访问 JAVA 客户端

我正在创建一个 Active STS,它使用颁发的令牌(SAML1、SAML2)对 RST 进行身份验证并颁发 BinarySecurityTokens。这对 .net 客户端运行良好。但是,来自 Java 客户端(代码、SOAP UI 等)的 RST,我们得到以下异常-

我怀疑问题出在绑定的 serviceAuthorization 上。但是,我找不到任何有关为基于声明的身份验证配置授权的文档。这是我的配置-行为-

捆绑

服务-

请让我知道缺少什么

0 投票
0 回答
930 浏览

php - 使用 curl PHP 登录到通过 ADFS、WS-Trust、SAML 令牌进行身份验证的网站

我想使用我有用户名和密码的 PHP Curl 登录网站。经过研究,我发现该网站正在使用 WS-Trust 和 ADFS 进行身份验证和授权。这里用户的浏览器被重定向到 IDP(ADFS) 并重定向返回 SAML 断言安全令牌。

http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-android-java-node上阅读这篇文章后-js-or-any-platform-or-language/。我试图通过创建 SOAP 信封来获取安全令牌来发出请求,但我很困惑我将发送此请求的端点是什么。在leadrob.com 帖子中提到使用“ https://[server]/adfs/services/trust/13/UsernameMixed ”作为端点。我尝试向该端点发送请求,但我得到了空白页作为输出。

我需要发送请求并取回安全令牌。谁能解释一下需要将哪个 URL 视为登录 WS-Trust 和 ADFS 身份验证网站的端点。

0 投票
1 回答
640 浏览

c# - 来自 CreateChannelWithIssuedToken 的 WCF 通道仍在发送“requestsecuritytoken”请求

使用 .Net 4.5 并使用 WIF 身份类生成 SAML2 令牌并尝试将其添加到肥皂正文请求中,但它被忽略并且生成的肥皂请求实际上具有发送到服务器的“requestsecuritytoken”肥皂请求。我没有任何 STS。

此处的参考代码“在客户端请求中的 SAML 令牌之后需要签名”似乎有效。

我在 app.config 中的自定义绑定是

生成的肥皂信封是

我想通过 .net 客户端使用我们在 java 中拥有的 SAML 来测试一个安全的 Web 服务。我在 Visual Studio 2015 中获得了从 WSDL 生成的服务客户端,然后获得了从类生成的 SAML 断言,现在尝试将该令牌与 soap 请求一起传递给 java 服务。

有人可以分享我缺少什么或做错了什么吗,我是 .net/WCF/WIF 世界的新手?

谢谢

0 投票
1 回答
4549 浏览

c# - ID3242:无法对安全令牌进行身份验证或授权

目前我正在开发一个项目,我的应用程序必须使用 ADFS 验证才能登录。

我找到了一些从 ADFS 获取令牌的代码,但它一直给我上面的错误,而没有关于错误的任何好的描述。

这是我使用的代码:

错误发生在带有错误注释的行上。

有人有线索吗?

0 投票
1 回答
68 浏览

cxf - 为 PingFederate 的 RSTR 中的元素 EncryptedAssertion 或 EncryptedData 添加 ID 属性

我正在使用 Apache CXF 3.1.5 与 PingFederate 7.2 一起工作。在 PingFederate 中,如果 SAML 断言未加密,我将创建一个 WS-Trust SP 连接。它运作良好。如果 SAML 断言已加密,则它不起作用,因为CXF需要PingFederate的RSTR中的元素EncryptedAssertionEncryptedData的Id属性。而 PingFederate提供这样的 Id 属性。所以我有两个问题。

  1. 为什么CXF需要Id属性(类AbstractSTSClient中的createSecurityToken方法)?似乎标准规范说Id属性是可选的。

  2. 如何在 PingFederate 中为 Element EncryptedAssertionEncryptedData添加Id属性?或者还有什么我可以做的吗?

非常感谢!

来自 PingFederate 的 RSTR

0 投票
1 回答
94 浏览

wcf - WIF 启用 WCF 应用程序

我是STS的新手。我正在尝试 WIF 启用 WCF 应用程序,所以我找到了这个示例,但我无法让它运行。

我收到以下错误:

发生了意外的异常。服务器堆栈跟踪:em System.IdentityModel.Selectors.CardSpaceShim.GetCardSpaceImplementationDll()...

谁能指出我的解决方案。我到处寻找答案,一无所获。

0 投票
1 回答
193 浏览

cxf - Fuse WS-Trust 服务忽略保护

我正在尝试开发受 WS-Trust“IssuedToken”策略保护的 fuse CXF 服务,如安全令牌服务的官方文档中所述。我按照文档中的说明做了所有事情,交叉检查了一些保险丝和 CXF 官方示例。

一切似乎工作正常,但是当我使用 SoapUI 且没有令牌调用服务时,调用并没有收到错误(因为缺少令牌),而是通过并返回结果,就好像根本没有实施任何保护一样。

我尝试在“独立模式”(外部保险丝)下运行与 CXF“sts”示例中相同的代码,并且保护工作正常。当然,在这种情况下,我使用了一个不同的 pom 文件和一个类 (Server.java) 以及一个 spring 文件 (wssec-server.xml) 来引导服务,但其他一切都是一样的。

那么是什么阻止了安全设置在保险丝中工作呢?

Fuse 版本:Ubuntu 14.04.5 LTS 上的 6.2.1.084

来源如下。请记住,整个尝试是我尚未完全理解的许多示例的拼贴,因此此处可能放错了一些说明。

pom.xml

hello_world.wsdl

蓝图.xml

serviceKeystore.properties

GreeterImpl.java


对于“独立”示例(按预期工作),我使用了以下内容(我删除了一些字符以使这篇文章保持在 SO 限制内):

pom-standalone.xml

服务器.java

wssec-server.xml

然后启动服务器

当我与 SoapUI 连接时,我收到以下(预期的)错误:

MessageAddressingHeaderRequired:表示消息寻址属性的必需标头不存在

0 投票
0 回答
297 浏览

saml - 如何使用 ADFS 的 issuetokenmixedasymmetricbasic256sha256 端点?

我在 ADFS 中配置了 2 个依赖方信任(App1、App2),在用户按照 SAML Web 流程进行身份验证后,最终 App1 得到了一个 SAML 令牌:SamlToken1。

目前的情况是,用户的浏览器由于防火墙无法访问App2,所以App2无法获取SAML token。

我认为的解决方案是通过提供的 issuetokenmixedasymmetricbasic256sha256 Endpoint ADFS 使用 WS-Trust:

步骤 1. 使 App1 充当 WS-Trust 客户端,向 ADFS(端点发出tokenmixedasymmetricbasic256sha256)发送 RST(请求安全令牌),在 SOAP 安全标头中使用 SAMLToken1,将 ApplyTo 设置为 App2。

步骤 2. ADFS 将 RSTR 中的加密 SAML 断言返回给 App1

步骤 3. App1 向 App2 发送另一个 RST,将加密的 SAML 断言设置为安全头。

步骤 4. App2 可以获得 SAML 令牌。

执行第一步时,ADFS 返回“验证消息安全性时发生错误”,ADFS 的跟踪日志仅给出“'urn:oasis:names:tc:SAML:2.0:assertion' 类型的令牌已成功通过身份验证” , ADFS 中不再显示日志。

我正在使用 SOAP UI 进行 SOAP 调用,我想知道如何使用 issuetokenmixedasymmetricbasic256sha256 向 ADFS 发送 SAML 令牌以交换另一个 SAML 令牌。

第一: