Привет, ребята, это, кажется, обсуждалось довольно часто, но я хочу задать простой, размытый вопрос о выполнении аутентификации с помощью сервисов RESTful. Сценарий таков:
- Существует система, в которой размещаются зарегистрированные пользователи для приложения. Система предоставляет RESTful API для доступа к этим пользователям.
- Существует интерфейсное приложение с формой входа. Приложение может быть как внутренним, так и внешним.
- Внешнему приложению необходимо использовать данные в системе пользователя для аутентификации пользователя.
Теперь вопрос заключается в том, как аутентифицировать пользователя, чьи учетные данные (имя пользователя / пароль) вводятся в клиентское приложение, по данным в системе пользователя, чтобы это было безопасно и эффективно? Ради этого вопроса предположим, что клиентское приложение является внутренним по отношению к какой-либо внутренней сети, но приложения не будут находиться на одном компьютере и могут обмениваться данными только через службу.
Я понимаю идею о том, что приложение "управляется гипермедиа", но мы должны иметь возможность предоставлять услуги фильтрации / поиска. Например, рассмотрим ресурсы и API, как показано ниже:
- http://example.com/users
- GET - извлекает всех пользователей (управляемых, управляемых гипермедиа)
- POST - создает нового пользователя
- PUT / DELETE не поддерживается
- http://example.com/users/[id]
- GET - возвращает полное представление пользователя с id = {id}
- PUT - обновляет пользователя, принимает любой предопределенный тип носителя
- DELETE - удаляет пользователя (с соответствующей авторизацией)
- POST не поддерживается
Исходя из вышеизложенного, моя идея заключается в том, чтобы клиентское приложение GET отображало список пользователей, фильтруя по имени пользователя. Служба вернет хешированный пароль и соль клиенту, клиент выполнит аутентификацию.
Мысли