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

Suj*_*air 13 wcf claims-based-identity role-based simplemembership

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

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

任何人都可以向我提供一些解释,以便我能理解基于声明的身份验证并与我的应用程序一起使用吗?

lea*_*ege 8

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

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

角色也是声明(具有固定的真/假值) - 声明只是给你更多的表达性与键/值对.


ste*_*enl 6

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

  1. 为您的服务提供一致的编程模型 - 您不需要知道如何实现特定的安全机制,一个站点可能使用用户名和密码身份验证/授权,另一个站点可能使用另一个Active Directory.您的服务无论如何都不关心,因为您所做的只是在所有实例中处理声明.

  2. 您不需要关心自己的安全实现.这是由第三方完成的.

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

  4. 可互换 - 因为声明[格式]基于标准,它们在不同语言和域的服务之间变得更加可互操作,因为抽象的基础技术被抽象化.

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

索赔要比我在这里写的要多得多,而且我敢肯定会有其他人有其他理由为什么考虑索赔可能是一件好事.

希望这可以帮助.