问题标签 [sts-securitytokenservice]

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 投票
0 回答
1110 浏览

c# - RequestSecurityTokenResponse 不会反序列化

我有一个连接到 STS 服务器的 WCF 客户端,我无法控制它(它是第 3 方 PHP 服务)。

经过几天的研究,我设法以它接受的方式与服务器交谈,使用纯 WCF。当然,将一些字符放到网络上会很容易,而忽略所有 SOAP 内容。但最后我设法猜对了每个配置参数,所以 STS 服务这样回答我的请求

但是现在我无法提取标识符值。对于我的代理类 ( ),我尝试了所有类型的,和的所有SecurityTokenServicePortTypeClient : ClientBase<SecurityTokenServicePortType>, SecurityTokenServicePortType可以想象的组合。但我得到的只是。ServiceContractDataContractXmlSerializationnull

服务合同的(大量修改的)接口看起来像这样

(大量修改的)实现类有这样的方法

x 总是null

而不是它的返回类型object最初是RequestSecurityTokenResponse等等。

几年前我在 WSE 上遇到过同样的问题,我能够通过使用正确的组合来解决这个问题,例如XmlElementAttribute控制反序列化过程。但这一次似乎没有帮助。

感谢您的任何建议!

比约恩

0 投票
1 回答
486 浏览

asp.net - ASP.NET 和 WCF 身份验证选项

让 ASP.NET Web 应用程序与 WCF 服务通信的身份验证选项有哪些?

场景:

  1. 用户在 ASP.NET 表单中输入他们的用户名和密码。
  2. ASP.NET 需要将此传递给 WCF 以对用户进行身份验证。
  3. 如果通过身份验证,用户可以在网站上执行操作。每个操作都需要将数据发送到不同的 WCF 操作。WCF 需要知道每个呼叫中​​的用户是谁。

最简单的解决方案是将用户名/密码存储在 ASP.NET 会话状态中。但是,这是不安全的,因为密码存储在服务器的内存中。

我宁愿不使用证书对服务的 ASP.NET“客户端”进行身份验证,因为除了 ASP.NET 之外,此 WCF 可能会被另一个客户端使用。

到目前为止,我看到的最好的建议是使用 Windows Identity Foundation (WIF)。看来这需要一个 STS。根据MSDN,微软似乎不建议通过 Visual Studio 设置 STS。无法保证 STS 在部署环境中可用,因为某些环境可能使用 Active Directory,而其他环境可能具有自定义用户存储。是否可以设置自定义 STS 以针对自定义用户存储进行身份验证?我很难找到有关执行此操作的文档。

除了使用 WIF,还有其他选择吗?如果自定义 WCF 身份验证服务返回可用于针对主要 WCF 服务进行身份验证的令牌,那又如何呢?

0 投票
1 回答
138 浏览

c# - 联合安全上的双通道绑定

我们正在通过 HTTPS 运行一组 WCF 服务,并使用 ws2007FederationHttpBinding 绑定对 STS 进行身份验证。

现在我们需要使用相同的身份验证技术添加双工/双工服务。 了解您的绑定选项声明只有 wsDualHttpBinding 可用于双工服务。我可以将它与我的 STS 一起使用吗?如果可以,有人知道如何配置它吗?

0 投票
0 回答
688 浏览

wif - 通过 WIF 创建自己的 STS 时如何获取用户名和密码

我正在使用 WIF 构建自定义 STS。继承 SecurityTokenService 类后,我使用 WSTrustServiceHost 和 IWSTrust13SyncContract 将我的 STS 托管为 WCF 服务。因为它只是一个原型 STS,所以我使用的是 BasicHttpBinding。

在客户端,我使用 WSTrustChannelFactory 连接到我的 STS,我可以成功获得输出声明。

但是当我尝试添加身份验证信息(用户名和密码)时,我发现它无法传递到我的 STS 中。

1,如果我使用的是 BasicHttpBinding,即使我通过客户端 factory.Credentials.UserName.UserName 和 .Password 指定了用户名和密码,我也无法在 STS 上找到用户名和密码。

2、我改用了UserNameWSTrustBinding(SecurityMode.Transport),但还是无法在STS中获取用户名和密码。

3,在 STS 中,GetScope、GetOutputClaimsIdentity 方法的参数是我运行服务器控制台应用程序的主体,而不是我从客户端指定的主体。

4、我注册了另一个UserNameSecurityTokenHandler并覆盖了它的ValidateToken方法。但似乎 STS 没有调用此方法。STS 提出了一个例外,说没有 CreateToken 实现。

5、我试过内置的 WindowsUserNameTokenHandler 它也引发了同样的异常。

任何人都可以看看并就如何处理给我一些建议。

0 投票
1 回答
1114 浏览

asp.net-mvc-3 - 在依赖方上使用被动联合身份和登录页面实施 SSO

