Как защитить мой REST api, разработанный в playframework

Я много читал об этом здесь и других статьях. Сначала позвольте мне объяснить мою ситуацию.

Скажем, у меня есть следующий сервер 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. Но мне кажется, что речь идет о первом сценарии, а не о втором. Итак, как бы я это сделал в своей ситуации?

Спасибо за ваше время.