Нужно уточнить правильный способ аутентификации (приложение для Android) - PullRequest
0 голосов
/ 06 июля 2018

Мы внедрили Backend Server и базу данных с RESTFUL API. У нас есть приложение для Android, которое может попросить сервер отправить определенные данные обратно.

Мы хотим внедрить систему аутентификации в приложении для Android.

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

Другие друзья предлагают использовать FireBase для аутентификации пользователей.

Могу ли я избежать использования OAuth / FireBase и просто сохранить в базе данных сервера имя учетной записи пользователя и соответствующий пароль с хеш-солью вместе с солью? Каждый запрос, отправленный клиентом, будет содержать имя учетной записи (которое может быть уникальным идентификатором, сгенерированным сервером при первом запросе и сохраненным в виде SharedPreference в телефоне) и пароль в открытом виде. Передача запроса осуществляется по протоколу HTTPS (при этом используется TLS / SSL), пароль в открытом виде не раскрывается.

Каковы возможные недостатки предложенного подхода в последнем абзаце? И если это ошибочный подход, учитывая, что мы уже используем Spring для сервера (Backend), я должен пойти на FireBase или OAuth?

Дополнительный контекст :

Не забывайте, что это самый первый крупномасштабный проект, над которым я работал (он считается 3-кредитным университетским курсом). Мы 3 в проекте. Я изучаю информатику, но не обязательно хорошо разбираюсь во всех системах, которые мы используем или планируем использовать.

Мы создаем приложение, которое позволяет пользователям просматривать на карте оповещения, опубликованные определенными базами данных (в настоящее время мы ориентируемся на метеорологические оповещения) в режиме реального времени. Мы хотим иметь возможность реализовать систему входа в систему, чтобы люди могли получать уведомления, несмотря на то, что приложение закрыто (мы разрешаем пользователям «подписываться» на области на карте, чтобы указывать регионы, для которых они хотят получать уведомления).

1 Ответ

0 голосов
/ 11 июля 2018

OAuth, или лучше OpenId Connect, - это протокол, в то время как FireBase - только одна из его коммерческих реализаций. Всегда лучше следовать стандарту, чем это возможно, чем применять собственный. Чтобы увидеть полный список сертифицированных реализаций OIdcC, загляните на сайт OIdC , и я вижу как минимум проект MITREid Connect , относящийся к Spring. Я думаю, что ваше индивидуальное решение будет работать для вашего индивидуального случая, но только до тех пор, пока вы не подумаете о какой-либо расширяемости, такой как Google auth или доступе к какому-либо стороннему API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...