2016-12-05 70 views
0

我的任务是在前端Javascript应用程序上创建LDAP验证。POST调用以验证用户到前端应用程序

我时间非常有限,并且有一个非常小的工具集。该工具集是前端JavaScript应用程序和一个可用的C#应用​​程序,我可以发布并获取请求。

我在想我可以简单地拨打电话,如https://mybackend.com/authenticate 我在哪里发布用户名和密码。

而在后端,这将返回用户是否在AD中有效。然后我可以在前端使用,以确保用户已登录。

此方法极其不安全或存在缺陷吗?我在想,如果我发布到后端,上面没有多少内容会暴露。

任何提示将非常有帮助。

+0

由于您是AD的Windows商店,您还可以考虑在oAuth2中使用ADFS。然后,您需要将用户重定向到登录屏幕,而不是自己接收用户名/密码。另一方面,您不必担心自己的Web应用程序处理密码或与AD交谈。 http://blog.scottlogic.com/2015/03/09/OAUTH2-Authentication-with-ADFS-3.0.html – gnud

+0

如果我有能力使用后端节点,这里没有问题! – Xogle

回答

1

此方法极其不安全或有缺陷吗?

这不是不安全的,这是你做这件事的正常方法。通过添加CSRF令牌可以增加更多的安全性,这将在服务器上进行任何表单提交验证。

是的,你应该通过HTTPS发送所有的数据,这将加密有效载荷。

+0

谢谢,在接受这个之前,会等待更多的回复。 – Xogle

0

所有的方法都是不安全的。 特别是没有HTTPS。

但是,您可以将认证置于消息头中,并使用由服务器知道的密钥生成令牌。

+0

它将是HTTPS。如果有人试图通过HTTP进行身份验证,我会觉得他们很糟糕。;) – Xogle

1

你在做什么对于像Angular这样的前端JavaScript框架来说是正常的。只要你使用HTTPS,你应该没问题。

唯一的问题是你将如何处理后续页面请求。 有两种方法来处理它 -

  1. 最简单的方法就是使用ASP.Net MVC作为登录页面,并使用Cookie的Owin中间件。由于同一个cookie在API调用中被发送回服务器,因此不需要做任何额外的工作。你可以下载my sample code at GitHub - OwinAuthenticationService

  2. 另一种方法是使用承载令牌,在这种情况下,您必须在每个页面请求中将相同的令牌发送回服务器。

+0

但我只需要进行身份验证,然后我完成了服务器。所以理论上我不会有后续的页面请求。对? – Xogle

+0

答案是否定的。 HTTP是***无国籍***。这意味着您将不得不以某种方式发回选项1或2中的授权。 – Win

+0

该应用程序是一个传呼机。没有路由和1个简单的任务。验证用户并执行1个功能(发送电子邮件)。就这些。 – Xogle

相关问题