Passport-ActiveDirectory авторизует маршрут со второй группой - PullRequest
0 голосов
/ 04 мая 2020

Как авторизовать маршрут на основе другой группы? Например ..

Первоначальный вход в систему:

passport.use(
  new ActiveDirectoryStrategy(
    {
      integrated: false,
      ldap: {
        url: "ldap://ldapserver",
        baseDN: "DC=domain,DC=name",
        username: "readonlyuser",
        password: "readonlyuserpassword",
      },
    },
    function (profile, ad, done) {
      ad.isUserMemberOf(profile._json.dn, "Group1", function (
        err,
        isMember
      ) {
        if (err) return done(err);
        return done(null, profile);
      });
    }
  )
);

var opts = { failWithError: true };
router.post(
  "/login",
  passport.authenticate("ActiveDirectory", opts),
  function (req, res) {
    res.json(req.user);
  },
  function (err) {
    res.status(401).send("Not Authenticated");
  }
);

, но затем у меня есть вторая группа маршрутизации, которую я хотел бы авторизовать через другую группу:

passport.use("Labor",
      new ActiveDirectoryStrategy(
        {
          integrated: false,
          ldap: {
            url: "ldap://ldapserver",
            baseDN: "DC=domain,DC=name",
            username: "readonlyuser",
            password: "readonlyuserpassword",
          },
        },
        function (profile, ad, done) {
          ad.isUserMemberOf(profile._json.dn, "Group2", function (
            err,
            isMember
          ) {
            if (err) return done(err);
            return done(null, profile);
          });
        }
      )
    );

var opts = { failWithError: true };

router.get(
  "/",
  passport.authenticate("Labor", opts),
  function (req, res) {
    res.json(req.user);
  },
  function (err) {
    res.status(401).send("Not Authenticated");
  }
);

Пользователь аутентифицируется нормально на первом маршруте. Но по второму маршруту я получаю неавторизованное сообщение из паспорта, даже если пользователь находится в обеих группах.

Мысли?

...