我正在研究 ASP.NET Web API,现在我想实现 oauth2 协议(protocol)来授权对 api 端点。
身份提供者、授权服务器和资源(api)都将由我们的软件处理。我不需要实现 Google、MS og Facebook 登录。
我选择 oauth 的原因是我想对我公司可能开发的 future 服务使用相同的身份提供者。
到目前为止,我在 Internet 上找到的每个示例代码和教程似乎都集中在使用外部身份提供商(如 Google)上,而不是在自行开发的解决方案上。此外,它们似乎包含用于输入凭据的网页,这不是我想要做的。客户端库应该使用 apikey 并使用它来获取访问资源 api 所需的 token 。
这甚至可能吗?还是我完全误解了 oauth 的预期用途?
我希望我的情况清楚,所以请,如果有人能指出我正确的方向,代码示例、教程或类似的东西。
最佳答案
oauth 中没有 apikey 的概念。相反,您有不同的流程,其中 客户端凭据 流程是您应该感兴趣的流程。该流程包括仅将 client_id
和 client_secret
从客户端应用程序发送到身份提供者的 token 端点,因此无需任何用户交互。
http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified
(Aaron 将此流程记录为“应用程序访问”)
如果您决定使用 DotnetOpenAuth,则可以为身份提供者、资源服务器和客户端应用程序实现该流程。首先,下载他们的例子,尽可能多地学习,然后带着具体问题回来。
关于c# - 关于 OAUTH2 和自定义身份提供者的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21164597/