问题标签 [ws-federation]

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 回答
2026 浏览

wif - WIF 安全令牌超时从何而来?

SessionAuthenticationModule课堂上的事件之一是SessionSecurityTokenReceived。这使我们能够查看从 AD FS 收到的会话令牌。as 两个属性SessionToken称为ValidFrom和。ValidTo在我们现在的配置中,这两者之间的差是 1 小时。我查看了 AD FS 中的设置,但一直无法找到如何更改此值。有谁知道它在哪里?

0 投票
2 回答
1261 浏览

c# - 防止 wtrealm 中的跨站点脚本

我们正在创建一条消息,如下所示SignInRequestMessage

它具有以下属性:

Microsoft.IdentityModel.Protocols.WSFederation.SignInRequestMessage

Action: "wsignin1.0"

message.Parameters

注意消息中的第二个参数是一个 javascript,当 adfs 重定向到它时,我们实际上看到了警报。

当用户登录时会发生这种情况,并且在同一个会话中,我们尝试输入如下 URL

有人对我们如何防止wtrealm这个跨站点脚本漏洞有任何建议吗?

0 投票
0 回答
213 浏览

azure - MS Live ID 身份验证后如何重定向

我正在开发一个托管在 Azure 上并使用 Windows Identity Framework 进行身份验证的 ASP.NET Web 应用程序。

问题是:如何处理来自身份提供者(MS Live ID)的响应?

我发现配置元素 wsFederation 包含此目标的回复属性,但在将其设置为回复 =“http://localhost:64911/Pages/HandleUserLogin.aspx”后它没有任何效果。

在 AudienceUris 部分添加了“http://localhost:64911/”的记录。

任何关于如何在用户登录后处理响应的想法都将不胜感激。

0 投票
2 回答
4246 浏览

c# - 通过 Ws-fed 身份验证引发的 XML 错误

我在我处理的基于 WIF 的依赖方应用程序的日志中看到以下错误,并且无法重新创建该问题:

阅读这篇 Technet 文章可能导致的问题,我认为问题出在从 STS 回传到 RP 的 wresult 参数中,但我看不出它是如何被错误地发回的,除非它被篡改,而且这似乎不太可能由于问题的数量。

如果有人可以确认导致此类错误的原因以及它是如何发生的,我们将不胜感激。

0 投票
1 回答
2172 浏览

forms-authentication - 混合模式联合身份验证和表单身份验证

我正在尝试进行混合模式身份验证,以便能够将一些用户放在联合身份验证上,而将其他用户放在表单身份验证上。

我正在使用 WIF,我设置了我的 STS,一切都很开心,当我处于联合模式时,通过以下方式关闭所有身份验证:

我登录到我的主应用程序,然后当我登录到我的侧应用程序时,它会让我静默登录,因为会话 cookie 已经生成并且用户已经过身份验证。

但是当我使用表单身份验证时,当我登录到我的侧面应用程序时,它会将我带到我理解的登录页面,因为用户未经过身份验证,但似乎即使拥有会话 cookie,它也不会静默重定向它。

我知道我需要将 onEndRequest 重定向到 STS 以对用户进行身份验证,如果用户已经通过身份验证,那么它将生成 FedAuth cookie,并且它将让我静默登录,

有人知道如何实现这一点,我研究时没有找到有关它的资源。

阿拉

0 投票
1 回答
3940 浏览

asp.net - 如何在 SessionSecurityTokenCreated 时有条件地设置 FedAuth cookie SessionToken.IsPersistent

我将 WIF 与 WS Federation 一起使用,以便我的 ASP.NET 应用程序可以针对 STS(Thinktecture IdentityServer)进行身份验证。在我的 RP 中,我想根据用户的声明务实地设置 cookie 持久性。

观察 Fiddler 中的流量,我可以看到 WIF FedAuth cookie 是在 STS 令牌发布到 RP 时首次设置的。在设置 cookie 之前,我想拦截一些事件并根据当前声明将 cookie 设置为持久(或不持久)。

我知道我可以在 web.config 中设置 cookie 持久性,但是这种行为需要基于用户的条件。

我的第一种方法是尝试处理各种 SessionSecurityTokenCreated 事件,但这些事件似乎从未被触发。 我是否错误地添加了处理程序?或者有没有更好的方法来做到这一点?

有趣的是:如果我为 SessionAuthenticationModule_SessionSecurityTokenReceived 添加一个处理程序,这个事件似乎会触发。在这里,我可以重新发出 cookie 并设置IsPersistent = true但这直到第一次设置 cookie 后才会被触发,我更愿意在第一次发出 cookie 时执行此操作。

经过一番测试:如果我在 SessionAuthenticationModule_SessionSecurityTokenReceived 中重新发出 cookie,那么 SessionAuthenticationModule_SessionSecurityTokenCreated 将被触发。我只是似乎无法找出为什么当令牌首次发布到 RP 时在初始创建 cookie 时没有触发它。

