Учетные записи Meteor, получающие ответ SAML (токен / пользователь после входа в систему)

#authentication #meteor #authorization #saml-2.0

#аутентификация #meteor #авторизация #saml-2.0

Вопрос:

у меня рабочий вход в систему SAML с Meteor.accounts и MS Azure. Я использую это https://github.com/steffow/meteor-accounts-saml библиотека для SAML, которая является производной от https://github.com/bergie/passport-saml

Процедура выглядит следующим образом:

  1. Нажмите saml login -> появится всплывающее окно
  2. Введите данные пользователя / pw во всплывающем окне -> всплывающее окно закрывается без ошибок
  3. Успешный вход в систему

Итак, теперь я хочу получить токен SAML для дальнейшей обработки (или, по крайней мере, информацию о вошедшем в систему пользователе, которую meteor извлек из IDP).

Поскольку я понятия не имею, где токен SAML хранится в Meteor или может быть извлечен в коде, может кто-нибудь помочь мне получить ответ SAML?

Ответ №1:

Вероятно, уже решено, но вот оно.. Согласно коду, ответ saml извлекается в «saml_server.js «в строке 70 и токен также должен быть там (LoginRequest.credentialToken) LoginResult должно быть довольно легко сохранить в коллекции Meteor.users

   var loginResult = Accounts.saml.retrieveCredential(loginRequest.credentialToken);
  var email = loginResult.profile.email;
  var user = Meteor.users.findOne({username: email});

  if (!user) {
    Accounts.createUser({
      "username": email,
      "profile": StufffromloginResult
    });
  } else {
    Meteor.users.update(
    {
      "username": email
    },
    { "$set": {
          "profile": StufffromloginResult,
        }
    });
  }
  

И извлекается с помощью:

 Meteor.user().profile
  

Комментарии:

1. Ах да, я уже решил это некоторое время назад, но забыл обновить.