问题标签 [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.
wcf - 陷入身份验证重定向循环 - STS/WIF
使用 VS2012 .Net Framework 4.5,我使用身份和访问插件创建了一个带有本地 STS 的 WCF 服务应用程序。我的目标是能够使用浏览器进行身份验证。到目前为止我做了什么:
- 添加了 WSFAM 和 SAM 模块。
- 使用 Fiddler 确保我得到正确的重定向
- 确保已创建 FedAuth[] cookie。
在创建 cookie (SAM) 之后,我再次被重定向回 STS。这就是我陷入循环的地方。
WCF 和 Web 服务对我来说很新,如果我详细说明了太多,请见谅......
这是我的 web.config:
提琴手
响应 #10108 - 设置 FedAuth cookie 并重定向到资源 Request #10109 - 使用给定的 cookie 请求重定向的资源。 响应 #10109 - 结果 401,在 #10111 再次重定向到 STS
python - 如何在 python/django 中接收和验证 WS-Federation 令牌?
我正在尝试为已签名的 WS-Federation 令牌实现一个断言使用者,作为 SSO 系统的一部分。我知道 simplesamlphp 具有(未记录的)ws-fed 支持,但我使用的是 Django 堆栈。看起来 djangosaml2 pysaml2 不支持 WS-Federation 规范,因为他们期望 XML 具有“响应”根节点,而不是“RequestSecurityTokenResponseCollection”根节点。
有没有人遇到过这个?有没有可以帮助我的python库?我很想推出自己的消费者,但我担心由于缺乏 X509 和 xml 知识,我可能会滑倒并造成安全漏洞。
谢谢!
.net - .NET:以编程方式从 ACS 检索 SAML 令牌
我正在尝试以编程方式检索 SAML 令牌,出于各种原因(好奇心和测试将它们发送到 Web 服务是主要的原因),并且正在努力从 Windows Azure ACS 检索令牌。
我已经使用 Thinktecture 的 IdentityServer 设置了一个身份提供程序,并且能够使用以下代码从中检索 SAML 令牌:
然而,在 ACS 中,我将我的应用程序设置为 RP,并将其配置为使用两个身份提供程序,其中一个是我的 Thinktecture IP。
当我尝试使用上述代码从 Azure ACS 检索令牌时,它不再起作用,并且我收到了一个异常。我相信这是因为我对 ACS 角色的理解是错误的,而且 ACS 是“联邦者”,所以我不能简单地向它索要令牌。我现在相信它应该通知我可用的身份提供者,并给我足够的信息来定位它们并获得一个我应该返回给 ACS 的令牌。
我究竟如何从代码中做到这一点?这是 WS-Federation 而不是 WS-Trust(我还不太了解这些术语)?假设我已经可以从身份提供者那里获得 SAML 令牌,我如何让 ACS 接受令牌并给我一个联合令牌?
security - 基于令牌的安全策略和注意事项
我正在研究适合以下客户端/服务器方案的安全设置,并且我有几个问题/注意事项想与您分享。
情况:我在不同平台上有多个客户:
- HTML 客户端(使用 jQuery/AJAX 的单页应用程序 (SPA))
- 安卓应用
- Silverlight 客户端
- Windows 客户端
- Windows 移动客户端
大多数相应的服务器组件都基于使用 REST 的 .NET WCF(但对于某些后端,我使用的是其他协议)。
我发现ThinkTecture 的开源项目 IdentityServer v2对我的解决方案来说是一个不错且灵活的安全令牌服务 (STS)。它支持多种令牌类型、协议,并且具有高度可扩展性,如果需要,它还具有基于 ASP.NET 成员资格数据库的自包含身份提供程序 (IdP)。
客户端使用用户名/密码的基本流程如下:
- 客户端对其服务器上的资源(需要授权访问)进行未经授权的 HTTP 调用
- 由于客户端尚未经过身份验证,服务器返回 HTTP 401(未经授权),在 HTTP Location 标头中向 STS 提供地址(请参阅下面的注释)
- 客户端在 HTTP Basic Auth 标头中将其凭据提交给 STS
- STS 返回一个包含所有相关用户声明的 JWT 令牌
- 客户端现在重复第 1 步的初始请求,包括 HTTP Auth Bearer 标头中的 JWT 令牌
- 服务器验证令牌,因为它源自受信任的 STS 源,并返回请求的资源
我知道第 2 步将 HTTP 401 错误消息与通常与 HTTP 3xx 状态代码关联的 HTTP Location 标头结合起来有点不正统。我需要 401 状态代码,因为我的 jQuery/AJAX 客户端会自动处理 302 重定向消息,而没有任何机会拦截重定向。
现在,系统需要使用外部 IdP。“内部”STS 被定制为将身份验证请求转发到外部 IdP 处理声明从外部 IdP 格式到内部格式的转换。一个问题是它暗示了“密码反模式”,但目前所有系统都是内部且值得信赖的。
WS Federation 可以成为我的朋友吗?
上述基本流程适用于所有客户端,无论是否基于浏览器。但对于特定的浏览器客户端,我一直在研究联合安全方案,让 IdP/STS 为客户端提供登录机制。我使用的 STS (IdentityServer) 可以配置为与符合 WS-Federation 的 STS 结合使用。因此,令牌会自动转换为目标令牌格式(在我的例子中,例如从外部 STS 的 SAML 令牌到内部 JWT 令牌)。有了这个,我可以拥有某种 SSO 机制。
现在我的问题:
- 我描述的基本安全流程是最优的吗?
- WS-Federation 是否仅适用于浏览器客户端?
- 如果没有,它如何与我的 android 客户端一起使用?
- 在具有更多 STS 的 WS-Federation 中,以下之间的通信流程如何:客户端 - 内部 STS - 外部 STS(在 HTTP 通信、cookie 和其他方面)。
gwt - 作为 SAML 令牌身份验证的一部分丢失的 URL 片段;解决方法/标准模式?
几个 Web 应用程序身份验证协议(如 WS-Federation 和 SAML 协议,即所谓的“被动”协议,显然还有 ASP.NET Forms 身份验证,请参阅此 StackOverflow 问题和 AppEngine,请参阅此 GWT 错误评论)丢失原始的“URL 片段”,即#-符号之后的部分。
发生的情况大致如下:在干净的浏览器中(因此没有缓存的信息/cookies/登录信息)我打开 URL (1) http://example.com/myapp/somepage?some=parameter#somewhere。这使得浏览器请求 (2) http://example.com/myapp/somepage?some=parameter,服务器将我重定向到我的身份提供者(包括身份验证请求中的 URL (2)),最终我被重定向回到我来自的地方,即 URL (2):这是服务器知道的唯一 URL。但是我想转到 URL (1),并且 URL 片段('anchor')一直丢失,实际上已经在第一步中。
这似乎是这些协议的基本限制,因为服务器根本看不到 URL 片段。
我知道它是根据浏览器从服务器请求 (2) 的规范,当我导航到 (1) 时,导致对 SAML 协议、WS-Federation 等的这种片段丢失限制。我的问题是:怎么做我解决了这个限制?
显而易见的解决方法是避免 URL 片段,正如这个答案中所建议的那样。但是,对于我们的特定 Web 应用程序来说,这并不好,因为我们在单页 GWT 应用程序中使用了可收藏的 URL 片段,以确保我们的应用程序中的导航不会导致页面重新加载。
我的问题:对于这种情况,还有哪些其他解决方法或标准模式?
(我对 GWT + SAML 协议解决方案特别感兴趣。)
wif - 到达 STS 后,没有 Fedauth cookie 被作为 SAML 令牌发回,似乎错过了 XML 标记。仅在 Firefox 上发生
我正在为一个似乎适用于 IE 和 Chrome 的特殊问题而摸不着头脑。
我们有一个为 RP 服务的定制被动 STS。一切都很好,直到我通过我的自定义身份验证服务进行身份验证,然后 STS 返回我可以在我的临时文件夹中看到的令牌。然后发送 SAML 1.0 令牌的 POST 操作挂起并静默死亡,而不是取回通常会重定向我 RP 的 FedAuth cookie
注意:RP 和 IP 托管在反向代理服务器 (Nginx) 后面的 Web 服务器上。反向代理通过 SSL 托管,所有往返代理服务器和网络服务器的流量都是非 SSL
以下内容登录网络服务器
我不明白为什么只是为了 FF 我会遇到这个问题。FF 标头中发送的内容大小是否有限制?
另一个问题是:我已经安装了两个不同的证书,一个在代理服务器(SSL)上,一个在网络服务器(STS)上,用于签署令牌。我可以使用相同的证书吗?我是不是该?
certificate - 为什么我会收到此错误:“IssuerNameRegistry 无法识别安全令牌的发行者”
当我想使用自定义 STS 运行我的应用程序时(我已经编写了它并且它运行良好),首先我得到这个错误:
IssuerNameRegistry 无法识别安全令牌的颁发者
我测试了这个错误的所有解决方案,但我仍然有这个错误。
我添加了“TrustedIssuerNameRegistery”类并将其设置在 web.config 中。
这是 web.config 设置:
然后我得到这个错误:
我什至安装了“ValidatingIssuerNameRegistry” dll 并在 web.config 中注册了它,但我又遇到了第一个错误。
为什么我经常收到这个错误?它有什么问题?我还能做什么?如果你愿意,我也可以给你我的源代码。
asp.net - WS-Federation 真正做了什么(深入并通过一个简单易懂的例子)?
我已经阅读了一些关于 WS-Federation 的文本,但我无法理解。我有一些疑问 :
- 如果没有 WS-Federation 会发生什么?
- 单点登录有什么帮助?
- WS-Trust 和 WS-Federation 有什么区别?
我只想在现实世界中以非常简单易懂的样本来回答!我读了很多,但我无法深入理解
谢谢
cookies - DNN 和 WSFederation - FedAuth cookie 未发送到服务器
我最近在我的 IIS 中将一个 DNN 站点向下移动了一个级别。现在单点登录不起作用,因为请求中没有发送 FedAuth cookie。如果我将 CookieHandler.Path 属性设置为“/”,它确实可以工作,但是我在 IIS 中有多个站点,所以这会导致一些冲突。
我已将依赖方从 mysite.com 更改为 mysite.com/newspot/
我还在 dnn portalalias 表中进行了 httpalias 更改以指向 mysite.com/newspot
我需要更改其他一些变量才能使其正常工作吗?默认情况下,cookie 的路径应该是 /newspot/。它只是没有进入请求。
saml - ADFS 2.0 How to get wfresh="0" to work with SAMLP?
I'm using ADFS as STS to access an external SAML Idp, and I need to force authentication to happen in certain use cases. This seems to be possible only through modified IdpInitiatedSignOnPage as suggested in
AD FS 2.0 Sign-In Pages Customization Overview (http://msdn.microsoft.com/en-us/library/ee895361.aspx)
My Question is, how do I get this to work when using the wsfederation? Specifying wfresh="0" seems to have no effect at all? What am I missing? Is this use case even supported?