问题标签 [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.
c# - WIF 的自定义 SecurityTokenHandler
我正在尝试使用 Microsoft.IndentityModel (= Windows Indentity Foundation) 为 STS实现自定义SecurityToken
和SecurityTokenHandler 。
令牌被序列化为带有签名的简单 xml 文档(使用 X509 证书),并且有时(并非总是)加密(取决于目标领域)。
直到现在它工作得很好,但我被困在SecurityTokenHandler.CreateSecurityTokenReference(SecurityToken token, bool attach)上,它应该返回一个SecurityKeyIndetifierClause
.
我的问题是:什么是SecurityKey
,SecurityKeyIndentifier
和SecurityKeyIndentifierClause通常以及我的 sceanrio(rsa 签名(和加密)xml 令牌)具体是什么?
MSDN 中几乎没有文档,我也找不到任何对这个主题有帮助的东西。
提前致谢。
PS:我知道最简单和推荐的方法是使用像 saml 这样的内置令牌格式,但令牌是由旧系统评估的,该系统需要我无法影响的特定格式。
claims-based-identity - 如何使用 WIF 实现主动联合提供程序
我有几个 Silverlight、WP7 和 ASP.NET MVC 客户端应用程序 大多数允许匿名访问应用程序,但在登录时根据用户凭据保护各种功能。所有客户端都使用通用后端服务应用程序进行数据访问和业务需要用户凭据进行身份验证和授权的处理。
我们目前在所有客户端应用程序中使用表单身份验证,我想迁移我们的架构以使用联合身份和基于声明的模型。被动联合不是一种选择。
我正在寻找以下流程:
- 用户触发登录对话框,输入他们的用户名和密码,然后单击“确定”。
- 在幕后,应用程序调用我们现有服务应用程序中的活动 STS 服务进行身份验证。
- 该服务实际上是一个联合 STS,并将调用传递到(活动的)IP_STS,它可能是也可能不是 ADFS。
- 当 IP 将令牌返回给 FP 时,FP 在将令牌返回给客户端应用程序之前使用来自服务器数据存储的附加声明修改令牌。
- 客户端应用程序在内存中维护令牌以进行授权检查(例如,在 Thread.CurrentPrincipal 中)。
- 客户端在向我们的服务应用程序中的其他服务操作发出请求时也会传递令牌。
- 这些服务操作将使用令牌对请求进行身份验证/授权。
这是一个与我能够找到的任何文章和示例非常不同的用例。任何人都可以提供一些指导和/或指出我正确的方向吗?
.net - 是否可以实施 SSO 服务(自定义 STS、WIF)以使其具有高可用性(集群或网络场)?
我最近在这里问了一个问题:在 .NET Web Farm 中为几个使用 WIF 的电子商务网站实现 SSO? 这概述了我下一个问题背后的细节。
问题/解决方案的简要总结是,可以使用带有自定义 STS 的 WIF 来实现一系列需要 SSO 解决方案的网站,以针对某种 SQLMembershipProvider 验证用户。在为该系统开发图表时,出现了另一个问题。
网络场中的网络服务器理念背后的目的是消除网站的单点故障 (SPOF),从而实现更可靠的服务交付。类似的策略在数据库服务器和电子邮件服务器上都有很好的记录。是否可以使用自定义 STS 和 WIF 实施 SSO 解决方案,而不会在现有高可用性环境中引入单点故障?为了消除此 SPOF,需要实施哪些额外的步骤/策略?
或多或少的问题是:
- 可以将自定义 STS 放入负载均衡的环境中吗?
- 是否可以将 WIF 置于负载平衡的环境中(不使用 Azure 等第三方实现)?
- 为了实现这一点,需要解决哪些具体的技术问题(或者可以像 Web 服务器一样完成)?
- 这是个好主意吗?有哪些潜在问题?
我在网上做了很多研究,无法找到这个问题的完整答案。我对基于声明的身份验证和联合身份仍然很陌生,所以如果我含糊不清或迟钝,请原谅我。
我是否要在圆孔中安装方形钉?
如果您需要任何澄清,请告诉我。
c# - 从 Windows XP 客户端访问 ClaimsAware 服务
我们正在设计一个新的 N 层项目,其中客户调用 WCF 服务。在我之前工作的一个项目中,我们使用实现了自己的类,System.ServiceModel.ClientCredentialsSecurityTokenManager
并且System.ServiceModel.Description.ClientCredentials
(它们都依赖于 System.IdentityModel somehwere)将这些凭据绑定到服务端点,并使用 STS 检查用户是否有权执行指定的操作服务。所有用户都至少拥有 Windows Vista - 到目前为止还不错。
现在,我们想使用类似的方法。但这就是客户介入的原因:他们几乎都有 Windows XP 机器,但 Windows 身份模型无法安装在 XP 上(不支持)。因此,在我们开始朝着完全错误的方向进行设计之前,我最好征求您的意见。
编辑 好吧,我用 Windows XP 安装了一个新的虚拟机,所有需要的程序集似乎都可用,所以这可能只是一个误报!?
sharepoint - 使用 Windows Identity Foundation 为 SharePoint 2010 创建自定义活动 STS
谁能告诉我是否可以为sharepoint 2010创建一个自定义的主动安全tokebn服务。我基本上是想创建一个自定义的sts,这样我就不必离开sharepoint站点本身就可以登录。
我已经看到了创建自定义被动 sts 的示例,但看不到自定义被动 sts 的任何内容。
我对 WIF 很陌生,所以任何指针或帮助将不胜感激。
编辑(2011 年 11 月 22 日):好的,也许我看错了。第一个问题是我有 web 服务和一个网站,需要知道声明,并将每个请求解析为相同的身份(在这种情况下,我不能对服务使用被动 sts)。第二个问题是我希望能够将登录工具集成到我网站的主页上——我的理解是,这不能通过被动 sts 来实现。
编辑(2011 年 11 月 28 日):所以在下面的建议中,我实施了 thinktecture 身份服务器。我很容易让它在被动场景中工作,但我仍然无法让它与 ws-trust 端点(主动场景)一起工作。我一直在尝试使用 WSTrustChannelFactory 和 UserNameWSTrustBinding 创建自定义登录 Web 部件,但每当我调用 ValidateToken 时,我都会收到一条错误消息,指出“令牌的颁发者不是受信任的颁发者”。信任应该已经建立,因为我可以使用被动登录机制登录。
马特
c# - 使用 STS 和 WCF 服务进行单点登录
我有一个 sts Web 应用服务器和 WCF 服务作为我的客户端。当我将 sts 引用添加到我的 wcf 服务时,它会被添加。
但是当我浏览 wcf 服务时,sts 服务器的默认登录页面没有显示出来。
相反,wcf 服务托管在浏览器中。
调用 WCF 服务时如何获取 sts Web 应用服务器的登录页面。
asp.net-mvc - 自定义 WIF 请求验证器无限循环
在解决此处描述的问题时,我创建了另一个我似乎可以在网络上其他任何地方找到的问题:
上面的代码不断调用 IsValidRequestString() 导致无限循环。每次调用都是相同的,堆栈如下所示:
这发生在自定义信赖方安全令牌服务中,该服务将我的信赖方的身份与 FedUtil 工具创建的 ip 联合起来。有谁知道为什么WSFederationMessage.CreateFromFormPost()
会调用请求验证器?返回的wreply似乎很正常。
编辑:这只发生在我之前已经过身份验证的情况下。如果我清除浏览器缓存,它不会发生。
wcf - 在 SharePoint 2010 中使用 WCF STS 引导令牌(thinktecture 身份服务器作为 sts 和 ActAs)
在使用自定义 STS 时,是否有人在 SharePoint 2010 中使用过引导令牌。我已经为此苦苦挣扎了几个小时。每当我发出 RST 时,我都会收到以下错误消息:
我正在使用带有 Thinktecture Identity Server 的 SharePoint 2010 作为我的 STS,并且正在尝试通过委派调用 WCF 服务。我让这一切工作正常,但我无法使用引导令牌让委派工作。
我猜 SharePoint 必须以某种方式加密引导令牌?!任何帮助或指示?
c# - ADFS 2.0 令牌过期时间
我正在客户端上缓存 ADFS 2.0 发出的令牌,并在调用服务时多次使用它。
在生产环境中,我想确保客户端可以缓存的令牌在几分钟后过期。我已经读到 ADFS 2.0 中的令牌在 10 小时后过期,但我找不到可以更改依赖方令牌过期时间的地方。
这就是我目前从 STS 请求令牌的方式:
我尝试将WEB SSO时间设置为两分钟,但似乎没有任何影响。
在 ADFS 上配置过期时间的正确位置是什么?
web-services - 当用户注销时,我们是否需要在 Windows Identity Foundation 的 SecurityTokenService 中实现一些逻辑?
我正在实现自己的 SecurityTokenService ,它源自WIF 的 STS。我是否需要强制执行Cancel方法?
默认情况下,如本文所述,每次调用都会实例化Windows Identity Foundation 的 SecurityTokenService。如果我没有明确地缓存任何东西(或做类似的事情), 你是否看到任何应该通过实现 Cancel 方法来处理的事情?STS 或 WIF 是否在后台执行用户注销时应处理的操作(调用取消方法)? 例如,如果我一直在缓存令牌,那么当用户注销时,我必须在 Cancel 方法中将其从缓存中删除。