【问题标题】:Link user's profile stored in DB to Azure Active Directory account将存储在 DB 中的用户配置文件链接到 Azure Active Directory 帐户
【发布时间】:2018-12-22 04:42:48
【问题描述】:

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

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

有几个候选人:

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

您能否为我们的案例推荐最佳领域?

【问题讨论】:

  • 对象 id 或名称标识符(子声明)是您可以选择的唯一不可变字段。使用 UPN 很危险,因为它可以更改。
  • @juunas 它在所有相互连接的活动目录中是唯一的吗?
  • @juunas,如果您可以提供一个链接,其中包含可以更改 UPN 的一些示例,这将非常有用
  • 对象 id 在目录中是唯一的,但如果您支持多个租户,您也应该存储租户 id (tid)。
  • 另外,如果用户作为访客被邀请到其他 AAD 租户,他们每个目录都会有一个对象 ID,它不会是相同的。

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


【解决方案1】:

编译我的 cmets 作为答案:

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

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

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

而且,如果用户作为访客被邀请到其他 AAD 租户,他们将有每个目录的对象 ID,它不会相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2020-09-20
    • 2015-04-26
    相关资源
    最近更新 更多