Sitecore-如果用户使用外部身份提供程序登录,如何获取用户ID(Salesforce SSO) [英] Sitecore - How to get User ID if the user was logged in using external identity provider (Salesforce SSO)

查看:21
本文介绍了Sitecore-如果用户使用外部身份提供程序登录,如何获取用户ID(Salesforce SSO)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Sitecore网站上的身份验证有一点问题。基本上,导航栏上有一个按钮,当用户单击该按钮时,它会将同一用户重定向到Salesforce进行登录(实现SSO)。基本上,我将Salesforce用作身份提供者,将Sitecore网站用作服务提供者。现在我有问题了?当用户登录时,我如何获取该用户的ID。 Sitecore User Manager中的用户是否与Salesforce中的用户具有相同的ID,或者我可以只收到一封电子邮件来标识该用户?

附言:如果这是一个非常愚蠢的问题,我很抱歉,但是在制作Sitecore网站和SAML SSO方面,我还是个初学者。提前感谢您

推荐答案

暂时停止Sitecore和Salesforce,您需要介绍一些基础知识并手动单击登录过程,然后才能将其自动化。

您可能正在Salesforce中使用连接的应用程序,其中包括OAuth2配置(消费者密钥,也称为客户端ID;机密;范围列表,告知此应用程序可以代表此SF用户执行哪些操作;允许使用此消费者密钥和机密登录的URL列表)(&q;已连接的应用程序&q;包括:OAuth2配置,也称为客户端ID;机密;范围列表,用于说明允许此应用程序代表此SF用户执行哪些操作;允许使用此消费者密钥和机密登录的URL列表)。等)它甚至可能在页面底部包含有关画布应用程序的内容。

下一步是-谁在登录。核心Salesforce用户或您是否有合作伙伴社区、客户社区(最近已更名为&Quot;数字体验&Quot;)。

打开匿名窗口并转到https://openidconnect.herokuapp.com/

对于登录主机,如果您拥有Production User或test.Salesforce.com(如果您使用沙箱,则保留原样)(您还可以使用品牌URL mycompany--dev.my.Salesforce.com等)。如果您有社区用户,则必须将url更改为社区基础url,如https://dev-mycompany.cs123.force.com/mycommunity

不更改任何其他内容,请单击"下一步"、"下一步"、"下一步"。这将带您了解OAuth2&qot;web server flow&qot;(多种登录方式之一)。您可以在SF屏幕上键入用户名/密码,然后使用&q;授权码&q;返回到该herokuapp。该应用程序有几分钟时间将代码交换为实际最终访问令牌,并耦合其他信息。此向导的最后一步调用OpenId&uxt;userinfo&qot;-返回有关登录的用户的一些信息。如果需要,您可以在那里提取电子邮件(如果您希望SF在此过程中返回额外的字段,这也是可配置的)

关闭浏览器窗口。在SF中检查已连接的应用程序(&Q;)。打开新的匿名窗口,做同样的事情,但这一次放入您的url、消费者密钥和机密(您可能需要首先在SF中编辑应用程序以允许回调到https://openidconnect.herokuapp.com/callback)。

所以现在您应该对整个登录过程有了大致的了解。您的Sitecore应用程序可能会做同样的事情,接收授权码并将其交换为最终令牌。此时,您拥有有效SF会话ID,可以用来调用";userinfo";、运行查询(如果应用程序允许API访问,请检查&qot;作用域&q;)等。

我怀疑Sitecore开发人员都是手工创建的,您可能有像spring.security.oauth2.client这样的Spring东西.我的Java时代已经一去不复返了,但是如果您在手动单击-单击-单击流程图方面做得更好,您应该能够遵循现有代码?

这是一个很大的主题,还有其他方法可以做到这一点(other OAuth flows,发送有关当前用户的信息当您将外部页面作为IFRAME嵌入到SF中时,您需要阅读有关&qot;canvas apps&qot;)的相关内容。但根据你提供的信息这是最好的猜测。您可能也想检查一些见习课程,如https://trailhead.salesforce.com/content/learn/projects/build-a-connected-app-for-api-integration/implement-the-oauth-20-web-server-authentication-flow

https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm

https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/code_sample_auth_oauth.htm(Java但非常手工制作的原始HTTP,可能Spring的安全性更好)

这篇关于Sitecore-如果用户使用外部身份提供程序登录,如何获取用户ID(Salesforce SSO)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