OpenID Connect 用户映射

OpenID Connect User Mapping

目前,我的组织使用许多 Web apps/mobile apps/APIs,其中一些针对内部 IdP 进行身份验证,另一些则使用第三方专有系统(我们没有控制)。

我们被要求为这些 Web 应用程序实施 SSO,因此我一直在阅读 OpenID Connect。我相信这将是比 SAML 更好的解决方案,因为 (a) 最终用户并不总是企业用户,并且 (b) SAML 不是为移动应用程序设计的。

我相信我对流程的理解相当好,但有一个症结所在。为了允许用户使用外部 IdP 进行身份验证,我们需要将用户映射回我们的内部 ID。例如,用户使用 OIDC/Google 进行身份验证,导致我们收到用户唯一的 Google 标识符(如果我们进一步查询,还会收到电子邮件等),但这对我们没有用处,直到我们可以映射 Google 标识符返回到我们的内部客户 ID。

这个映射是否超出了 OIDC 的范围?如果是这样,是否有执行此操作的最佳实践方法?我相信我们并不孤单...

谢谢, 约翰

这个映射是否超出了 OIDC 的范围?

简答,是的!如果您的后端需要 comparison/validation 内部身份详细信息,则必须在 OpenID Connect (OIDC) 协议范围之外完成。 OIDC简单定义了获取token(ID和access token)的过程,这些token是认证授权所需要的。

是否有执行此操作的最佳实践方法?

一种选择是使用带外目录同步。例如,Google 提供商 Google Cloud Directory Sync (GCDS), which allows you to synchronize identity details to LDAP or MS Active directory. Other alternative is to use SCIM protocol to communicate and provision users dynamically. For example Google provide that support as well.

或者,您可以在收到令牌时使用即时供应。此支持将取决于您的身份提供者实施。例如,WSO2 身份服务器同时支持 JIT provisioning 和 SCIM。