问题标签 [saml-2.0]

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

saml-2.0 - 多合作伙伴的 PingFederate SLO 问题

我正在使用 PF 5.2.0 来设置 IdP 以及多个 SP。我的问题是关于单个注销 senario。

如果 SP1 和 SP2 与我的 IdP 建立了会话,则在 IdP 启动注销时,通过向两个 SP 发出 samlp:LogoutRequest 可以正常工作。如果在与 IdP 建立会话后其中一个 SP 关闭,那么 SL​​O 未完成,则将面临一个问题,这意味着如果 SP1 关闭,则假设第一个注销请求发送到已关闭的 SP1,则 samlp:LogoutRequest 不会发送到 SP2。

我正在使用 POST 绑定,但我相信这与重定向的结果相同

期待你的评论。。

-Vj

0 投票
6 回答
5655 浏览

php - 从 PHP 使用 WCF 服务

首先让我“警告”你,我不是 PHP 开发人员,我对 PHP 一无所知。我是有问题的 WCF 服务的开发人员,我正在尝试支持正在尝试使用此服务的员工中的 PHP 开发人员。

他没有 Stackoverflow 登录名,正忙着在 WCF 上发脾气,因为他在没有亵渎的情况下输入任何内容;-)

无论如何,该服务使用以下安全配置:

这意味着消息是通过线路加密的,我相信这需要一个已安装在网络服务器上的证书,并且在从 .NET 使用服务时完全没有任何问题。

我们查看了提琴手通信并怀疑 RequestSecurityTokenResponse 是重要的。我怀疑客户端请求安全令牌的握手,这是使用 GUID 作为参考生成的,该值用于加密请求,并且 GUID 作为参考发送。

不过,这都是猜测,到目前为止,我们还无法让请求看起来完全一样。

任何指向正确方向的指针都将不胜感激。

到目前为止,我们正在尝试使用 WSE-PHP,这可以通过 google 找到。

编辑:

我们已经能够与 Fiddler 确认我们的想法,工作的客户似乎确实在握手,总共有三个请求(和响应)似乎只交换安全信息,他们正在调用以下操作:

在最后一次调用之后,会发出一个请求,其中一个动作似乎表明调用了实际的 web 服务方法:

这似乎与 SAML(我爱你 google)有关,所以我将其添加为标签。

0 投票
2 回答
693 浏览

federated-identity - 如何为 Saml2SecurityTokenHandler 使用基于文件的配置?

使用 Saml2SecurityTokenHandler 验证来自内部提供商或 ACS 的 SAML2 不记名令牌。能够以编程方式配置处理程序以进行验证,但它似乎不想从我的配置文件中的 microsoft.IdentityModel 部分中获取配置。构造 SecurityTokenHandlerCollectionManager 似乎也没有命名配置部分的概念,所以我似乎无法使用 mySaml2SecurityTokenHandler .Configuration - mySecurityTokenHandlerCollectionManager["NAME"].Configuration。

有没有一个很好的例子可以在某处进行设置?

0 投票
1 回答
325 浏览

php - 如何将我的 saml 服务提供商配置为客户端登录页面

在 SAML SSO 中包含 3 个阶段 IDP(身份提供者)- SP(服务提供者)- 客户端服务器。我已经按照 simplesamlphp.org 安装步骤在我的 2 个站点中完成了 IDP 和 SP 的实施。它的沟通良好且工作正常。现在我需要实现客户端服务器站点。我没有得到任何线索。我不知道我在哪里生成访问代码或登录表单。请帮助解决这个问题。

0 投票
1 回答
3081 浏览

azure - Azure ACS 是否支持像 Salesforce 这样的 saml 2.0 IdP?

我没有安装访问控制服务 (ACS),但我在一些在线视频演示中看到 Salesforce 不在可用的预安装身份提供商列表中。Salesforce 可以配置为 IdP(使用标准 SAML 2.0)。我可以设置 ACS 以便我可以将 Salesforce 用作身份提供者吗?谢谢

0 投票
1 回答
1395 浏览

