我们正在建立一个休息服务,我们想要使用OAauth 2进行授权.在目前的草案(v2-16从5月19日)介绍了4种类型.它们是用于获得授权的机制或流程(访问令牌).
我们似乎需要支持所有这四个,因为它们有不同的用途.前两个(可能是最后一个)可以从需要访问API的第三方应用程序中使用.授权代码是授权足够幸运地驻留在安全服务器上的Web应用程序的标准方法,而隐式授权流程将是客户端应用程序的选择,该客户端应用程序无法完全保密其凭据(例如,移动/桌面)应用程序,JavaScript客户端等).
我们希望自己使用第三种机制在移动设备上提供更好的用户体验 - 而不是将用户带到Web浏览器等的登录对话框,用户只需在应用程序中直接输入他或她的用户名和密码并登录.我们还希望使用客户端凭据授予类型来获取可用于查看与任何用户无关的公共数据的访问令牌.在这种情况下,这不是授权,而是类似于API密钥,我们使用它来仅访问已向我们注册的应用程序,如果需要,我们可以选择撤销访问权限.
所以我的问题是:
总而言之,我们希望能够使用来自客户端应用程序的客户端凭据和资源所有者凭据流.这两种流程都要求您以某种方式存储客户端密钥,但客户端是移动或JavaScript应用程序,因此这些很容易被盗.