Я много читал об этом здесь и других статьях. Сначала позвольте мне объяснить мою ситуацию.
Скажем, у меня есть следующий сервер REST:
GET /user
возвращает всех пользователей в JSON. (Не нужно регистрироваться) POST /user
регистрирует нового пользователя. (Не нужно регистрироваться) DELETE /user
удаляет пользователя. (Вы do должны быть зарегистрированы)
POST /login
выводит учетные данные для входа в систему и возвращает 200 OK при успешной аутентификации. Также это создает session
с username
.
DELETE /login
logout, это приведет к удалению сеанса.
Для аутентификации пользователей и ролей я использую Deadbolt-2, поэтому, когда вызывается DELETE /user
, сначала будет отображаться session
, чтобы определить, вы вошли в систему, а затем username
используется, чтобы определить, имеют правильные разрешения.
Этот работает. Мой вопрос не в том, что такое авторизация/аутентификация. Это, однако, следующее:
Я хочу защитить "общедоступные" API-вызовы, такие как: GET /user
таким образом, чтобы доступ к ним могли только одобренные мной end-end приложения .
Я много читал о api-keys и HMAC и oAuth. Но мне кажется, что речь идет о первом сценарии, а не о втором. Итак, как бы я это сделал в своей ситуации?
Спасибо за ваше время.