OAuth 合规性和遗留应用程序迁移
OAuth compliance and legacy applications migration
当您尝试将当前的重量级企业应用程序逐步迁移到现代架构时出现的非常常见的情况。
此类应用程序的迁移策略(至少是第 1 步)能否类似于 使用 OAuth 资源所有者密码凭据授予:颁发并使用访问令牌而不是身份验证 cookie,然后就可以了?
详情如下:
我们有一个现有的 ASP.NET 企业应用程序,并且需要为其 REST HTTP 服务引入 token-based 安全性。现有的实现使用一个传统的登录页面,该页面将 username/password 交换为身份验证 cookie – 需要保留该 cookie 以保持旧页面正常工作。
我们最终得到以下结果:除了发布 auth cookie 之外,登录页面还将 return 客户端的访问令牌,所有后续的 REST HTTP 服务将仅通过该令牌(令牌在授权 header 中发送)。这是一个 Bearer 令牌,因为没有暗示客户端拥有加密密钥的证据。
我们能否至少从 Resource Owner Password Credentials grant(规范的第 4.3 节)开始宣传新方案符合 OAuth 2.0 标准?如果不是,还需要做什么来声明新实现(使用访问令牌)符合 OAuth 2.0 标准?
目前我们对扩展此方案以支持授权第 3 方应用程序不感兴趣。换句话说,我们没有兴趣支持其他 grant types.
我知道这个问题有一些营销的味道,但深入研究规范并没有得出简明全面的答案。
是的,您的建议是资源所有者密码凭证 (ROPC) 授予的目的。 OAuth 2.0 流程基本上有两个部分。客户端,即 a) 客户端如何 "gets" 令牌和 b) 客户端如何 "uses" 令牌。那两条腿是独立的。在 ROPC 中,客户端仍然以传统方式 "gets" 令牌(在 OAuth 2.0 中标记为 "for migration purposes only"),但正如您所指出的那样,客户端将 "use" 令牌针对资源服务器完全符合 OAuth 2.0 的方式。
因此,在您的情况下,资源服务器和客户端之间的协议流及其实现是标准的 OAuth 2.0,可以这样宣传。此外,即使客户端开始使用不同的授权来获取令牌,它也不会改变。
当您尝试将当前的重量级企业应用程序逐步迁移到现代架构时出现的非常常见的情况。
此类应用程序的迁移策略(至少是第 1 步)能否类似于 使用 OAuth 资源所有者密码凭据授予:颁发并使用访问令牌而不是身份验证 cookie,然后就可以了?
详情如下:
我们有一个现有的 ASP.NET 企业应用程序,并且需要为其 REST HTTP 服务引入 token-based 安全性。现有的实现使用一个传统的登录页面,该页面将 username/password 交换为身份验证 cookie – 需要保留该 cookie 以保持旧页面正常工作。
我们最终得到以下结果:除了发布 auth cookie 之外,登录页面还将 return 客户端的访问令牌,所有后续的 REST HTTP 服务将仅通过该令牌(令牌在授权 header 中发送)。这是一个 Bearer 令牌,因为没有暗示客户端拥有加密密钥的证据。
我们能否至少从 Resource Owner Password Credentials grant(规范的第 4.3 节)开始宣传新方案符合 OAuth 2.0 标准?如果不是,还需要做什么来声明新实现(使用访问令牌)符合 OAuth 2.0 标准?
目前我们对扩展此方案以支持授权第 3 方应用程序不感兴趣。换句话说,我们没有兴趣支持其他 grant types.
我知道这个问题有一些营销的味道,但深入研究规范并没有得出简明全面的答案。
是的,您的建议是资源所有者密码凭证 (ROPC) 授予的目的。 OAuth 2.0 流程基本上有两个部分。客户端,即 a) 客户端如何 "gets" 令牌和 b) 客户端如何 "uses" 令牌。那两条腿是独立的。在 ROPC 中,客户端仍然以传统方式 "gets" 令牌(在 OAuth 2.0 中标记为 "for migration purposes only"),但正如您所指出的那样,客户端将 "use" 令牌针对资源服务器完全符合 OAuth 2.0 的方式。
因此,在您的情况下,资源服务器和客户端之间的协议流及其实现是标准的 OAuth 2.0,可以这样宣传。此外,即使客户端开始使用不同的授权来获取令牌,它也不会改变。