azure - 将存储在 DB 中的用户配置文件链接到 Azure Active Directory 帐户
问题描述
我们使用 Azure Active Directory(OpenId 和 OAuth2)来满足授权和身份验证需求。我们还希望将用户的个人资料保存在我们的一个微服务中,让我们将此服务命名为“用户首选项”。该服务将存储仅我们的一种产品所需的许多特定字段,这就是我们不想将它们存储在 Active Directory 中的原因(自定义字段)。
有了所有这些,我们正在寻找可用于将用户配置文件连接到 Active Directory 帐户的最佳 Azure AD 字段。
有几个候选人:
- UPN - 在某些情况下 JWT 不包含它
- ObjectId - 始终可用,但在多租户结构中不可读且唯一
- 唯一名称 - 应仅用于在 UI 上显示(由 Azure 推荐)
您能否为我们的案例推荐最佳领域?
解决方案
编译我的评论作为答案:
对象 id 或名称标识符(子声明)是您可以选择的唯一不可变字段。使用 UPN 很危险,因为它可以更改。
对象 ID 在目录中是唯一的,但如果您支持多个租户,您也应该存储租户 ID (tid)。
UPN 可以在管理员更改时更改。
而且,如果用户作为访客被邀请到其他 AAD 租户,他们将有每个目录的对象 ID,它不会相同。
推荐阅读
- node.js - 由于尚未安装节点而出现错误
- android - Flutter 中的同步(高性能)音频播放是否可能/现实?
- c++ - ProgramFiles、ProgramW6432Dir、ProgramFilesDir (x86)、CommonProgramFiles 环境变量的数据来源是什么?
- reactjs - 在 React/Next Js 中检查表单输入值的更好方法
- apache-kafka - Spring Kafka 密钥序列化程序不适用于对象
- node.js - 使用 NodeJS React App、IIS、Namecheap DNS 在 Win 10 上托管问题
- python - numpy - 为什么 Z[(0,2)] 可以在某些情况下查看并在其他情况下复制?
- java - 如何高效压缩三色图片
- python - 使用curve_fit进行多元高斯拟合的问题
- python - 如何拆分具有多个定界符的字符串,但每个定界符仅一次?Python