令牌过期后的部分身份验证
Partial Authentication after expired token
我对 Oauth 还很陌生,我想知道是否有任何 Oauth 流程支持特定流程。我希望能够识别用户并允许该用户执行不安全的操作,即使他们的令牌已过期。只有在用户请求执行安全操作时,他们才会被迫重新进行身份验证。我目前没有看到任何支持这一点的流程。
我想到了以下使用刷新令牌的解决方案,但不确定我是否可能违反了任何 oauth 模式,或者是否有更好的方法。
1) 颁发 X 时间量的访问令牌。比方说2小时。
2)令牌到期后,刷新令牌用于获取新的访问令牌。新令牌将包含一个声明,该声明标识用户只有不安全的访问权限。
3) 如果请求安全资源,请求将被拒绝并返回 401 响应代码,表明令牌无效。
4) 应用程序必须要求用户凭据才能接收新的访问令牌。
对此有什么想法吗?
这实际上取决于资源服务器和客户端之间的交互,当然还有标准 OAuth 2.0 的边界。 OAuth 2.0 在该交互中唯一标准化的是访问令牌的呈现方式。所有其他行为都留给应用程序实现者。
资源服务器将允许访问不安全的 resources/operations,无论访问令牌是否有效,或者即使根本没有访问令牌。只有在访问受保护的资源时,流程才会像您描述的那样。
我看不出生成用于标识 "unsecure access" 的访问令牌的价值。该令牌与过期令牌或根本没有令牌具有相同的语义,因此不需要访问令牌来涵盖这种情况。
我对 Oauth 还很陌生,我想知道是否有任何 Oauth 流程支持特定流程。我希望能够识别用户并允许该用户执行不安全的操作,即使他们的令牌已过期。只有在用户请求执行安全操作时,他们才会被迫重新进行身份验证。我目前没有看到任何支持这一点的流程。
我想到了以下使用刷新令牌的解决方案,但不确定我是否可能违反了任何 oauth 模式,或者是否有更好的方法。
1) 颁发 X 时间量的访问令牌。比方说2小时。 2)令牌到期后,刷新令牌用于获取新的访问令牌。新令牌将包含一个声明,该声明标识用户只有不安全的访问权限。 3) 如果请求安全资源,请求将被拒绝并返回 401 响应代码,表明令牌无效。 4) 应用程序必须要求用户凭据才能接收新的访问令牌。
对此有什么想法吗?
这实际上取决于资源服务器和客户端之间的交互,当然还有标准 OAuth 2.0 的边界。 OAuth 2.0 在该交互中唯一标准化的是访问令牌的呈现方式。所有其他行为都留给应用程序实现者。
资源服务器将允许访问不安全的 resources/operations,无论访问令牌是否有效,或者即使根本没有访问令牌。只有在访问受保护的资源时,流程才会像您描述的那样。
我看不出生成用于标识 "unsecure access" 的访问令牌的价值。该令牌与过期令牌或根本没有令牌具有相同的语义,因此不需要访问令牌来涵盖这种情况。