桌面 .net 应用程序的 LDAP/AD 集成:有意义吗?

LDAP / AD integration for desktop .net application: does it make sense?

我有一位客户要求将 Windows 的 LDAP/AD 登录与桌面 .NET 应用程序集成。它是一个桌面 .NET 应用程序,这意味着它不是一个可公开访问的网页:它是一个带有 GUI 的可执行文件,将 运行 作为 Windows 下的程序(而不是服务)在本地复制到计算机上。

客户要求这样做是为了安全起见。当您打开应用程序时,您输入用户名和密码并使用 LDAP 进行身份验证检查。 我真的不明白这应该保护什么安全风险:

我问过客户的联系方式,他的回答基本都是"because it's company policy"所以我觉得他也不是很懂。 你能想出你想要这个的原因吗?它保护的安全风险是什么?

这是有道理的,前提是您的桌面应用程序用于进行审批。我使用过许多应用程序(例如:变更管理应用程序),这些应用程序要求您在使用前和每次批准后登录。

这种用户身份验证和授权变得至关重要,特别是如果您的客户必须是 FDA / GxP Compliant (21 CFR Part 11.10) [Search here 术语 'Digital'],这强调软件应注意确保此人需要针对有效来源进行身份验证。这可以是 AD 身份验证、SMART 卡等...

我不打算详细介绍 LDAP 身份验证与 MySQL 的比较,为什么 LDAP 更具可扩展性、速度更快,为什么 RDBMS 不在此处。我只是给你一个大概的想法。

首先,如果答案 "because it's company policy" 那么我可以向你保证你不会赢,因为这是陈词滥调。当人们对自己想要什么以及万事通先生告诉他们的内容知之甚少时,您经常会得到这样的答案!

只有用户正确使用,开发者正确开发,应用才是安全的。

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning — Rich Cook.

回到你的问题,LDAP 身份验证提供了一些常见的安全性(我开发了一些 LDAP 身份验证应用程序,它们都是相同的,因为过程总是相同的)。在一个地方保留和管理帐户的主要原因,仅此而已。它可以称为安全和公司政策。我认为他们更关心下面两个步骤。

  • John 加入公司,IT 经理在 AD 中创建了他的电子邮件帐户, 将他分配给一些 OU(组织单位)。约翰使用该应用程序,但 他只能根据他的 OU 使用应用的某些功能 来自 LDAP auth(一大套array/object)。安全级别是 像那样定义。
  • John 离开公司,IT 经理 disables/deleted 他的帐户在 AD 和 John 无法再登录系统。系统自动 这样安全。

使应用程序在桌面环境中可用可能有其背后的安全原因,但与 LDAP 无关,因此它只是 "policy"。