13

我是基于声明的身份验证的新手。我已经阅读了几篇文章,无法弄清楚基于声明的身份验证的确切用途。以下是我对基于声明的身份验证的一些疑问。

  1. 我想知道基于声明的身份验证与基于角色的身份验证有什么区别和优势。
  2. 我们可以使用基于声明的身份验证而不是 ADFS 连接到 Sql Server 2008 R2 吗?如果,那怎么办?
  3. 在 WCF 中使用基于声明的身份验证的优势?

谁能给我一些解释,以便我可以理解基于声明的身份验证并与我的应用程序一起使用?

4

2 回答 2

8

此外 - 声明与身份验证无关。

没有基于声明或基于角色的身份验证之类的东西。它是关于以您的应用程序可以使用的方式对身份进行建模。

角色也是声明(具有固定的真/假值) - 声明只是为您提供键/值对的更多表现力。

于 2012-12-27T11:35:47.657 回答
6

最终,使用声明的主要好处包括:

  1. 为您的服务提供一致的编程模型 - 您不需要知道如何实现特定的安全机制,一个站点可能使用用户名和密码身份验证/授权,另一个站点可能使用 Active Directory。您的服务并不关心任何一种方式,因为您所做的只是在所有情况下处理索赔。

  2. 您无需担心安全实施。这是由第三方完成的。

  3. 您可以自定义声明以适合您的域,并将它们视为授权逻辑的扩展 - 标准安全属性通常只为您提供角色等基本信息。你当然可以扩展它,但是你做更多的工作并且通常很难实现(例如,扩展 AD 通常不是技术挑战而是策略约束 - 管理员不愿意修改 AD 架构以适应特定的应用程序)。

  4. 可互操作 - 因为声明 [格式] 基于标准,因此随着安全性的底层技术被抽象化,它们在不同语言和领域的服务之间变得更加可互操作。

如果您正在创建新的 .NET 4.5 WCF 服务,您已经可以开始使用声明,因为命名空间与早期的安全实现向后兼容,因此即使您现在确实决定声明不适合您,您也可以更好地升级之后。

索赔的内容比我在这里可以写的要多得多,我相信还有其他人有额外的理由考虑索赔可能是一件好事。

希望这可以帮助。

于 2012-12-27T06:59:39.067 回答