【问题标题】: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 进行如此不同的处理,有什么原因吗?有没有像普通网站一样简单的解决方案?

我不需要太复杂的东西。我想确保所有用户都经过身份验证。并限制部分用户访问。

【问题讨论】:

    标签: c# asp.net-core asp.net-web-api


    【解决方案1】:

    不管怎样,这是我对此事的看法。

    一个主要区别是网站是由用户访问的。如果该用户未通过身份验证并尝试访问页面,则将他们引导至登录。

    API 通常由某个进程在后台访问。在这种情况下,如果需要身份验证,则不能要求用户再次登录,因为这会中断用户旅程。相反,您需要确定该用户是否具有访问 API 的权限。这就是 OAuth2 和各种身份验证流程的用武之地

    用户一次登录到应用程序,请求访问或不记名令牌。这决定了它也允许访问的事物(范围)。

    如果您同时控制 Web 应用程序和 API,那么是的,您可以做一些非常基本的事情来使其变得非常简单(比如传递一个简单的预配置令牌并检查它)。

    当 API 不知道调用应用程序时,复杂性就会出现。在这种情况下,您需要允许通过各种不同的身份验证流程进行通信。做到这一点的最佳方法是采用最佳实践方法,这些方法在外观上比简单的 Web 应用身份验证要复杂得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 2019-03-31
      • 2018-07-26
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多