我需要为我们将托管的一些Web服务实现身份验证。我想使用开放标准,所以我对OAuth感兴趣。使用DotNetOpenAuth实现API密钥
我将为这些服务使用WebAPI。
所以这里是我遇到麻烦的地方:我读过的大多数(或者全部)Api Key/OAuth场景涉及(在某个点或另一个位置)坐在屏幕前的用户。
我需要组合一个业务伙伴将调用的API。这些电话将来自一个自动化过程 - 链中任何地方都不会有一个人可以通过登录凭证重定向到网站。
但是,我不想只有任何人到处打电话给我的服务。
因此,我了解了OAuth以及它如何使用共享密钥来签署每个请求,我认为这就是我所追求的。 (我会设置一个会话密钥,或者可以考虑将其中一个参数设置为“ticks”值,并且只能在短时间内接受请求等)。
我曾经希望能够使用DotNetOpenAuth完成这个(或类似的东西),但我遇到的每一个例子都以“用户被重定向到一个登录页面”开头,我只需要“双腿”认证。这个?
有没有一种更好的方式去?
感谢马克,这看起来很有希望。现在检查出来... – JMarsch
嗨马克,我已经通读了代码。我有一点困惑:有一些代码载入公共和私人证书。我曾认为OAuth提供的认证方式不依赖于SSL证书。这是一个必需的步骤吗?我在这里错过了什么? – JMarsch
Hi @JMarsch OAuth 2规范与OAuth 1的不同之处在于,它依赖于HTTPS通信来处理所有请求,这使得在承载令牌的“理论”中可以不受保护地发送......但是,实际上应该保护承载令牌。生成的“令牌”即承载令牌需要被信任。在示例博客中,因此在这些示例中使用SSL证书的私钥进行签名。虽然在OAuth 2规范中未强制承载令牌的签名或加密,但建议您使用它。 DotNetOpenAuth因此将该签名应用于令牌。 –