问题标签 [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.
asp.net-mvc - 支持外网用户的 ASP.NET 表单身份验证和内网用户的 ADFS 联合登录
我正在开发一个将部署在云中的 asp.net MVC Web 应用程序,并且应该支持以下身份验证方案:
- 内网域用户透明认证。这些用户应该能够在不登录的情况下访问应用程序。
- 互联网上任意非域用户的表单登录。这些用户应该看到一个使用表单身份验证的登录页面,并且成员资格由应用程序内部管理。
- 公共互联网上域用户的表单登录。他们应该能够使用与非域用户相同的登录表单,但使用他们的域凭据登录。
具有被动身份验证的 Active Directory 联合身份验证服务 (ADFS) 可以涵盖案例 #1 和 #3。因为它重定向到联合提供者的登录页面,所以它不包括#2 的情况。我知道我的应用程序的主动身份验证可能支持所有三种情况,但是关于如何实现的文档并不多。
理想情况下,我的应用程序应该有一种方法可以向 ADFS 联合提供程序验证域用户名和密码。
有谁知道这是否可能,如果可以,怎么做?
claims-based-identity - 是否有 javascript 库可以通过 Windows Azure Active Directory 获取身份验证令牌
我有许多使用 Microsoft MVC4 Web Api 创建并使用 WIF 和使用 WS-Fed 的 Windows Azure Active Directory (WAAD) 保护的 Web 服务。
我还有一个纯 HTML5/Javascript 单页应用程序 (SPA) 客户端,需要访问这些 Web api。
Javascript 中是否有任何已知的示例/库来处理与 WAAD 的交互
- 确定用户是否已经登录。
- 登录用户并在需要时获取安全令牌
- 交互完成后退出。
如果没有,是否有任何推荐的链接到实现类似功能所需的文档。
asp.net - ADFS 2.0 IDP 发起的 SSO
我正在尝试使用 ADFS 2.0 作为我的 RP STS 和 SAML 2.0 身份提供者为 IdentityProvider-Initiated SSO 设置测试配置。这是我的设置:
身份提供者 - 使用 ComponentSpace SAML v2.0 .NET 插件的 SAML 2.0 令牌发行网站。
RP STS - ADFS 2.0 实例与我的 asp.net 应用程序具有 RP 信任关系。
RP 应用程序 - 带有对我的 ADFS 2.0 STS 的 STS 引用的 ASP.NET Web 应用程序 (WIF)。
所以发生的情况是用户登录身份提供者网站并通过身份验证。然后给他们一个到 RP STS 的链接。这个链接(据我了解)应该使用 RelayState 告诉 RP STS 用户需要转发到哪个应用程序。我知道我需要在 ADFS 和我的 IP Web 门户之间建立某种信任,但我不知道那可能是什么。我的问题是我找不到任何好的资源来指导如何做到这一点。我发现的大部分内容都假定 ADFS 也是身份提供者并配置为 SAML 2.0 端点。我正在尝试做的事情是不可能的,还是我只是没有找到合适的资源?
谢谢!
java - 如何使用 Java 服务提供者验证 WS-Federation SAML 令牌
我正在开发一个项目,该项目使用 ws_federation 和 SAML 向运行在 .net 上的 IIS 服务器上运行的身份提供程序进行身份验证,该服务器名为thinktecture
我需要编写一个 Java 服务提供者,将 SAML 身份验证请求发送到身份提供者,并在我的 Java Web 应用程序上获取 SAML 响应。
我需要知道是否有任何好的库来验证 SAML 并可能提供一些设置方向或指向入门教程的链接。我尝试了 spring_security-saml_extensions,但是当我尝试将身份提供者元数据链接放入配置文件时,我不断收到错误消息。
任何帮助将不胜感激!
另外:如果该解决方案可以集成到现有的 Java Web 应用程序中,那就太好了!
一些附加信息:
下面是我可以从我正在处理的 SP 中的 IDP 返回的响应中获得的 XML,我的印象是这是一个 SAML 令牌。
forms-authentication - 是否可以跨子域使用 WIF SessionAuthenticationModule cookie?
我目前正在使用 Forms Auth 跨子域进行身份验证。所以我有以下服务器:
并且他们能够共享 Forms Auth cookie。这是如何实现的链接:http: //msdn.microsoft.com/en-us/library/eb0zx8fc (v=VS.100).aspx
但是现在我正在向我的应用程序添加声明,似乎当我调用此行时:
有一个“FedAuth=”cookie,其中包含序列化和加密的声明。
但是现在我无法在我的一个子域(site1)中设置 FedAuth cookie 并让另一个子域读取它(site2)。我收到此错误:
以前,使用 Forms Auth,这不是问题,它只是工作。
为了在所有使用相同域的子域之间共享这些 FedAuth cookie,我需要做什么?
是的,两个站点的 web.config 文件具有相同的 machineKey。并且每个站点的应用程序池上的 loadProfile 设置设置为 false。
我希望能够在不涉及 STS 的情况下做到这一点。STS 引入了开销和复杂性,我看不出有任何理由说明您不应该能够将包装到 FedAuth cookie 子域中的声明变得友好。
谢谢,迈克
single-sign-on - SAML IDP、ADFS 2.0 SP 和 WS-Fed 应用程序
更新:
我能够让 ADFS 将我的用户转发到依赖方应用程序。我使用了 ComponentSpace 的 SAML2.0 库和 RelayState。即使它成功转发到 WIF 应用程序,它也无法识别我的用户已通过身份验证。相反,它通过重定向到 IDP STS 来启动 SP 发起的 SSO 方案。我不太确定我应该如何进行。
原始信息:
我已按以下方式配置了单点登录设置:
IDP - 向我的 SP 发布 SAML2 响应的门户网站。
SP - ADFS 2.0 配置了声明提供程序信任配置为 SAML2.0 端点(当然是我的 IDP)
RP 应用程序 - 在 ADFS (WS-Fed) 中配置为信赖方信任的 ASP.NET 应用程序。
当我登录到我的 IDP 并单击将 SAML2 令牌发布到 ADFS 的链接时,一切正常。我被带到 IdpInitiatedSignOn.aspx 页面并被告知我已登录。问题是我通常希望看到一个可供选择的应用程序的下拉列表(应该只包括我的单个 RP 应用程序)我什么也看不见。我只有两个按钮允许我退出所有应用程序或单个应用程序。配置我不知道的 RP 应用程序信任是否有一些技巧?据我了解,ADFS 2.0 将接受 SAML2 和 WS-Fed 的这种配置。(参见“我什么时候可以使用 RelayState?”下的http://blogs.technet.com/b/askds/archive/2012/09/27/ad-fs-2-0-relaystate.aspx )
我将不胜感激对此的任何建议。
wif - Windows Identity Foundation (WIF) 是否支持基于 WS-Trust 的 STS
我们的合作伙伴正在尝试根据规范设置基于 WS-Trust的PicketLink STS 。无论 WIF 是否支持这一点,我都找不到任何信息。我知道它支持 WS-Federation,它是 WS-Trust 的扩展。大多数时候这两个术语是结合使用的,所以我不知道是否也支持单独的 WS-Trust。
提前致谢。
asp.net - wfresh not working with WS-Federation via ADFS
I have an application that authenticates against ADFS 2 via WS-Federation. I look for a specific claim when I get the response back from ADFS and based on that claim, I am able to authorize the user into my application. I want to create an enhancement in which when a user authenticates against ADFS and comes back to my application WITHOUT the claim I require, that I redirect them back to the Identity Provider (ADFS), but this time FORCING them to provide their credentials again. I wrote my code to detect an authenticated user that is missing the claim I require and sends them back to reauthenticate, this time sending along the "Freshness" parameter (wfresh=0). I was under the impression that this would prompt the user for credentials but it seems to just reuse the original credentials which, of course, causes an infinate loop (that ADFS halts.) How can I achieve this?
My URL looks like this when I send them back to the IdP after not having the required claim:
#xA;identity - 如何防止 MS WS-Federations 身份提供者自动重新登录我的用户?
现在我的应用程序使用 WS_Federated 登录,并且 wit 工作得很好,但是当我注销时,当我点击登录链接时它会自动让我重新登录。
我已经验证,User.Identity.IsAuthenticated == false;
一旦用户注销,它就可以工作。我用它来注销:
但他的问题是,当我获得重新登录的链接时,它会发送自动登录的信息。基本上看起来用户没有注销。让我登录的字符串在这里:
似乎没有保留任何 cookie,因此它是通过 url 传递的。我可以取出/修改哪些部分以避免登录?有一个更好的方法吗?如果有任何不清楚的地方,请告诉我。
asp.net - 将会话与 WCF WS2007FederationHttpBinding (WSFederationHttpBinding) 一起使用
使用WS2007FederationHttpBinding时,我无法将我的值存储在 WCF会话中。我在 WCF 中看到过这个主题 Session not compatible,但它没有帮助。此外,我不关心可靠的会话,我只想在会话中存储一些信息并在第二个请求时读取它。这个方案适用于我的 basicHttpsBinding。
这是我的绑定。创建频道后,我将其存储到客户端 Session
服务配置:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
服务中的会话访问:
服务中的会话检索(在第二个请求中始终为空,但SessionId相同):
if (HttpContext.Current.Session["serviceSession"] == null) ...
我将通道本身保留在两个请求之间的客户端会话中,并将其从会话中重新用于第二个请求。