客户端身份验证和授权(我可以和[如何]这样做)

时间:2010-11-02 19:20:51

标签: jquery web-services security authentication active-directory

我有一个外部网站,使用 Active Directory 进行身份验证。所提出的设计将由应用程序数据库服务器完成所有 Athorization 。例如,用户将使用用户名和密码登录,并且 AD 的人员验证。然后我会获取该用户名并查询该数据库,以了解他们在我的应用程序中可以看到/执行的操作(整个站点的一小部分)

如果有人发现安全漏洞,请阻止我。

允许用户访问我网页上的某些内容,而无需进行身份验证。(不喜欢它但是这是商务要求)然而当人们来到我的网页时却没有认证我想很好地让他们用JQuery弹出窗口验证。类似于$ .load(coperatelogon.aspx,#logondiv).dialog()在为未登录的人加载我的页面之后。如果他们点击X并且没有登录就好了。他们只是看到了未登记的人的页面。

如果他们通过此对话框进行身份验证,我想通过客户端代码将页面内容更改为其他内容。我想这样做就像基于他们刚刚提供的身份验证进行web服务调用(通过JQuery ajax)。此网络服务电话会看到他们授权以查看和显示基于此内容的内容。

这里有缺陷吗?我应该做些什么来避免一个安全的缺陷?

我的目标是尽可能少地回发并使用尽可能多的jquery和javascript;并且回发尽可能接近零,以便为用户提供流畅和愉快的体验。

我现在处于早期设计阶段,并且非常开放对于创意提示或者只是那些人对我大吼大叫并告诉我这是一个坏主意......等等。

谢谢!

编辑: 所以归结为一个主要问题: 如何通过$ .ajax(...)调用webservice来知道用户被认证为谁?客户是否传递此信息?是否可以被黑客干扰? 并使用$ .load(...)来显示安全登录框的安全性吗?

2 个答案:

答案 0 :(得分:0)

如果您在询问是否存在尝试执行客户端方面的固有安全漏洞,则答案是肯定的。如果经过身份验证(受保护)的内容传递给客户端,然后客户端代码负责决定是否显示它,则无法阻止未经授权的方查明如何显示您试图隐藏的内容。

方式可确保未经授权的人员看不到您不希望他们看到的内容,即在经过身份验证之前保留所有安全数据服务器端。否则,在我找到你的混淆函数的“关键”并诱骗它显示你不想看到的东西之前,这只是时间和持久性的问题。

答案 1 :(得分:0)

简短的回答是肯定的,网络服务可以安全地告诉谁在拨打电话。