我们正在为客户开发一套Windows应用程序,需要添加一个安全模块。基本需求相当简单:
用于返回权限列表的函数:
string[] AllowedApplications = Security.GetList("Applications");
string[] AllowedMenusAndButtons = Security.GetList("Functions");
//In General:
string[] AllowedObjects = Security.GetList(<ObjectType>);
通过允许的应用程序,我们决定当前用户是否可以启动应用程序,以及AllowedMenusAndButtons,我们决定启用哪些按钮/菜单。 AllowedObjects将用于对象的行级安全性。
对于管理权限,我们只需要简单的GUI,允许用户组合在一起,并将权限分配给用户或组。
LDAP是否适合这些要求,或者是否会产生过多的开销。是否有我们可以使用的另一个框架,或者我们最好自己开发它?
答案 0 :(得分:0)
很大程度上取决于您拥有多少用户,除了权限管理之外,您是否预见到需要更多此类属性才能在后期进行管理?
如果没有大量用户,可以使用简单的XML,并且可以使用XPATH查询轻松操作XML。对于大量用户,LDAP听起来是可行的。
顺便说一句,我很想知道AllowedMenusAndButtons是否会用于“显示”对特定用户有效的菜单?如果是这样,我希望您将在服务器级别为这些菜单执行授权。常见的安全漏洞是仅显示适用的菜单,并将其视为授权。我不确定AllowedObjects是否是服务器级授权,如果是,那么你们都很好。