【发布时间】:2016-05-16 14:32:30
【问题描述】:
我想编写一个网站,在现有网站提供的功能之外添加额外的功能。
但我宁愿不为我的网站设置自己的安全性。
我想我会写一些我想要安全的 web api 服务。
这是现有网站对其登录页面的描述:
这是您将用于验证用户身份的 URL。如果身份验证成功,您应该会收到 200 响应代码,并且在响应正文中不应找到短语“登录”。对此请求使用 HTTP POST。
我知道我可以为每个服务调用调用登录页面,但我希望用户只需登录一次。
有什么方法可以让我知道他们最近登录,但仍然可以防止有人试图欺骗他们已经登录?
【问题讨论】:
-
恐怕真的很难理解您的要求。您是否拥有现有网站和/或可以修改它?使用这个现有站点(cookies、承载令牌等)的身份验证机制是什么?按原样查看您的问题,我相信您没有选择重用现有身份验证的选项。
-
@FedericoDipuma - 我不拥有现有网站。我希望使用类似于 Open Id 提供者的身份验证(尽管他们没有实现 Open Id)。我希望有类似的东西,“使用 API
something,它会生成一个安全令牌,您可以将其放入 cookie 并知道它是合法的”或类似的东西。我只是不太了解网络安全,所以我在这里问。 -
听起来您正在尝试实现 OAuth。
-
如果这个现有站点不提供用于身份验证/授权的标准 API(OpenId、OAuth 等),那么您就没有机会将其用作身份验证提供程序。我可以假设它只是使用某种 cookie 来保持身份验证状态。这对您来说就像一个黑匣子,您无法确定用户是否经过身份验证。
-
@FedericoDipuma - 所以,想想这个,如果我将用户发送到登录页面,并返回一个 200 代码,那么我会生成一个相当长的令牌,该令牌存储在客户端和服务器,然后我使用 HTTPS 将该令牌添加到每个调用中(并最终使令牌超时)......这不起作用吗? (如果令牌不匹配,则它们未通过身份验证,我会重定向到登录页面。)
标签: .net security asp.net-web-api asp.net-web-api2