azure - 来自身份验证回调的 Azure oid 不是唯一的吗?Azure 活动目录
问题描述
使用 Azure 进行身份验证:
const authConfig = {
clientID,
clientSecret,
callbackURL: `${baseUrl}/api/login/callback`,
tenant: "xxx.onmicrosoft.com",
useCommonEndpoint: false
};
const callback = async (accessToken, _: string, params, profile, done) => {
const waadProfile: IAzureUser = jwt.decode(
params.id_token,
process.env.AZURE_CLIENT_SECRET
);
// Check if user exists in local db
const user = await mongoose
.model("user")
.findOne({ azureOid: waadProfile.oid })
.exec();
// Create user in local db if not found..
....
我认为它oid
是固定的,不会为用户改变。
现在我可以在我的应用程序中看到一个重复的用户已经创建,因为oid
不同。
为什么oid
突然改变了用户?oid
它只是随机的,还是 IT 部门为这个特定用户做了一些新的事情?
解决方案
几件事之一是可能的:
- 用户通过不同的 AAD 租户登录(用户在每个租户中具有不同的对象 ID)
- 用户被删除并重新创建(获取新的对象 ID)
用户的对象 ID 是不可变的,不能更改。
推荐阅读
- c# - 如何在加载时使用我的 StoredProcedure 填充 datagridView
- android - 如何修改 startService() 的源代码以识别它是否是从后台调用的?
- python - 如何从字符串中获取数据类型对象
- scala - 如何从 Scala 中的 ConsumerRecord[String, String] 中提取键和值
- .net - “AADSTS65001:用户或管理员未同意使用应用程序”代表用户获取令牌时发生
- reactjs - 在 svg 图像标签中使用 CSS 过滤器?
- android - 主题中的Android弹出菜单图标颜色
- julia - GR_jll 一直无法在 Windows 上使用 Julia 1.6.0 RC1 进行预编译
- javascript - 看板视图的条件隐藏/显示小部件.Odoo 14
- c++ - c++ 丢弃朋友关键字会发生什么?