OAuth 2 客户端访问和授权代码
OAuth 2 client access and grant code
我正在使用 Web 上的不同链接及其 rfc (RFC 6749) 阅读 oauth 2 协议。通过链接后,我有以下疑问:
授权服务器是否需要在生成并传递给客户端后在其端维护授权码?
有一种情况,其中 2 个不同的客户端尝试从授权服务器获取令牌:第一个客户端在资源所有者登录并批准访问后获取令牌。然后第二个客户端(与第一个客户端完全不同)尝试获取令牌。
a) 是否应该重定向第二个客户端和资源所有者
应该被要求再次登录或者授权服务器应该有
以检测资源所有者具有的方式实现
较早登录并且不会从资源中询问用户名和密码
所有者?
b) 如果上述问题的答案是肯定的,我们如何处理上述问题
情景?
授权服务器必须保持与 code
a.o 关联的状态。访问它的客户端标识符、客户端使用的重定向 URI 和发布时间戳。这通常意味着授权服务器必须维护 code
作为对存储在后端的状态的引用。避免这种情况的一种方法是将所有信息编码到 code
本身并对其进行加密。
授权服务器可以选择保持登录会话或依靠外部 SSO 服务器来执行此操作,这样用户就不需要再次进行身份验证。但它必须要求用户同意向特定客户端(第一个和第二个客户端)颁发令牌。所以:身份验证可以是隐式的(SSO),同意必须是显式的(因为它是关于不同的客户端)。
我正在使用 Web 上的不同链接及其 rfc (RFC 6749) 阅读 oauth 2 协议。通过链接后,我有以下疑问:
授权服务器是否需要在生成并传递给客户端后在其端维护授权码?
有一种情况,其中 2 个不同的客户端尝试从授权服务器获取令牌:第一个客户端在资源所有者登录并批准访问后获取令牌。然后第二个客户端(与第一个客户端完全不同)尝试获取令牌。
a) 是否应该重定向第二个客户端和资源所有者 应该被要求再次登录或者授权服务器应该有 以检测资源所有者具有的方式实现 较早登录并且不会从资源中询问用户名和密码
所有者?b) 如果上述问题的答案是肯定的,我们如何处理上述问题 情景?
授权服务器必须保持与
code
a.o 关联的状态。访问它的客户端标识符、客户端使用的重定向 URI 和发布时间戳。这通常意味着授权服务器必须维护code
作为对存储在后端的状态的引用。避免这种情况的一种方法是将所有信息编码到code
本身并对其进行加密。授权服务器可以选择保持登录会话或依靠外部 SSO 服务器来执行此操作,这样用户就不需要再次进行身份验证。但它必须要求用户同意向特定客户端(第一个和第二个客户端)颁发令牌。所以:身份验证可以是隐式的(SSO),同意必须是显式的(因为它是关于不同的客户端)。