当您尝试将当前重量级企业应用程序逐步迁移到现代体系结构时,会出现非常常见的情况。
此类应用程序的迁移策略(至少第一步)是否可以使用OAuth资源所有者密码凭据授予:发出并使用访问令牌而不是身份验证cookie,此处您可以?< / p>
以下是详细信息:
我们有一个现有的ASP.NET企业应用程序,并且需要为其REST HTTP服务引入基于令牌的安全性。现有实现使用传统的登录页面来交换用户名/密码以进行身份验证cookie - 需要保留该页面以保持旧页面正常工作。
我们最终得到以下结果:除了发出auth cookie之外,登录页面还会将访问令牌返回给客户端,并且所有后续REST HTTP服务都将仅通过该令牌进行保护(令牌在Authorization标头中发送) 。这是一个Bearer令牌,因为没有暗示客户拥有加密密钥的证据。
我们是否可以宣传新方案至少符合Resource Owner Password Credentials grant(规范第4.3节)的OAuth 2.0标准?如果没有,还需要做些什么来声明新实现(使用访问令牌)是否符合OAuth 2.0?
目前我们对扩展此计划以支持授权第三方应用程序不感兴趣。换句话说,我们对支持其他grant types不感兴趣。
我知道这个问题有一些营销风格,但深入了解规范并没有产生简洁而全面的答案。
答案 0 :(得分:1)
是的,您的建议是资源所有者密码凭据(ROPC)授权的目的。 OAuth 2.0 flow wrt基本上有两个部分。客户端即a)客户如何“获取”令牌和b)客户端如何“使用”令牌。那两条腿是独立的。在ROPC授权中,客户端仍然以传统方式“获取”令牌(在OAuth 2.0中标记为“仅用于迁移目的”),但是当您指示客户端将在完全OAuth 2.0中“使用”令牌对资源服务器合规的方式。
因此,在您的情况下,资源服务器和客户端之间的协议流程,因此其实现是标准的OAuth 2.0,并且可以如此公布。此外,即使客户开始使用不同的授权来获取令牌,它也不会改变。