Лучшие практики REST API для авторизации - PullRequest
1 голос
/ 29 марта 2020

Я занимаюсь разработкой API с использованием ASP. Net Web API для обслуживания мобильного приложения. Я использую промежуточное программное обеспечение OWIN с пользовательским OAuthAuthorizationServerProvider для обработки различных запросов на предоставление маркеров доступа и ограничения вызовов для авторизованных конечных точек, и все это работает нормально.

Я хотел бы ограничить использование API для мобильного приложения один, используя секретный ключ или ключи. Я понимаю, что это не на 100% безопасное решение (возможно обратное проектирование / сниффинг и т. Д. c.), Однако я хотел бы получить некоторые рекомендации о лучших способах реализации этого.

Протокол oAuth уже определяет использование идентификатора клиента и секрета, который я думал использовать для вышеуказанной цели, однако кажется, что идентификатор клиента / секрет проверяются только при запросе токена доступа (ValidateClientAuthentication), тогда как я хотел бы аутентифицировать все вызовы API, включая generi c, не связанные с пользователем.

Другой вариант - передать секретный ключ (идентификатор клиента / секрет) в заголовке HTTP и проверить его в глобальном атрибуте AuthorizationFilterAttribute. Это работает, но я не уверен, является ли это лучшей практикой. Есть ли общепринятый способ справиться с этим сценарием?

...