将存储在数据库中的用户配置文件链接到Azure Active Directory帐户

时间:2018-12-21 07:58:48

标签: azure active-directory azure-active-directory microservices

我们将Azure Active Directory(OpenId和OAuth2)用于授权和身份验证需求。 我们还希望将用户的个人资料保存在我们的微服务之一中,我们将该服务命名为“用户首选项”。 该服务将存储许多仅一种产品所需的特定字段,这就是为什么我们不想将它们存储在Active Directory(自定义字段)中的原因。

具有所有这些,我们正在寻找可用于将用户的配置文件连接到Active Directory帐户的最佳Azure AD字段。

有多个候选人:

  • UPN-在某些情况下,JWT不包含它
  • ObjectId-始终可用,但不可读且在多租户结构中是唯一的
  • 唯一名称-仅用于在UI上显示它(Azure推荐)

请为我们的案例推荐最佳领域吗?

1 个答案:

答案 0 :(得分:1)

将我的评论编译为答案:

对象ID或名称标识符(子声明)是唯一可以选择的不可变字段。使用UPN是危险的,因为它可以更改。

对象ID在目录中是唯一的,但是如果您支持多个租户,则还应该存储租户ID(tid)。

UPN可以在管理员更改时更改。

而且,如果邀请一个用户作为访客来邀请其他AAD租户,则每个目录都有一个对象ID,将不会相同。