Базовая HTTP-аутентификация: пользователь или приложение? - PullRequest
2 голосов
/ 08 сентября 2011

Должен быть простой ответ на мой вопрос, но в Интернете я, кажется, получаю противоречивую информацию.

Предположим, у меня есть простой API, использующий базовую HTTP-аутентификацию. Мобильное приложение использует мой API на SSL для регистрации новых пользователей (POST) и (GET) ANY пользовательских данных / профилей.

Вопрос: Проверяю ли я Пользователь или Приложение с HTTP-аутентификацией?

Как пример ...

Скажем,

api.somedomain.com / пользователь / создать

api.somedomain.com / пользователь / {идентификатор пользователя}

Сценарий 1: API использует базовую аутентификацию в заголовке, и приложение отправляет имя пользователя и пароль разработчика (а не пользователя, вошедшего в свое приложение). Приложение может создавать пользователей, а приложение - просматривать учетные записи пользователей.

Минусы: если кто-то узнает имя пользователя и пароль, которые использует приложение, он может создать пользователей и просмотреть учетную запись.

Сценарий 2: я проверяю пользователя с помощью обычной аутентификации, а не приложения. Таким образом, пользователь может просматривать свою информацию при входе в приложение.

Минусы: приложение не может создать нового пользователя, так как им нужно сначала пройти аутентификацию в качестве пользователя.

Теперь я знаю, что первым ответом будет «использовать OAuth», но я бы хотел получить ответ для базовой аутентификации в этом случае, пожалуйста.

Заранее спасибо

1 Ответ

2 голосов
/ 08 сентября 2011

Ну, в любом случае у вас есть два пользователя (два вида пользователей) .Один вид - живой гуманоид, другой - приложение.

«Пользователь типа приложения» может создавать учетные записи, а «гуманоид» - просматривать / редактировать свой профиль.

Для вашего сервера проблема должна быть простой:

  • Сначала посмотрите, кто аутентифицирован .Сопоставьте имя пользователя и пароль и найдите клиент .

  • Если клиент попытается создать учетную запись или просмотреть профиль, проверьте, ему разрешено это делать .

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

...