Это, кажется, повторяющаяся проблема для меня, поскольку последние несколько лет я, кажется, тяготею к мобильным приложениям. Я хочу аутентифицировать и авторизовать мобильных пользователей в дополнение к веб-пользователям. Мне нужно сделать это достаточно плавным, чтобы пользователи могли легко получить веб-аккаунт, не прерывая их данные. Я хочу, чтобы решение было архитектурным по теме, а не специфичным для какого-либо языка / платформы.
Требования / предположения
- Мобильные пользователи должны иметь возможность использовать собственное приложение без входа в систему, в том числе для добавления контента (отметка избранного, загрузка фотографий и т. д.).
- Мобильный пользователь должен безопасно и однозначно аутентифицироваться в веб-сервисе даже без указания учетных данных.
- Мобильный пользователь может иметь несколько устройств, о которых не будет знать. друг друга.
- Мобильный пользователь должен иметь возможность Регистрироваться / Войти, что должно переводить любой контент в собственность учетной записи. Эта «синхронизация» должна происходить с каждой учетной записью, которая впоследствии входит в систему.
- Не имеет значения, была ли создана учетная запись на мобильном устройстве или в Интернете.
Рассматриваемые архитектуры
- НЕТ РУБАШКИ, НЕТ ОБУВИ, НЕТ ВХОДА = НЕТ ВЗНОС. Требовать входа в систему, чтобы размещать любой контент. Это избавляет от необходимости «синхронизировать» учетные записи устройств с основной учетной записью. Просто потребуйте одно имя пользователя / пароль + токены, чтобы устройства могли входить в систему. Объекты сервера: Пользователь, Роль
- Самоаутентификация на нескольких устройствах. Сервер согласовывает с устройством и передает ему учетные данные, которые устройство хранит. Каждое устройство само-аутентифицируется и связывается с анонимной учетной записью до тех пор, пока не произойдет Регистрация / Вход. Если происходит регистрация, анонимная учетная запись преобразуется в известную. Если происходит вход в систему, содержимое анонимной учетной записи перемещается в известную учетную запись, а затем выбрасывается. Устройства, которые теряют данные само-аутентификации, получат новые данные аутентификации, а предыдущая анонимная учетная запись будет заброшена (а затем, надеюсь, позже выброшена) и не подлежит восстановлению, поскольку она никогда не была преобразована в известную учетную запись. Объекты сервера: Пользователь, Роль, Устройство
Как вы думаете, какое решение является хорошим? Один из них, или что-то еще?
задан Kevin Elliott 17 November 2010 в 02:38
поделиться