выход из сеанса Idp с помощью passport-saml - PullRequest
0 голосов
/ 24 мая 2019

Получение 400 неверных запросов при попытке выйти из сеанса idp. Пользователь вышел из сеанса приложения / паспорта, но не из сеанса idp.

Конечные точки выхода из системы и обратного вызова настраиваются, как показано ниже. Конечная точка выхода из системы прикрепляет необходимые атрибуты для выхода из системы пользователя и для создания SAMLRequest.

app.get('/api/logout', (req, res) => {
  const currentUser = getCurrentUser(req);
  const user = {
    nameID: currentUser.nameID,
    nameIDFormat: currentUser.nameIDFormat,
    sessionIndex: currentUser.sessionIndex,
  };
  req.user = user;

  return strategy.logout(req, function(err, uri) {
        res.redirect(uri);
  });
});

app.post('/api/logout/callback', (req, res) => {
  req.logout();
  // res.redirect(uri);
});

Конфигурация настроена так:

const strategy = new SamlStrategy(
  {
    callbackUrl: process.env.CALLBACK_URL,
    entryPoint: process.env.ENTRY_POINT,
    issuer: process.env.ISSUER,
    logoutUrl: process.env.LOGOUT_URL,
    logoutCallbackUrl: process.env.LOGOUT_CALLBACK_URL,
  },
  strategyCallback,
);

Любая помощь в решении проблемы очень ценится.

...