单页应用认证

前端之家收集整理的这篇文章主要介绍了单页应用认证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的公司正在使用MVC 4中的新的Web API / SPA功能将其电子商务网站重新编写为单页面应用程序.我们不知道如何处理身份验证的最佳方式.

具体问题:

>我们如何处理加密和非加密通信?显然,我们需要使用HTTPS进行登录,帐户和结帐AJAX,但是我们希望使用HTTP浏览目录,以避免昂贵的SSL握手,从而减慢整个网站的浪费.这甚至可能是SPA,还是我们坚持HTTPS的一切?
>我们应该使用什么样的认证?首先我们的网站将通过网络浏览器访问,所以cookies可能会很好.但在路上,我们可能想制作一个定制的iPhone应用程序.是基本认证,OpenId还是OAUTH?如果是这样,为什么?

>如果我们与Forms Auth和cookies一起去,那么redirect issue是否修复了MVC 4的发布,还是要使用haack?
>如果我们使用基本身份验证,您如何执行持久性会话,以便用户不必每次再次访问该页面登录.
>哪些身份验证方法得到ASP.NET MVC 4的良好支持.理想的是不必编写大量专门的代码.

提前致谢

解决方法

1.我们如何处理加密和非加密通信?我们是否坚持使用一个协议https,一个spa?

你没有坚持一个协议.使用水疗中心,您可以使用ajax通过http或https进行通信,无论您在任何时候选择哪一个.我会随时使用https,发送敏感信息,如姓名或其出生日期或登录凭据.

一旦用户通过https登录到您的站点,那么您的服务器可以为该用户设置一个表单验证cookie.该cookie应该是将其会话与服务器相关联的加密值.您必须注意,如果您的网站的其余部分使用http,那么您有风险以纯文本形式传递该cookie.即使cookie的内容可以加密,使用您选择的加密算法,恶意人员可以窃取此cookie并插入用户的会话.

这可能不是一件大事,但如果只允许浏览网站并创建购物车.一旦用户准备好检出,那么您应该重新认证用户,通过https,作为一种双重检查,以确保它们不是恶意用户.亚马逊做这个

我们应该使用什么样的认证?

那么这就是你希望你的网站有什么功能的问题.

OAuth用于公开Web服务,您可以允许其他站点通过委派访问进行调用.这意味着,如果您有一个用户想要另一个站点(站点x)能够访问您网站上的功能以用于其配置文件.站点x可以将用户重定向到您站点上的oauth端点,该端点将验证用户.您的oauth端点会询问用户是否可以将某些功能站点x共享,并且如果用户同意令牌将被生成.用户将此令牌传递到站点x,其中站点x将使服务器到服务器对您的站点进行调用.站点x将在呼叫中呈现令牌,因此对您的服务的呼叫将是委派的访问调用. OAuth是一种配置其他站点以使委托访问您的服务的方式.我希望我能够清楚地解释这一点..我并不总是这样.

OpenID不是一种非常安全的方式来处理身份验证,更方便用户,无需在您的网站上注册一个帐户.由于OpenID完全开放,您信任另一个提供商来验证您的用户.如果第三方提供商的用户商店遭到入侵,那么您的用户也遭到入侵.这是一个凭证系统的例子,您基本上会说我会信任您说的是,如果您可以为您提供OpenID提供商.

另一个解决方案是WS-Federation. WS-Federation如果您有多个站点,并且希望拥有您信任的1个身份验证提供程序.这个认证提供商可以是你的,基本上你所有的网站都说如果你想要访问我的网站,那么你必须先验证我的认证提供商.此认证提供程序可以生活在一个单独的域上,并可以选择其选择的任何身份验证机制.您相信此认证服务提供商将尽最大努力管理您的用户帐户.

如果您只想要在您的网站上进行身份验证,并且没有多个网站,那么WS-Federation可能会被杀死.在这种情况下,我只是建议进行表单验证,这应该很简单.有很多例子,如何做到这一点,微软提供了许多解决方案如何做到这一点.您应该研究创建一个自定义会员提供程序.

一旦用户对您的站点进行了身份验证,您应该创建一个forms authentication cookie.该cookie将用户与服务器上的会话相关联.这适用于上述所有情况. MVC 4也支持上述所有情况.

谢谢,如果我不够清楚,请随时问更多的问题.

原文链接:https://www.f2er.com/aspnet/249903.html

猜你在找的asp.Net相关文章