首页 > 解决方案 > 来自身份验证回调的 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 部门为这个特定用户做了一些新的事情?

标签: azureazure-active-directory

解决方案


几件事之一是可能的:

  1. 用户通过不同的 AAD 租户登录(用户在每个租户中具有不同的对象 ID)
  2. 用户被删除并重新创建(获取新的对象 ID)

用户的对象 ID 是不可变的,不能更改。


推荐阅读