Разве Azure oid от обратного вызова auth не уникален? Azure активный каталог - PullRequest
0 голосов
/ 11 января 2020

Auth with 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 для этого конкретного c пользователя?

1 Ответ

1 голос
/ 11 января 2020

Возможна одна из нескольких вещей:

  1. Пользователь вошел через другого AAD-клиента (у пользователя разные ID объекта в каждом из них)
  2. Пользователь был удален и воссоздан (получает новый идентификатор объекта)

Идентификатор объекта для пользователя является неизменным и не может быть изменен.

...