asp.net-mvc-3 - 什么是 Shibboleth 服务提供商,我是否可以为 Windows Azure MVC3 Web 角色安装它?

原谅我,我是一个 Shibboleth / SAML 2 菜鸟。希望这些都是直截了当的问题。

最近发帖询问我们是否可以将 Shib/SAML 2 与 Azure ACS 集成。答案让我相信我们不能使用 ACS,而是使用较低级别的 WIF + SAML2 Extensions CTP 库来实现一些东西。

在一个相关的问题上,我打电话给我们的一个附属机构,询问他们是否可以使用他们的 InCommon Federation 成员身份将我们的应用程序添加为服务提供商。他们问我是否要在托管我们的 MVC3 Web 角色的 Azure 机器上安装 Shibboleth 服务提供程序。

在他们提到这一点之前,我不知道有Shibboleth Service Provider 安装程序。根据我目前所读到的关于 SAML2 的所有内容,我的印象是,我们的 mvc3 Web 角色服务提供者。

那么,什么是 Shibboleth 服务提供者?它有什么作用?在我们的 Azure 实例上安装它会增加什么价值?我是否必须拥有它才能针对 Shibboleth 进行 SSO?或者我们可以只做纯 saml2 吗?

我的偏好是不安装它,因为它必须安装在每个角色实例上,这使得部署需要更长的时间。

0 投票
0 回答
629 浏览

asp.net-mvc-3 - 这就是 SAML2 的 WIF 扩展应该如何工作的吗?

几天前我下载了SAML2 的 WIF 扩展并一直在试验它们。下载中的示例使用 WebForms 应用程序,我试图弄清楚如何在 MVC3 中使用它们。

我目前能够对下载随附的示例身份提供程序进行身份验证,使用以下方法:

我在“sign-on/saml2/success”路由/URL 处有一个操作方法,当应用程序流到达它时,它Thread.CurrentPrincipal.Identity确实是IClaimsIdentity. 虽然Identity.IsAuthenticated等于 true,但Identity.Name是一个空字符串。(这在我们的应用程序中会出现问题,到目前为止,它使用了 FormsAuthentication,并依赖于Identity.Name解析到数据库中的用户帐户。)

我还看到此时有 4 个新 cookie:

  1. 联邦身份证
  2. 联邦认证
  3. FedAuth1
  4. [第四个 cookie 名称是 GUID,每个 SSO 都会更改]

在这一点上,我倾向于删除这 4 个 cookie 并使用声明NameIdentifier在我们的应用程序中创建一个新帐户(除非已经存在),然后使用 FormsAuthentication 为用户编写一个 .ASPXAUTH cookie。

我们将集成的第一个附属 IdP 使用 Shibboleth,但他们尚未实现 SingleLogOut。所以我的假设是,当我们开始测试这个集成时,以下内容不会有任何影响:

因此,手动删除 4 个 cookie 是我们能够Identity.IsAuthenticated返回错误值的唯一方法。

我是否以不正确的方式处理这个问题?在 IClaimsIdentity 被使用并转移到 FormsAuthentication 之后,是否有任何影响,我没有考虑?

0 投票
0 回答
2033 浏览

iis-7 - 如何让 WIF SAML2 Extensions 的 Saml2AuthenticationModule 在 Windows Azure 计算模拟器中工作?

在 IIS Express 中,使用 Saml2AuthenticationModule(来自SAML2 协议的 WIF 扩展)会产生以下应用程序流程:

  1. 用户转到调用Saml2AuthenticationModule.Current.SignIn(args) 的服务提供者 URL;
  2. 该模块将请求路由到身份提供者。
  3. 根据 SP 的 AssertionConsumerService 元数据,IdP 将 SSO 响应发送回 SP。在我目前的测试中,这个 URL 是“{rootdomain}/ ServiceProvider/saml/post/ac”。据我所知,这个 URL 是不可配置的。
  4. 模块截获此响应,配置 IClaimsIdentity,然后将流重定向回 SP 应用程序(在步骤 1 中传递的参数)。