我们使用被动联合身份(C#、ASP.Net MVC 3、WIF)为一组具有不同域名的网站实施了 SSO(单点登录)。该设置工作正常,因为它遵循标准的被动联合,登录页面托管在 STS 上。

www.brand1.com
www.brand2.com
...
www.sts.com(登录页面托管在这里)

现在客户端希望在每个依赖方上实现登录页面,这样用户就不会被重定向到 STS。原因是每个依赖方都是已知品牌,因此重定向到不同的域名(托管 STS)对于各自的品牌是不可接受的。在 STS 上为每个品牌定制登录页面也是不可接受的。

有没有办法将登录页面移动到依赖方?

0 投票
0 回答
309 浏览

axis2 - 从 Axis2 STS 客户端调用基于 Metro 的安全令牌服务

我想从 Axis 2 STS 客户端调用使用 Metro 2.2 框架创建和部署的安全令牌服务。我正在尝试做同样的事情,但遇到以下问题:-

我深入研究了源代码,发现在SecureConversationTokenBuilder类代码中是这样写的:-

然后我进入 SP11Constants.getInclusionFromAttributeValue(inclusionValue) 并看到以下代码:-

作为INCLUDE_ALWAYS = "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"这不等于在 policy.xml 中由 Metro 定义的

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Always

因此,上面的代码总是返回 -1 并依次抛出运行时异常,如下所示:-

只是想知道是否可以从 Metro 框架中创建的安全令牌服务 (STS) 获取令牌,该服务是从基于 Axis2 的 STS 客户端调用的。请告知,因为我正处于两者之间。

提前致谢。

0 投票
1 回答
3208 浏览

asp.net - 在 ASP.NET 中实现被动 STS

我已经安装了 WIF Runtime 和 WIF SDK v4.0 并在 Visual Studio 2010 中创建了一个“ASP.NET 安全令牌服务网站”(请参阅​​此链接)。

当我运行该站点时,输入任何用户名/密码组合,然后按“提交”,我得到以下异常:

操作 < EMPTY > (Request.QueryString['wa']) 是意外的。预期的操作是:“wsignin1.0”或“wsignout1.0”。

所以有几点:

  • 我意识到我没有依赖方(又名客户端应用程序),但是这对测试站点有必要吗?
  • 我可能缺少一些步骤(例如创建客户端应用程序)。我错过了哪些步骤?
0 投票
2 回答
5878 浏览

sharepoint-2010 - STS 错误“令牌的发行者不是受信任的发行者。”

所以对于初学者来说,这是我的环境:

  • 共享点 2010
  • Windows Server 2008 标准版
  • 这是我本地机器上的 VHD
  • 我已连接到我的工作域 我也已连接到
  • VPN 也是因为我需要的一些资源需要它

所以我在 SharePoint 中有一个用于 SSO 的 STS

STS 是通过 PowerShell cmdlet 创建的:

对于我的 SharePoint 网站的 Internet 区域,我将上面创建的受信任身份提供程序作为声明身份验证类型。

当我登录时一切顺利,直到我在代码中点击这一行,FederatedPassiveSecurityTokenServiceOperations.ProcessSignInResponse(signInResponseMessage, Response);

但是,根证书位于本地计算机上计算机帐户的 MMC 证书管理单元的受信任根证书颁发机构中。同样,根证书在 SharePoint 中被认为是受信任的。我通过管理中心->安全->管理信任添加了它。

任何想法为什么我仍然会收到此错误?

0 投票
1 回答
963 浏览

authentication - ASP.Net WebApi 身份验证和安全性

我一直在查看Thinktecture.IdentityModel.40库作为处理我的 Asp.Net WebApi 安全性的一种方式。我不明白的一点是以下,这是我的问题。

当用户第一次进行身份验证时,他们需要提供他们的用户名和密码。如果它们通过了身份验证,则会向它们颁发一个令牌以用于所有其他调用。

使用上面的库,我使用方法,AddBasicAuthentication到安全配置。这将默认使用令牌发行机制,还是我需要使用AddSimpleWebToken

如果是这样,我如何将这两种机制联系在一起?

0 投票
1 回答
787 浏览

claims-based-identity - 服务堆栈 API 和 ThinkTecture.IdentityServer

我们的团队正在开发我们的第一个 Web api 并使用 Service Stack 来公开我们的 REST 服务。我们知道我们需要安全性,因此这些 API 端点对全世界都是不可用的。我们还知道,我们需要能够根据调用服务的用户过滤这些 API 返回的数据。这些服务将由我们的移动应用程序和我们的桌面网站使用。用户存储库位于 SQL Server 的用户表中,但不是 ASP.NET 成员资格提供程序实现的一部分。Thinktecture IdentityServer 或 IdentityModel 是保护我们的 API 和通过 OAuth 访问声明的合适选择吗?此外,是否有一些使用 REST 服务实现这些的综合示例?