Как обращаться с JSON Store, если был использован пароль пользователя?

Я создаю приложение для мобильных устройств, используя IBM MobileFirst 6.3. Приложение будет работать следующим образом: -

  1. Пользователь должен ввести имя пользователя и пароль для доступа к функциям приложения.

  2. JSON Store используется для хранения пользовательских данных с шифрованием.

  3. При первом использовании приложения будет создан JSON Store, защищенный паролем пользователя [JSON STORE KEY] при успешном входе в систему.

  4. Пользователям разрешено менять пароль в любой среде [мобильной или в Интернете].

  5. Давайте рассмотрим сценарий, если пользователь изменил пароль в Интернете и пытается войти в мобильное приложение. Вход будет успешным, но JSON Store не может быть инициализирован, так как пользователь изменил пароль.

Мобильное и веб-приложение используют один и тот же веб-сервис, и нам не разрешено изменять веб-сервис для мобильного приложения.

Как мы можем справиться с этим сценарием?


person sasi    schedule 09.02.2015    source источник


Ответы (2)


Ответ на Worklight Online + Offline Authentication описывает подход, который, по моему мнению, может работать в вашем сценарий.

person xverges    schedule 09.02.2015

Вы имеете в виду, что вы основываете вход в мобильное приложение на JSONStore? Это означает, что для входа в мобильное приложение вам нужно открыть свой JSONStore?

Я вовсе не уверен, что это правильный подход. Вы сохраняете пароль на устройстве. Не особо безопасно...

Чтобы усложнить ситуацию, вы также хотите иметь возможность изменять пароль как в Интернете, так и на мобильном устройстве, и, как вы узнали, вы не можете изменить его на мобильном устройстве до того, как сначала войдете в систему со старым паролем, а затем каким-то образом программно инициирует изменение пароля на основе пароля, введенного конечным пользователем в веб-версии.

Как видите, это создает сценарий отсутствия синхронности между веб-приложениями и мобильными приложениями.

Возможно, вам не следует этого делать, если вы планируете разрешить смену пароля.

Я предлагаю использовать централизованное расположение для пароля, например, LDAP или аналогичный сервер, подключенный к серверу Worklight. А также не основывать свой логин на JSONStore таким образом.

Вы можете использовать JSONStore для автономной аутентификации, но не для онлайн-аутентификации. См. здесь: Руководство по автономной аутентификации.

person Idan Adar    schedule 09.02.2015
comment
Я не упоминал, что храню имя пользователя и пароль в магазине json. Во втором пункте я упомянул, что мы сохраняем некоторую информацию от пользователя [не имя пользователя и пароль] в хранилище json. Затем, как только пользователь прошел аутентификацию, только мы открываем хранилище json для целей хранения. - person sasi; 09.02.2015
comment
Итак, какова связь между веб-паролем и паролем JSONStore? Для чего вы используете веб-пароль? авторизоваться? - person Idan Adar; 09.02.2015
comment
Да, веб-пароль используется для аутентификации мобильного приложения, а также мы используем тот же веб-пароль для защиты хранилища json. - person sasi; 09.02.2015
comment
Ну, как я уже писал, это проблемный сценарий, который, возможно, не следует делать. Это как второй уровень или уровень защиты. Вероятно, вам не следует использовать один и тот же пароль для входа в систему и jsonstore. может быть, каждый раз как-то генерировать новый. Или подумайте, зачем вам еще один пароль после того, как вы уже вошли в систему... - person Idan Adar; 09.02.2015
comment
Я с тобой согласен. Как вы сказали, это проблематичный сценарий, но нам нужно как-то защитить хранилище json. Как вы будете защищать json-хранилище, каждый раз генерируя пароль, или как напрямую спрашивать пользователя о пароле для json-хранилища? - person sasi; 09.02.2015
comment
Сделать это полностью программным, никогда не требуя взаимодействия с пользователем? - person Idan Adar; 09.02.2015
comment
Не будет ли это нарушением безопасности, если мы жестко закодируем вещи? - person Kawinesh SK; 09.02.2015
comment
Только если кто-то получил учетные данные для входа (которые вы используете, прежде чем использовать jsonstore внутри приложения). Или просто не используйте тот же пароль, что также является потенциальным нарушением безопасности. - person Idan Adar; 09.02.2015