为何基于声明的身份验证而不是基于角色的身

时间:2012-12-27 06:02:28

标签: wcf claims-based-identity simplemembership role-based

我是基于声明身份验证的新手。我已经完成了几个aricles,无法弄清楚基于声明的身份验证的确切用法。以下是我对基于声明的身份验证的一些疑问。

  1. 我想知道基于角色的身份验证声明的区别和优势是什么。
  2. 我们可以使用基于声明的身份验证而不是ADFS连接到Sql Server 2008 R2吗?如果,那怎么样?
  3. 在WCF中使用基于声明的身份验证的优势?
  4. 任何人都可以向我提供一些解释,以便我能理解基于声明的身份验证并与我的应用程序一起使用吗?

2 个答案:

答案 0 :(得分:8)

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

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

角色也是声明(具有固定的真/假值) - 声明只会让您更具表现力/键值。

答案 1 :(得分:6)

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

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

  2. 您无需担心自己的安全问题 实现。这是由第三方完成的。

  3. 您可以自定义适合您所在域的声明,并将其视为一个 扩展到授权逻辑 - 标准安全属性 通常只为您提供角色等基本信息。 你当然可以扩展这个,但是你做了更多的工作 通常很难实现(例如,扩展AD通常不是技术挑战,而是政策限制 - 管理员不愿意修改AD模式以适应特定的应用程序。)

  4. Interopable - 因为声明[格式]基于标准,它们在不同语言和域的服务之间变得更加可互操作,因为提取了安全性的基础技术。

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

    除了我在这里写的声明之外还有更多的要求,我相信还有其他人会有其他理由为什么考虑索赔可能是一件好事。

    希望这有帮助。