在这种情况下,我的依赖方(RP)不仅希望获取有关用户的信息,还需要将用户映射到RP的内部用户.因此,我想将身份提供商(IdP)的现有用户映射到RP中的用户/组.我如何通过OpenID Connect实现这一点(IdP和RP有信任关系;两者都由我控制)?
有什么其他选择来解决这个问题?
我在这里看到两种方法;一个来自OpenID Connect的观点,另一个来自用户目录处理.
Id令牌声明
OpenID Connect规范定义了standard claims in an id token,并且可以自由地定义我们自己的声明.例如,如果RP不能依赖于子声明来识别和映射最终用户,则可以引入除standard claims之外的自定义声明.
ID Tokens MAY contain other Claims. Any Claims used that are not understood MUST be ignored
例如,您可以定义声明rp_identifierin id标记,该标记为您提供RP用户标识.
这将需要对您的IDP进行一些配置,并在IDP存储中存储所需的标识符.
目录同步
不确定您的用户目录是如何设置的.但是,如果您使用的是外部IDP,则可能需要同步内部和外部用户目录.我不是此域中的专家,但供您参考this文章介绍了Azure Active Directory同步.
虽然用户同步超出了OpenID Connect的范围,但许多在某些时候转向OpenID Connect的人必须将内部用户映射到IDP提供的用户.