由 AI 翻译,尚未经过社区审校。 阅读英文版

博客 · 2023年9月27日 · Steve Simpson · 身份

用 Salesforce SAML JIT 自动保持用户数据更新

引言

Salesforce 安全身份提供了一项强大的功能:SAML JIT(Just In Time,即时)单点登录,提供了一种简单直接的方式来自动创建和更新用户数据。对于通过身份提供商使用单点登录的组织来说,SAML JIT 成为在身份提供商与 Salesforce 或其他服务提供商之间同步用户数据的宝贵工具。这篇博客文章探讨使用 SAML JIT 自动更新用户数据的机制和方法。

理解 SAML JIT 单点登录

SAML JIT 单点登录允许在用户每次登录时自动传递用户数据,确保他们的数据始终保持更新。例如,设想一个名叫 Homer 的用户,他在两个 Salesforce 组织中有不同的档案。如果 Homer 在身份提供商的档案中更新了他的电话号码,SAML JIT 可以确保这个变更在登录过程中反映到服务提供商的档案中,保持跨平台的数据一致。

配置 SAML JIT

图示:SAML 即时预配。身份提供商把用户的电话号码作为 SAML 断言中的一个属性发送过来,Salesforce 据此创建或更新用户

设置自定义属性:

登录身份提供商(IDP),进入当前用户的记录。在我们的例子中,我们更新 Homer 的电话号码。

进入 IDP 上服务提供商的配置,查看连接设置。

滚动到自定义属性,添加需要的属性。例如,添加一个 user.phone 属性,并设置属性替换,让每次登录时 SAML 载荷中都包含用户的电话号码。

更新服务提供商的用户数据:

进入服务提供商组织,访问用户记录。

找到需要同步数据的用户,对他的档案进行必要的更新。例如,更新 Homer 的电话号码。

调整单点登录设置:

进入单点登录设置,启用用户预配。

截图:Salesforce 单点登录设置,已开启即时用户预配,并使用一个自定义的 SAML JIT 处理程序类

创建并指定一个重写标准 JIT 处理程序的自定义类,并确保由一个拥有适当权限的用户来执行它。

实现 SAML JIT 处理程序

在集成开发环境(IDE)中,创建一个新类,例如“STA_SamlJitHandler”。

重写两个方法:“createUser”和“updateUser”。

“createUser”:建立一条新的用户记录,并为新用户选择一个简档。

Apex 代码:一个自定义的 SAML JIT 处理程序,其 createUser 方法根据 SAML 属性(用户名、联合 ID、电话、电子邮件)构建一个新用户,并设置简档

“updateUser”:根据收到的属性获取并更新用户记录。

Apex 代码:updateUser 方法,加载用户,并根据 SAML 属性更新电话号码

登录并验证用户数据同步

截图:SAML-tracer 浏览器扩展显示 SAML 响应,其中包含 User.Phone 属性

当用户试图登录服务提供商时,会被重定向到 IDP 进行认证。登录成功后,用户的数据会自动更新和同步。为了验证,你可以使用 SAML Tracer 之类的工具检查 SAML 载荷,确保用户数据被准确地传输和更新。

结论

只需极少的编码和配置,Salesforce SAML JIT 单点登录就提供了一种稳健的机制,让用户数据在身份提供商和服务提供商之间保持同步。虽然更新只在用户登录时才发生,但这项功能提供了一种省心的替代方案,不必为用户数据同步去设置和管理批处理流程。对于希望实时更新数据、又不需要夜间批处理的用户和管理员来说,SAML JIT 是一个值得考虑的高效方案。

想获得更多见解和技术技巧,敬请关注,别忘了订阅!

敬请关注

满怀信心地开启你的 Salesforce 身份之旅吧!想获得更多见解和技巧,请继续关注 www.SteveTechArc.com 和 YouTube 频道 @SteveTechArc (opens in a new tab)。订阅,加深你对 Salesforce 身份的理解。

与架构师同行以及正走在架构师之路上的人分享集成知识,一起改变世界!

转录借助了 AI

STA 3.7