【问题标题】:WCF Security across multiple services跨多个服务的 WCF 安全性
【发布时间】:2012-07-07 09:11:15
【问题描述】:

我们正在从旧的 .NET 1.1 远程系统迁移到 .NET 4.0 WCF 架构。系统的一部分是一个桌面客户端应用程序,我们使用它来调用位于我们中间层的 300 多个函数。

我们正在将这些远程功能整合到 9 个服务中,但需要一种很好的方法来验证用户是否在任何其他后续 WCF 调用之前首先执行了“登录”功能。

由于登录只发生在其中一项服务上,我不确定是否有办法在这些服务之间“联合”它。 (所有都托管在同一台机器上,同一个域。)我们通过 net.tcp 公开服务,目的是从长远来看也允许外部客户端的 wshttp 绑定。 (不确定我是否会通过不同的绑定获得额外的东西,这可能会有所帮助)

我想出的是托管一个包含身份验证信息的单例。当验证用户登录并将其提交到“安全存储”时,我们将 Guid 返回给客户端以与后续 WCF 调用一起发送。

然后每个 WCF 调用都将针对单例“安全存储”进行验证。

所以问题是...我可以使用 WCF 原生的东西来实现同样的目标吗?

【问题讨论】:

  • 既然您想使用基于自定义令牌的身份验证,请在此处查看我的回答,它几乎涵盖了您的问题:stackoverflow.com/questions/11349539/…
  • 你现在认证什么?
  • 我们使用自定义类对数据库使用盐和哈希。但这给了我一个想法,我们可能想要走用户凭证路线。即使安全性决定我们需要做一个令牌,我们也可以将该令牌作为用户凭据上的“密码”传递。我希望找到一种方法,不要一遍又一遍地返回数据存储,但这会奏效。 (但如果它成为性能问题,我们可以将其存储在我们的“缓存”单例中。)谢谢!
  • 为什么不使用 9 种方法的 1 个服务,并将哈希实现到 DB 作为自定义 MemberShip 服务身份验证。

标签: .net wcf security


【解决方案1】:

此表有助于安全绑定

关于安全性,wcf 有几种类型的 auth, SecurityMode

问详细点,wcf 中的安全性是个大话题

【讨论】:

  • 具体来说,我们今天仍然需要能够针对我们数据库上的自定义验证进行身份验证。我们使用自定义 .net 类使用 salt 和 hash。问题是我们需要强制登录成为第一个调用,但没有我们可以通过单一服务获得的“启动”和“停止”的好处。
猜你喜欢
  • 2012-02-13
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多