我已经构建了一个基于Azure的Web应用程序。我有一个web api服务作为后端,angularjs作为Azure的前端hostet。
我想创建一个包含个人用户帐户的登录页面。经过一些阅读后,我发现了不同的用户身份验证策略。有些人使用SQL数据库来管理用户帐户。有些使用Azure Active Directory。当我必须使用Azure AD和SQL数据库?
答案 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和其他人。