使用 salesforce.com 进行 SAML 身份验证
在我们的网络应用程序中,我需要身份提供商 (IdP) 使用 salesforce.com 对用户进行身份验证。
我已在 salesforce.com 上完成单点登录设置。
在这些设置之后,Salesforce 提供一个元数据文件。
请告诉我:
- 我需要在 salesforce.com 上进行其他设置吗?
- 接下来在我的 java 代码中做什么来进行身份验证 用户?
In our web application I want Identity provider (IdP) which authenticate users using salesforce.com.
I have done with Single Sign-On Settings at salesforce.com.
After these setting salesforce provide a metadata file.
Please tell me:
- Is there any other setting I need to make at salesforce.com?
- What to do next in my java code to authenticate
user?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您将 Salesforce.com 作为 SAML 服务提供商,则您需要将 SAML 断言从您的 IdP 发送到 Salesforce.com 以对用户进行身份验证。这些基本上是经过签名的 XML blob,在 HTTP 重定向或 HTTP POST 中传递以对用户进行身份验证。
从 Salesforce.com 配置方面来看,这非常简单。以下是使用 OpenSSO 解决方案进行配置所需的示例:https://indirat.wordpress .com/salesforce/
您在该配置中输入的内容很大程度上取决于您的 IdP 可以执行的操作。例如,什么版本的 SAML、什么&其中用户标识符位于 SAML 断言中,以及将 IdP 使用的密钥与数字签名断言相匹配的公共验证证书。
如何在“你的java代码”中处理这个问题是一个有很多答案的大问题。您应该使用经过验证的 SAML 解决方案作为您的 IdP,而不是尝试自己实施 SAML 规范。有几个开源库,例如 OpenSAML 可以在 Java 上下文中很好地工作,但需要付出巨大的努力来整合。商业解决方案,例如 SSO 和 SSO 提供的解决方案。如果您有预算,联合解决方案供应商(例如 Ping Identity)会让事情变得更加容易。
If you have Salesforce.com acting as a SAML Service Provider, then you will need to send SAML Assertions from your IdP to Salesforce.com to authenticate users. These are basically signed XML blobs that get passed around in an HTTP Redirect or HTTP POST to authenticate users.
From the Salesforce.com configuration side it's quite simple. Here is a sample of what is required on that side to configure with the OpenSSO solution: https://indirat.wordpress.com/salesforce/
What you enter in that configuration, largely depends on what your IdP can do. For example, what version of SAML, what & where the user identifier is in the SAML assertion, and the public verification certificate that matches the key used by your IdP to digital sign assertions.
How you handle this in "your java code" is a huge question with many answers. You should be using a proven SAML solution as your IdP, rather than trying to implement the SAML specification yourself. There are several open source libraries such as OpenSAML that work nicely in a Java context, but will require significant effort to integrate. Commercial solutions such as those offered by SSO & federation solution vendors (like Ping Identity) make things considerably easier if you have a budget.