AngularJs Web服务用户帐户

时间:2016-01-09 18:05:30

标签: angularjs web-services azure authentication asp.net-web-api

我已经构建了一个基于Azure的Web应用程序。我有一个web api服务作为后端,angularjs作为Azure的前端hostet。

我想创建一个包含个人用户帐户的登录页面。经过一些阅读后,我发现了不同的用户身份验证策略。有些人使用SQL数据库来管理用户帐户。有些使用Azure Active Directory。当我必须使用Azure AD和SQL数据库?

2 个答案:

答案 0 :(得分:1)

我的意见是比较你将获得的好处

Azure AD:

https://azure.microsoft.com/en-us/documentation/articles/active-directory-whatis/

  

对于IT管理员,Azure AD提供了经济实惠且易于使用的解决方案   为员工和业务合作伙伴提供单点登录(SSO)访问权限   成千上万的云SaaS应用程序,如Office365,Salesforce.com,   DropBox和Concur。

     

对于应用程序开发人员,Azure AD可让您专注于构建您的   应用程序使其快速简单地与世界集成   数百万组织使用的类身份管理解决方案   世界各地。

     

Azure AD还包括一整套身份管理   功能包括多因素身份验证,设备   注册,自助密码管理,自助服务组   管理,特权帐户管理,基于角色的访问控制,   应用程序使用监控,丰富的审计和安全监控   和警报。这些功能有助于保护基于云的安全   应用程序,简化IT流程,降低成本并帮助确保   公司合规目标得以实现。

使用您的数据库自行完成,您必须自己完成所有操作,例如使用Office365进行SSO

所以你必须问自己你的应用程序做了什么?并选择适合您需求的方法

答案 1 :(得分:1)

在SQL中管理自己的用户帐户的应用程序称为基于表单的身份验证。这是大多数互联网应用程序的工作方式,但它带来了许多缺点。

用户必须记住每个站点的密码,但经常在多个站点重用密码。如果一个网站遭到入侵并且密码数据库很多,那么其他网站上的用户帐户可能会受到损害。

为了防止这种情况,网站必须确保他们正确存储密码(使用慢速算法进行盐水和散列)并应用其他类型的操作安全性来保护数据库。

然后出现了基于令牌的身份验证,允许应用程序将身份验证部分委派给外部第三方。这允许用户使用相同的用户名和密码登录多个应用程序。

大多数第三方登录提供商(如Google,Microsoft,Facebook等)都有专家从事这些服务,因此比您自己制作的任何内容都更安全。

因此,除非您有充分的理由不这样做,否则我建议您使用第三方登录提供商,例如Azure AD和其他人。