【问题标题】:How to use OAuth with RPC?如何将 OAuth 与 RPC 结合使用?
【发布时间】:2015-10-26 03:33:54
【问题描述】:
(我对 OAuth 知之甚少,请多多包涵)。
我有一个后端系统,旨在通过 REST-ish API 供其他公司使用。我添加了基本身份验证,现在需要检查凭据。我想过使用 OAuth,这样我就可以让我们的合作伙伴自己管理密码,从而节省公司资源。
由于这是一个 RPC API,它需要:
1.没有人际互动
2. 需要快速(例如检查内存缓存)
我应该/我可以为此使用 OAuth 吗?如果没有,有哪些选择?
【问题讨论】:
标签:
rest
authentication
oauth
【解决方案1】:
基本身份验证不是 REST-ful API 的良好身份验证方案(有关详细信息,请参阅 here)。
使用 OAuth2 安全协议并不会让您的公司免于管理密码本身。您可以使用 Azure AD(支持 OAuth2)之类的服务并构建多租户应用程序。这将让您的用户使用他们自己的 Azure AD 目录(他们自己管理)中的帐户登录。
当您说 RPC API 时,您指的是 SOAP 服务还是XML-RPC 服务?我假设你的意思是后者。
使用不记名令牌的几个安全协议具有您正在寻找的特征。接收token的服务只需要验证数字签名,就可以判断是否可以信任token。这是一个非常快速的操作。无需与发布身份验证服务进行通信。
OAuth2 无疑是一个可以满足这些要求的协议。您要使用的授权流程取决于您的客户端应用程序。我解释了不同的拨款流程here。