В настоящее время я пишу API для отдыха в python с микрофлокой Flask. Это частный API, и он имеет дело с пользовательскими данными. Я планирую использовать этот API для создания веб-приложения и приложения для Android.
В настоящее время я использую digest auth для защиты частных пользовательских данных. Например, если вы хотите публиковать данные на моем сервисе с помощью пользователя bob, вы делаете запрос на почту в myapi/story/create и предоставляете учетные данные bob с помощью шаблона дайджеста.
Я знаю, что это нехорошее решение, потому что:
-Digest auth не безопасно
-Клиент не аутентифицирован (как защитить запросы, не связанные с текущим пользователем, например, создать нового пользователя?)
Я прочитал много статей о oAuth, но трехсторонняя аутентификация кажется излишней, потому что я не планирую открывать свой API для третьей стороны.
2-legged oAuth не подходит, поскольку он обеспечивает аутентификацию только для клиентов, а не для пользователей.
Другая проблема с oAuth заключается в том, что я не нашел исчерпывающего руководства по ее реализации в Python. Я нашел библиотеку python-oauth2, но я не понимаю пример сервера, и я не могу найти дополнительную документацию. Плюс, похоже, что многие аспекты oAuth не рассматриваются в этом примере.
Итак, мои вопросы:
- Существует ли альтернативная схема (а не oAuth) для аутентификации как клиента, так и пользователя с разумным уровнем безопасности?
- Если oAuth - лучшее решение:
- Как пропустить процесс авторизации (поскольку пользователям не нужно разрешать сторонние клиенты)?
- Есть ли подробная документация для python-oauth2 или для любой другой библиотеки Python?
Любая помощь или совет будут оценены.