当针对 Windows Azure 模拟器而不是 IIS Express 时,我将 web.config 更改为指向不同的 SP 元数据文件,并使用适合模拟器 URL 的不同 AssertionConsumerService:

在 azure 计算模拟器中进行调试时,流程会在步骤 #3 之后停止。当它到达第 4 步时,我最终会查看此 URL 的 404 页面:

这里发生了什么?模块不应该拦截这个 URL 并处理 SAML 响应吗?为什么这在 IIS Express 中有效,但在 azure 计算模拟器中无效?

这是 SAML 内容的 web.config:

...

...

saml2-azure 中的 entityID 是https://www.mydomain.com/saml2/development/azure,具有上述 AssertionConsumerService URL,并且在测试中的 SP 和 IdP 中。

0 投票
3 回答
4060 浏览

authentication - 使用外部身份验证提供程序的 ADFS 单点登录

我们正在建立一个 ADFS (2.0),它将负责对多个面向客户的系统的用户进行身份验证。身份验证机制外包给外部合作伙伴,该合作伙伴提供对多个身份验证提供程序的访问。

我们最近遇到了以下情况:

  1. 用户尝试访问面向客户的系统 A 并被重定向到 ADFS 进行身份验证。
  2. ADFS 将用户重定向到身份验证合作伙伴,在那里他成功进行身份验证。
  3. 用户将使用他的身份验证令牌发送回 ADFS。
  4. ADFS 将用户发送回系统 A。他现在与系统 A 建立了会话。
  5. 用户尝试访问尚未经过身份验证的系统 B,并被发送到 ADFS。

这就是 ADFS 偏离我们预期行为的地方。ADFS 不会识别用户并使用有效的身份验证令牌将他透明地发送回系统 B,而是将他发送给我们的身份验证合作伙伴以进行重新身份验证。

这完全破坏了我们希望为使用系统 A 和 B 的客户提供的 SSO 功能,但我们还没有找到一种方法让 ADFS 建立用户会话并在访问第二个系统期间重新使用它。

有没有人解决过这个问题?

ADFS 是否只能在完全负责身份验证时才提供单点登录?

0 投票
0 回答
6720 浏览

ajax - 从 Javascript 调用 SAML IdP

我再次需要社区的明智建议!!!

我必须在我的 SSO 系统中集成几个 Web 应用程序。IdP 是 Active Directory 联合服务 (ADFS2),SP 是 Weblogic 托管服务器。我在 Web SSO 配置文件中为 SP 启动的用例使用 HTTP-POST 绑定。

这个设置是有效的,甚至我已经为 WLS 实现了 SLO,太棒了!但是,总有一个但是……我有一个应用程序可以供未经身份验证的用户访问,来宾用户。当用户通过身份验证时,他/她将看到不同的信息。

您认为实现这一点的最佳方法是什么?

我正在尝试通过XMLHttpRequest对 IdP 执行 JavaScript 调用,但它没有像我预期的那样工作......我的想法不是自己构建 SAMLRequest。也就是说,我不是直接调用 IdP,而是请求我的应用程序的安全资源。通过这种方式,Weblogic 就是向 IdP 发出请求(302 重定向)的方式。基本上我的想法是下一个:

  1. 在我的 web.xml 中声明一个安全约束:

  2. 调用安全资源(感谢 w3schools!):

  3. 安全资源的实现只是一个重定向到原始资源的servlet

    /li>

如果我们看一下请求流,它或多或少会起到作用:

  1. http://spHost/sample/helloXmlHttpRequest.jsp
  2. http://spHost/sample/secure/login?action=sample/hello.jsp
  3. HTTP/1.1 302 暂时移动 --> https://idpHost/adfs/ls/?SAMLRequest= ...

但最后我在xmlhttp.send()中得到一个错误组件返回失败代码:0x80004005 (NS_ERROR_FAILURE)

此外,我正在尝试做一些讨厌的技巧,比如获取iframe、元素的内容,或者只是在脚本标签中调用安全资源:

最后一个“解决方案”的问题是我无法获取 HTML 代码。

有任何想法吗?也许 ADFS2 提供任何 REST 服务或类似的东西......

提前致谢,

路易斯