客户端认证和授权(我可以和[如何]我应该这样做)

问题描述:

我有一个外部网站使用活动目录身份验证。所提议的设计将具有由应用数据库服务器完成的所有Athor化。例如,用户将使用用户名和密码,corperate人登录验证对AD。然后我会得到该用户名和人若看见的安全漏洞阻止我在这里查询他们被允许看/做我的应用程序,数据库(整个网站的一个小部分)客户端认证和授权(我可以和[如何]我应该这样做)

用户被允许访问我的网页上的一些东西没有被认证。(不喜欢它,但它是一个楼内设有商务需求量的),但是,当人们来到我的网页没有被认证我想很好地请他们通过JQuery弹出窗口验证。类似$ .load(coperatelogon.aspx,#logondiv).dialog()为未登录的用户加载我的页面之后。如果他们点击X并且无法登录,那很好。他们只是看到那些不熟悉的人的页面。

如果他们这样做通过此对话框验证我想通过客户端代码将页面内容更改为其他内容。我想根据他们只是提供了认证做soemthing喜欢做一个Web服务调用(通过JQuery AJAX)。这个web服务调用将会看到他们授权基于此来查看和显示一些内容。

是否有seciruty缺陷吗?我应该做些稍微不同的事情来避免安全缺陷?

我的目标是回传少possable和使用尽可能多的jQuery和JavaScript作为possable;并尽可能接近零时间回传,为用户提供平滑愉快的体验。

我在这个早期设计阶段和我非常开放一些想法segestions recomondations或者只是人我大喊大叫,告诉我这是一个坏主意...等

谢谢!

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

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

如果你问是否有在试图做的一切客户端固有的安全漏洞,答案是肯定的。如果您的身份验证(保护)内容传递给客户端,然后客户端代码负责决定是否显示它,则无法防止未经授权的人员弄清楚如何显示您试图隐藏的内容。

仅限于确保未授权方不会看到您不希望他们看到的内容的方法是在服务器端保留所有安全数据,直到它们通过身份验证。否则,在我找到混淆函数的“关键”并欺骗它显示你宁愿看不到的东西之前,这只是时间和持久性的问题。

+0

好吧,所以我正在寻找两件事。首先是你在说什么。然而,如果我通过web服务调用获取所有数据呢?说使用$ .load(获取数据?第二件事是我可以安全地获得认证的用户名到web服务?我会编辑我的问题是清楚的 – kralco626 2010-11-02 19:49:38