【发布时间】:2020-01-15 00:27:49
【问题描述】:
我目前正在使用后端的 Python/Flask API 开发一个 SPA 应用程序(角度)。
该应用程序将支持多个租户,我对安全性概念有些纠结。我目前正在使用 jwt-extended
颁发的 JWT 令牌对所有租户都有效(我当然可以从令牌中获取用户,然后检查用户是否应该有权访问该租户),但我更愿意拥有 JWT 令牌租户特定(以便用户被@jwt_required 阻止)。
我的想法是为每个租户设置不同的 JWT_SECRET_KEY(例如将租户附加到我的密钥),然后检查每个租户令牌的有效性(租户将由 url 标识,作为子域或参数)
默认情况下,密钥在应用程序级别(使用 app.config('JWT_SECRET_KEY') 但看起来您可以覆盖flask_jwt_extended.JWTManager 中的密钥编码/解码函数。但是我不确定我使用哪些函数必须覆盖我的@jwt_required 才能正常工作(因此要在解码中使用自定义密钥,该密钥将作为我的密钥+租户的串联生成)
如果我的概念没有意义/如果有更好和/或更简单的方法来实现这一点,请告诉我。
【问题讨论】:
标签: python flask jwt multi-tenant flask-jwt-extended