繁体   English   中英

如何管理同步本地 SSO 数据库和 Azure AD B2C 的场景?

[英]How to mange scenario of syncing on-prem SSO database and Azure AD B2C?

我有以下场景:

  • 存在管理用户名和密码(加盐和散列)的本地 SQL SSO 数据库。
  • 本地帐户(用户名和密码)在云中的 Azure AD B2C。

我想让两个系统保持同步。 因此,当用户请求从本地 SSO 数据库重置密码时,它将对密码进行加盐和哈希处理,然后将该密码传输到 Azure AD B2C。 同样,如果用户请求从 Azure AD B2C 重置密码,如果可能,它也会将该密码加盐和散列回本地数据库; 我可以想象这种情况根本不可能,在这种情况下,如果存储密码的哈希值就可以了,我们可以为“authentication_method”分配一个辅助列,这将允许其他客户端应用程序仍然进行身份验证。 如果新用户在任一方注册,则在两个系统中仅为本地帐户创建适当的记录。

我该如何实施这样的流程? 从 AD B2C 方面看,什么样的文档会有所帮助? 是否有其他同步工具可用于此场景?

我可以想象像 Apache Kafka 或一些脚本来来回同步数据,但我不确定 B2C 方面如何获取密码的具体细节。 我确信我已经看过一些关于如何为本地到云的第一个场景更新用户密码的文档,但缺乏关于如何从云到本地的信息。

这样做的目的是支持较新的应用程序以利用 B2C,但仍允许较旧的应用程序运行而无需将它们更新为 B2C。

不支持 Azure AD B2C 的密码 HashSync。 您的场景中有几个活动部分需要解决。

  1. Azure AD B2C 到 SSO 数据库:您可以使用 Azure B2C 自定义策略从其自定义策略调用的 REST-API,它充当代理以进行身份​​验证(用户名、密码)。 由于您在 Azure AD B2C 中使用本地帐户,只要您的后端可以使用用户名/密码对用户进行身份验证,这应该可以工作。 不需要同步,但在 SSO 数据库消失之前,您需要继续使用 REST-API。 本质上,您希望使用单一的事实来源。 此方法类似于此处描述的模式。

  2. 在 Azure AD B2C 端,可以使用Microsoft Graph API更新本地用户帐户的密码。 这打开了根据需要将密码从本地系统更新到 Azure AD B2C 的大门。 当然,Azure AD B2C 会对密码本身进行哈希处理,但您无权访问它。

无论哪种方式,您都需要评估利弊。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM