我正在设计一个REST,它将有一些可供公众使用的区域,而其他部分则可供私人使用(主要是管理员)。
例如,公共API允许显示产品列表,而不要求最终用户验证自己。因此,是web应用程序(或电话应用程序)对API进行身份验证。
而管理员应该能够登录,获得一个OAuth令牌,然后执行某些方法。
我使用WebAPI2.0/C#设计了api,但是原则保持不变。我目前正在使用ASP.NET标识,并向经过身份验证的用户提供访问令牌和刷新令牌,以便他们能够执行此类非公开调用。如果它们没有令牌,则无法访问API。
我将如何在公共API级别做到这一点?显然,我不想对最终用户进行身份验证,而是验证实际应用程序本身,即使调用是公开的,这样一些随机的John就不能只公开调用。
我确实意识到我们有客户Id和应用程序秘密。人们通常是这样认证公共电话的吗?我担心在每个电话中一次又一次地传递客户Id和秘密会违背目的。
任何关于这方面的建议都将不胜感激。
发布于 2014-05-04 12:15:11
请阅读这篇关于满足最佳实践的RESTful web的文章:
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#requirements
希望它能帮上忙
但是,正如我从您的问题中了解到的,您应该在相同的模型上分离管理操作和用户操作,并使管理操作只对他可用。不要与用户和管理员共享重要的操作。
https://stackoverflow.com/questions/22723358
复制相似问题