REST API 身份验证有啥不同? [关闭]
Posted
技术标签:
【中文标题】REST API 身份验证有啥不同? [关闭]【英文标题】:What is so different about REST API authentication? [closed]REST API 身份验证有什么不同? [关闭] 【发布时间】:2021-12-24 05:29:59 【问题描述】:当我使用 MVC 或 Razor Pages 创建网站时,Visual Studio 为我提供了对用户帐户使用内置支持的选项。限制对页面的访问就像向控制器/Razor 页面添加属性一样简单。
但现在我开始着手编写 Web API,它似乎大不相同。我已经阅读了几篇关于向我的 API 添加身份验证的文章,它们都采用了不同的方法。而且这些方法都不像常规网站那样简单。
我的问题是:保护 Web API 需要对 API 进行如此不同的处理,有什么原因吗?有没有像普通网站一样简单的解决方案?
我不需要太复杂的东西。我想确保所有用户都经过身份验证。并限制部分用户访问。
【问题讨论】:
【参考方案1】:不管怎样,这是我对此事的看法。
一个主要区别是网站是由用户访问的。如果该用户未通过身份验证并尝试访问页面,则将他们引导至登录。
API 通常由某个进程在后台访问。在这种情况下,如果需要身份验证,则不能要求用户再次登录,因为这会中断用户旅程。相反,您需要确定该用户是否具有访问 API 的权限。这就是 OAuth2 和各种身份验证流程的用武之地
用户一次登录到应用程序,请求访问或不记名令牌。这决定了它也允许访问的事物(范围)。
如果您同时控制 Web 应用程序和 API,那么是的,您可以做一些非常基本的事情来使其变得非常简单(比如传递一个简单的预配置令牌并检查它)。
当 API 不知道调用应用程序时,复杂性就会出现。在这种情况下,您需要允许通过各种不同的身份验证流程进行通信。做到这一点的最佳方法是采用最佳实践方法,这些方法在外观上比简单的 Web 应用身份验证要复杂得多。
【讨论】:
以上是关于REST API 身份验证有啥不同? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章