Выход из SAML завершается неудачно: эмитент не совпадает (NodeJS + Okta) - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь выйти из SAML с Okta в качестве моего IdP.Я получаю сообщение «Эмитент не соответствует» в журналах Okta:

Я уже настроил один выход:

С загруженным сертификатом, являющимся моим открытым ключом SP.


Код мудрый:

const config = require('../../app/config')
const saml = require('saml2-js')

module.exports = {
  sp: new saml.ServiceProvider({
    entity_id: `${config.HOSTNAME}/saml/assert`,
    private_key: config.SAML_SP_PRIVATE_KEY,
    certificate: config.SAML_SP_PUBLIC_KEY,
    assert_endpoint: `${config.HOSTNAME}/saml/assert`,
    allow_unencrypted_assertion: true,
    sign_get_request: true
  }),

  idp: new saml.IdentityProvider({
    sso_login_url: config.SAML_SSO_LOGIN_URL,
    sso_logout_url: config.SAML_SSO_LOGOUT_URL,
    certificates: config.SAML_SSO_IDP_CERT,
    sign_get_request: true
  })
}

И функция выхода из системы:

if (!req.signedCookies.token) {
  res.status(400).send('Missing token')
  return
}
const tokenData = await jwtVerify(req.signedCookies.token, config.AUTH_SECRET)
const options = {
  name_id: tokenData.name_id,
  session_id: tokenData.session_id,
  sign_get_request: true
}

const createLogoutRequestUrl = util.promisify(sp.create_logout_request_url).bind(sp)
const logoutUrl = await createLogoutRequestUrl(idp, options)
res.redirect(logoutUrl)

1 Ответ

0 голосов
/ 02 мая 2019

OK обнаружил мои ошибки:

Мой SP entity_id должен быть URL-адресом метаданных

entity_id: `${config.HOSTNAME}/saml/metadata`,

Конфигурация также должна быть отражена в okta:

...