与HTTP摘要式身份验证确保REST端点

问题描述:

  • 我开发使用FlaskPython一个项目,该项目将有终点为
@app.route(/transaction) 
def get(request): 
    ... 

@app.route(/transaction) 
def post(request): 
    ... 
  • 另外,我想的是,REST端点在执行方法之前进行身份验证
  • 我搜索了很多关于此的内容,发现Digest Authentication是我可能需要的东西(我不知道到现在为止)

问题与HTTP摘要式身份验证确保REST端点

  • 我怎样才能实现使用python和瓶这样的安全模式?我可以看到并从中学习到的任何示例?
  • 我不想以明文形式传递密码,使用令牌是一个更好的主意,所以考虑HTTP摘要验证是一个正确的选择?
  • 你可能想推荐的其他东西?

我希望我的服务器是无国籍,而不是任何会话

+0

“无状态服务器”是什么意思?如果你想使用认证,那么显然你必须在服务器端的某处存储凭证。在这个意义上,会话只是另一层凭证。事实上,使用HTTP有一个有状态的服务器有点困难(如果可能的话)。 – freakish 2013-04-04 16:20:26

https://flask-restless.readthedocs.org/en/latest/存储在服务器端。

对于安全存在的扩展名:http://pythonhosted.org/Flask-Login/http://pythonhosted.org/Flask-Principal/

无状态服务不存储会话数据,这意味着您必须为每个请求发送凭据。

  1. 您只能使用普通的登录名和密码或使用散列函数。
  2. 您可以将密钥存储在用户端,并将您的普通数据生成/加密为登录名,密码,另一个请求数据。这可以保护您免受其他请求的影响,但不保护一些请求,但您也可以添加类似时间戳的内容,并拒绝任何旧请求或添加唯一请求标识并拒绝某些请求。
  3. 你可以使用像https这样更有效的东西。

有状态服务还可以获得用于身份验证的普通登录名和密码,并为每个请求发送的授权生成令牌。