我目前正在使用微框架 Flask 在 python 中编写一个 rest API。它是一个私有 API,它处理用户数据。我打算使用这个 API 来构建一个 web 和一个 Android 应用程序。
现在我使用摘要身份验证来保护私人用户数据。例如,如果您想使用用户 bob 在我的服务上发布数据,您可以在 myapi/story/create 发出发布请求,并使用摘要模式提供 bob 的凭据。
我知道这不是一个好的解决方案,因为:
-Digest auth 不安全
-客户端未经过身份验证(如何保护与当前用户无关的请求,例如创建新用户?)
我阅读了很多关于 oAuth 的内容,但是 3-legged 身份验证似乎有点矫枉过正,因为我不打算向第三方开放我的 API。
2-legged oAuth 不适合,因为它只为客户端提供身份验证,而不为用户提供身份验证。
oAuth 的另一个问题是我还没有找到在 Python 中实现它的综合指南。我找到了python-oauth2库,但我不理解服务器示例,也找不到其他文档。另外,这个例子似乎没有涵盖 oAuth 的许多方面。
所以我的问题是:
- 是否有替代方案(不是 oAuth)以合理的安全级别对客户端和用户进行身份验证?
- 如果 oAuth 是最好的解决方案:
- 如何跳过授权过程(因为用户不必授权第三方客户端)?
- 是否有关于 python-oauth2 或任何其他 Python 库的详细文档?
任何帮助或建议将不胜感激。