1

我正在为一家公司编写业务线软件,我们希望对用户进行身份验证,以便我们可以管理工作流程并进行一些审核。基本上,由于某些网络限制,我的雇主不希望我背负 Windows 身份验证(我真的不想进入它,但它混合了糟糕的网络设置和老板想知道是否有其他方法做它)

我正在使用 c#、wpf、MVVM、PRISM

我读过一些关于散列密码、加盐等的内容,我读得越多,我意识到我真的不应该写这个程序的安全部分,因为我基本上是合格的 faaaaaar。

Eric Lippert 对安全性有一个非常好的基本介绍,他在其中一开始就警告读者不要设计自己的安全系统,因为你知道的不够多。

我想知道,有什么替代品?

既然我不应该自己写,我想知道我应该从哪里得到它?

我是否聘请安全专家来编写它?

是否有我应该与之交互的第三方安全程序?

我是否将设计外包但自己实施?

谁是我应该关注的这个行业的大玩家?

(我在 IT Security Exchange 上创建了这个问题,但我想知道 SO 有什么要说的,因为它正在编程)


编辑

为了回答人们在那里提出的一些问题,我对我的IT 安全交换问题进行了一些调整。如果您想了解更多信息,请查看它。

4

3 回答 3

1

我认为您应该看看远程安全性-即使您不打算使用远程处理,原则也很好。请参阅.NET Remoting Security Solution Part I“.NET Remoting Security Solution Part II。这可以帮助您构建 SSO(单点登录)解决方案。或者要求用户使用 Windows 内置凭据框重新输入密码:显示Windows Vista/7 的 C# 中的身份验证对话框

于 2012-05-23T08:35:21.970 回答
1

警告:一些无耻的自我推销包括在以下内容中:

听起来您正在寻找的是标准许可证管理,适用于 SaaS 类型的应用程序或桌面。您正在寻找的基本功能是创建和管理用户列表并让应用程序自动遵循该列表。根据应用程序对内部业务流程的机密性或重要性,您可能需要考虑您的具体要求。

一旦您开始控制访问(对任何事物),就会产生令人不快的潜在后果:要么阻止合法用户访问,要么允许非法用户访问的安全漏洞(例如,一个简单的命名用户/密码挑战和响应系统允许用于帐户共享——有意或无意)。

如果您尝试进行审计​​,您需要知道系统足够可靠以提供准确的数据。

我们公司提供出色的许可证管理解决方案;还有其他选择。一个好的系统应该(一旦设置和集成)允许您轻松地为单个用户或组设置业务规则——例如,也许您希望允许一组 20 人在任何时候运行 5 个应用程序实例,但是不是 6. 或者您可能想为临时用户提供一个在特定日期到期的临时帐户。自己滚动这些功能可能很困难,但一个好的 LM 系统应该让它完全不费力。

我向您保证,使用可靠的第 3 方解决方案(短期和长期)将比构建和维护自己的代码更便宜。

于 2012-05-23T16:27:19.697 回答
0

我想我们现在已经解决了这个问题。SteveS我的 IT 安全交换问题上发布了一个关于使用 WCF、WIF 和 ASP.NET 成员资格提供程序的好主意。这并不理想,因为我将编写一些代码,所以它会很不安全。

然而,它似乎是最好的选择,因为它利用了 Microsoft 构建的安全技术,而我只是将它们缝合在一起。

我只是担心接缝。

于 2012-05-25T12:58:55.617 回答