0 投票
1 回答
3055 浏览

asp.net-mvc-4 - 如何使用业务身份提供者(例如 ADFS2)

我正在运行 Win 7、IIS 7.0、VS2012 我创建了 asp.mvc4 Web 应用程序我在单独的 VM 上有 ADFS2.0

在 VS 2012 中使用身份和访问工具

我选择使用业务身份提供者 (egADFS2) 并键入 STS 元数据文档的 url。

https://server.local/federationmetadata/2007-06/federationmetadata.xml

编辑了网络配置

还有这个

还检查了该项目是否禁用了 Windows 身份验证

该网站重定向到这样的网址 http://localhost /WebSite/login.aspx?ReturnUrl=%2fWebSite%2f 有一个“找不到资源”错误。

我还需要摆弄什么才能完成这项工作?

Microsoft doco 是轻量级的http://blogs.msdn.com/b/vbertocci/archive/2012/03/15/windows-identity-foundation-tools-for-visual-studio-11-part-iii-connecting-with -a-business-sts-eg-adfs2.aspx

我已经在本地开发 STS MS Identity and Access Tool MVC 4中遇到过类似的问题

0 投票
2 回答
1756 浏览

wif - 在服务器/应用程序之间共享 IClaimsPrincipal/FedAuth Cookie ID1006

我有一个 ASP.NET 应用程序,它使用 Azure ACS(以及间接的 ADFS)进行身份验证——一切正常。现在我被要求将 SessionToken 传递给另一个后端服务,在那里可以对其进行验证并提取声明。[长篇大论,不是我的选择]

我在解密方面很适合,我确定我缺少一些基本的东西。

为了设置阶段,解密时的错误是:

ASP.NET 网站使用 RSA 包装器 ala:

(指纹与 FedUtil 在 web.config 中添加的值相同。

我用以下方式编写令牌:

这给了我:

并且,在另一个盒子上使用相同的证书(并且将令牌作为文件读入仅用于测试),我有:

然后 ReadToken 抛出 FormatException

在这一点上,我无法判断我的整体方法是否存在缺陷,或者我是否只是错过了解决所有这些问题的众所周知的“一条线”。

哦,我在网站上使用 VS2010 SP1 (.NET 4.0),我在解码端尝试了 VS2010SP1 .NET 4.0 和 VS2012 .NET 4.5。

谢谢!

0 投票
2 回答
1084 浏览

c# - 在没有 WSFederationAuthenticationModule 的情况下解析“wresult”值

从 Azure ACS 返回时,我在 FormCollection 中检索联合身份验证结果。包含我需要的信息的值位于一个名为“wresult”的加密值中。我在解密此值以将其用于进一步身份验证时遇到问题。

我不想使用 WSFederationAuthenticationModule 因为我没有授权设置 cookie。使用该模块时,它会自动将 auth-cookies 设置为 Federated-Authenticationtype。

相反,我想检索 wresult 中包含的声明,然后设置我自己的安全令牌(无论是 JWT、SAML 2.0 还是其他)。

到目前为止,我发现的唯一可能的解决方法是使用 FAModule,然后立即删除会话令牌 cookie。但这将导致 auth-cookie 在响应中设置两次,并立即取消设置该值。

我最终想要实现的是:提供使用表单站点进行身份验证或使用 Azure ACS 中的任何身份提供程序进行身份验证的可能性。使用表单身份验证,我可以立即比较用户名和密码,并将安全令牌设置为我希望它拥有的任何声明。但是在使用 Azure ACS 时,我想先将检索名称标识符与数据库中保存的值进行比较,然后设置我的自定义安全令牌,而不是 WS 联合安全令牌。或者,如果 nameidentifier 未知,我想重定向到表单页面,用户可以使用他的凭据验证这个 nameidentifier。我不希望将 azure ACS 返回的值计算为经过身份验证。

0 投票
1 回答
235 浏览

security - Web 应用程序 - STS 身份提供者集成

我想设置具有 STS 身份提供者相关性的 Web 应用程序。

我已经准备好测试 Web 应用程序,使用 WIF 联合实用程序设置所有必需的 WIF 数据并以 STS 服务为目标。那没问题。我收到了来自测试 STS 的令牌。现在我不知道如何完成以下场景:用户来到应用程序并且他/她没有登录。打开登录页面,用户提供凭据(用户名和密码),然后我的页面必须将该请求重定向到 STS 服务。目前,当我得到 WSFederationAuthenticationModule http 模块时,它会自动拦截 HTTP 请求,当它确定这是未经授权的时,它会将该请求重定向到 STS。如果我错了,请纠正我。现在我很困惑,如果它是自动操作,用户提供数据的步骤在哪里?我想完成 WS-Federation 标准。

谢谢你。