问题标签 [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 回答
5271 浏览

java - 使用 JAVA 和 SAML 2.0 的 IdP 发起的 Web SSO 配置文件

在我们的 Web 应用程序中,我们充当身份提供者 (IdP),通过带有用户名/密码的登录屏幕对用户进行身份验证。在成功验证后,我们希望显示最终用户可以单击以访问合作伙伴(服务提供商)网站的超链接列表。我们计划使用 SAML 2.0 和 HTTP POST 绑定来完成这些

该消息将作为名为 SAMLResponse 的隐藏表单控件放置在 HTML FORM 中,如下所示

...

因为我是在 JAVA JSP 链接中将 SAMLResponse 实现为隐藏元素的新手,所以我有以下查询 - 如何在 JAVA 中生成 SAMLResponse 对象,然后将其设为隐藏字段 - 请指出示例 - 如何在 JAVA 中对 SAMLResponse 进行数字签名- 如何在 JAVA 中加密 SAMLResponse

Java世界中是否有等效的方法?是否有针对常见 servlet 容器或应用程序服务器的开箱即用解决方案和/或教程?

0 投票
1 回答
7308 浏览

.net - 使用 WSSecurityTokenSerializer 在 .Net 中读取验证 SAML 断言时出现问题

我有一个 SAML 断言,我希望使用 .Net 在 .Net 中进行身份验证WSSecurityTokenSerializer

我有钥匙链和 SAML XML,尽管有一些问题

首先,我从 HTTPS POST 获得 SAML 断言:

然后我得到我的 IdP 提供的密钥:

最后我在这里抛出一个错误:

调用时ReadToken出现以下错误:

无法从具有 BinarySecretSecurityToken 的“urn:oasis:names:tc:SAML:2.0:protocol”命名空间的“Response”元素中读取令牌,并带有“”ValueType。如果预计此元素有效,请确保将安全性配置为使用指定名称、命名空间和值类型的令牌。

我的 SAML XML 开头为:

很明显,我Response在命名空间中有一个元素urn:oasis:names:tc:SAML:2.0:protocol

知道这里有什么问题/遗漏吗?

0 投票
1 回答
9126 浏览

.net - 如何根据 X509Certificate2Collection 链验证 X509Certificate2

我正在编写一个 SAML 2.0 响应解析器来处理 ASP.Net 中的 POST 身份验证(在 C# 和 MVC 中,但这不太相关)。

所以我有一个.p7b文件来验证,它可以读入X509Certificate2Collection一个示例断言 - 一个 base 64 编码的 SAML 响应。

理想情况下,我想使用内置的WSSecurityTokenSerializer,但是失败了,所以我正在寻找一种可行的方法。

我正在直接阅读 XML:

这很有效,但它所做的只是检查X509Certificate2SAML 响应中的签名和公钥是否匹配。它不会以任何方式验证它来自谁,我需要在接受 SAML 身份验证之前这样做。

似乎有两种方法可以检查在 SAML 响应中找到的证书 - 我可以这样做,certificate.Verify()或者我可以使用签名进行检查signedXml.CheckSignature(certificate, false)

然而,两者都返回假。

我认为这是因为他们正在根据机器商店或可能在线进行检查(我不知道如何检查)。我想对照X509Certificate2Collection从文件中检索到的内容来检查它们.p7b——机器上注册的证书应该被忽略,只.p7b检查证书。

似乎没有任何方法可以将 传递X509Certificate2CollectionVerifyorCheckSignature方法。

这是对 SAML 响应进行的正确检查吗?

有什么方法可以.p7b按照我想要的方式使用证书吗?

0 投票
1 回答
3138 浏览

vb.net - 解码 SAML 2.0 64Base 字符串

我一直在开发 SAML 2.0 SSO。我在解码 64Base 字符串以将其转换为 xml 然后稍后读取内容时遇到问题。

以下是我一直在使用的代码:

下面是base64字符串加密的saml请求:

我遇到了一个异常:“解码时发现无效数据。” 在使用上面的代码。

在使用SAML 2.0 调试器测试这个加密的 saml 请求时,它应该读作:

我在这里先向您的帮助表示感谢!

0 投票
0 回答
8164 浏览

weblogic-10.x - 使用 Weblogic 10.3.4 实施 SAML2 SP 启动的用例。和 ADFS

我正在尝试实现 SP 发起的用例。为此,我拥有的是:

  1. 身份提供者:联合服务(Active Directory)。对我来说是一个“黑匣子”。我想为这项服务提供的唯一东西是我的应用程序的名称、url 和主页。我还必须提供一个带有我的服务提供者元数据的 XML。

  2. 服务提供者:Weblogic Server (10.3.4)。在这里,我配置了一个安全领域,创建了一个 Authentication Provider 和一个 Credential Mapper Provider。我还配置了所选服务器 (AdminServer) 以使用服务提供者角色。

假设一切都会正常运行,但我与巴里处于同一点(或者至少我认为......)。当我请求“注册资源”(我在联合服务系统中注册的应用程序之一)时,IDP 没有使用登录表单回答我。

然而,我的 Shibboleth 设置正在运行......

有任何想法吗?

我一直在关注这些文章:http ://biemond.blogspot.com/2009/09/sso-with-weblogic-1031-and-saml2.html,http : //blogbypuneeth.wordpress.com/2011/01/15 /steps-to-configure-saml-2-on-weblogic-server-10-3-0/它们不是同一个用例,但它们帮助了......

提前致谢,

路易斯

顺便说一下,这些是我所做的操作:

  1. 域:我的域
  2. 设置 SAML2 调试选项:EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dweblogic.debug.DebugSecuritySAMLAtn=true -Dweblogic.debug.DebugSecuritySAMLLib=true -Dweblogic.debug.DebugSecuritySAML2Service=true -Dweblogic.debug.DebugSecuritySAML2CredMap=true -Dweblogic.debug。 DebugSecuritySAML2Atn=true"
  3. 配置 SSL Weblogic 服务器 (AdminServer)。默认端口 7002
  4. 部署应用程序:myHost_domain_com_sample_weblogic_app_2
  5. 注意:在域 SSO 系统中,此应用的注册主页为 myHost.domain.com:7002/myHost_domain_com_sample_weblogic_app_2/
  6. 测试 myHost.domain.com:7002/myHost_domain_com_sample_weblogic_app_2/
  7. 测试 .../myHost_domain_com_sample_weblogic_app_2/default.jsp
  8. 配置安全领域:myrealm(默认)
  9. 创建一个新的Authentication Provider:域SAML2 AUTH PROVIDER;saml2identityasserter
  10. 理论上没有必要:重新排序(默认身份验证 JASS 标志是必需的)
  11. 重新开始
  12. 在域 SAML2 AUTH PROVIDER 上创建“新的 Web 单点登录身份提供商合作伙伴”:
  13. 域 SSO 身份提供商合作伙伴
  14. /home/luis/Documents/domain_AUTH/FederationMetadata.xml 我们的身份提供者的文件描述符。我们已经删除了元素(我们必须更深入地了解 OASIS SAML2 SPEC)此时我们应该在管理控制台中收到此消息:合作伙伴创建成功。默认情况下,合作伙伴已被禁用。您将需要手动完成其配置,然后启用它。
  15. 创建一个新的凭据映射提供程序:SAML2_CMP;SAML2CredentialMapper
  16. 重新排序(不是绝对必要的)
  17. 重新开始
  18. SAML2_CMP 提供程序特定:
  19. 颁发者 URI:myHost.domain.com
  20. 名称限定符:myHost.domain.com
  21. Web 服务断言签名密钥别名:DemoIdentity
  22. ... 关键密码短语:DemoIdentityKeyStorePassPhrase
  23. 生成的属性
  24. 重新开始
  25. 创建新的 Web 单点登录提供商合作伙伴:域 SAML2 SERVICE PROVIDER PARTNER
  26. 导入 /home/luis/Documents/domain_AUTH/FederationMetadata.xml 此时我们应该在管理控制台中收到此消息:合作伙伴创建成功。默认情况下,合作伙伴已被禁用。您将需要手动完成其配置,然后启用它。
  27. 配置:启用、描述、生成属性
  28. 为域 SAML2 AUTH PROVIDER 设置设置:
  29. 启用
  30. 重定向 URI:/myHost_domain_com_sample_weblogic_app_2/default.jsp
  31. 配置服务器:AdminServer
  32. SAML2 一般:
  33. 发布站点 URL:localhost:7001/saml2
  34. 实体 ID:myHost.domain.com
  35. SAML2 服务提供者:启用

现在,如果我向重定向 URI 发出请求,没有任何反应,我的意思是,我无需经过身份验证即可访问受保护的资源。

但是,如果我包含 Weblogic 控制台的 URI“/console/index.jsp”,当我请求此资源时,服务提供者会调用身份提供者并要求我进行身份验证(通过登录表单)。

有任何想法吗?

提前致谢,

路易斯

0 投票
3 回答
24285 浏览

java - 使用 SAMLResponse 令牌

基于 SAML sp 的身份验证具有以下简短的工作流程。

  • 用户想要在 sp 访问应用程序。
  • sp 向 idp 发送 SAMLRequest 令牌。
  • idp 使用它并生成 SAMLResponse 令牌。
  • idp 将此 SAMLResponse 令牌发送到 sp 给定的 AC-URL。

我的问题是 sp 如何使用这个 SAMLResponse 令牌。逻辑是什么?如果我能得到一些 JAVA 代码帮助,那将是有益的。

0 投票
2 回答
1666 浏览

logout - SAML 2.0 注销请求

我正在处理来自 STS 方回复方的 LogOutRequest。我可以解析 LogoutRequest,删除 cookie 并生成 LogoutResponse。问题是在哪里发送 LogoutResponse,我没有找到关于回复 url 的信息。有任何想法吗?

0 投票
2 回答
5274 浏览

sharepoint-2010 - SharePoint 2010 和 SAML 2.0

我可以将 SAML 2.0 令牌发送到 SharePoint 2010 进行身份验证吗?我在 MSDN 中找到了连接云中的 office 365 进行身份验证的示例代码,但示例代码使用 SAML 1.1 令牌。SharePoint 是否也适用于 SAML 2.0 令牌?

0 投票
1 回答
3019 浏览

single-sign-on - Umbraco 成员资格与 SAML Web SSO 的集成

我需要将 Umbraco 成员资格与 SAML Web SSO 集成。

我以前从未集成过它,想给点建议:

  • Umbraco 中是否有一些用于 SAML WebSSO 登录的现有模块?

  • 你能推荐一下方法/文章吗?

  • 那能有多难?

在此先感谢,安东。

0 投票
2 回答
10052 浏览

wcf - 如何将 SAML 身份验证集成到 WCF Web 服务应用程序中

我有一个在 IIS7 上构建和测试的 WCF Web 服务应用程序。关于身份验证,我想为访问 Web 服务中操作的消费者实现一个 sql server 托管的用户 ID 和密码身份验证。然而,有人告诉我,我的公司政策规定我将 SAML 实施到我的 Web 服务中。这意味着任何访问我的 Web 服务操作的客户端都需要使用 SAML 2.0 进行身份验证。我不熟悉 SAML,但想知道并开始了解如何在我的网络服务中实现它。我一直听到两个术语——服务提供者和身份提供者,基于网络上的定义,我假设服务提供者是我的网络服务。身份提供者是用户进行身份验证的地方,身份提供者向我的 Web 服务提供断言,然后我让客户端访问这些操作。我理解理论,但不确定如何投入实际实施。访问我的 Web 服务的客户端不是内部的,即它们是外部的(外部网络客户端),所以在这种情况下,身份提供者将是什么,我如何将代码添加到我的 Web 服务以使其成为服务提供者?

我希望你能理解我的困境,任何人都可以解释我需要采取的方法,并且非常感谢任何帮助我完成 Web 服务的示例或教程。