2012-12-27 129 views
13

我是新的基于声明的身份验证。我已经经历了几个Aricles,并且无法弄清楚基于索赔的身份验证的确切用法。这里有一些关于基于声明的认证的疑问。为什么声称基于身份验证,而不是基于角色的身份验证

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

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

+1

一般来说,http://stackoverflow.com/q/6786887/223837的答案可能会有所帮助。请注意,安全令牌可以包含声明“此用户具有角色R”,然后应用程序可以使用该声明来执行基于角色的授权_。 –

回答

6

最终使用要求的主要优势包括:

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

  2. 你不需要关心你的自我与安全 实施。这由第三方完成。

  3. 可以自定义要求,以满足您的域名,并把它们作为一个 扩展您的授权逻辑 - 标准的安全性能 通常只提供你只用基本信息,如角色。 你当然可以扩展这个,但是你做了更多的工作,并且通常很难实现(例如,扩展AD往往不是一个技术挑战,而是一个政策约束 - 管理员不愿意修改AD模式来适应特定应用程序)。

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

如果要创建新的.NET 4.5 WCF服务,您已经可以开始使用的权利要求书的命名空间与早期的安全实现向后兼容,所以即使你没有决定的权利要求是不适合你了,你会稍后可以升级。

声称还有很多比我可以写在这里,我敢肯定会有其他人有其他原因为什么考虑索赔可能是一件好事。

希望这会有所帮助。

+0

嗨斯蒂芬,谢谢你的帮助。我有一个疑问。是否可以使用基于声明的身份验证而不是ADFS连接到Sql Server 2008 R2?你能告诉这个更多一点吗? –

+0

ADFS2将使用几乎任何数据源而不是管理认证/授权(SQL Server,AD,XML ...)。对ADFS2的搜索将提供更多细节。无论哪种方式,执行这样的事情都需要一点规划,最可能的是需要系统管理员参与。 – stephenl

+0

@stephenl这并非完全正确:AD FS 2.0仅对Active Directory进行身份验证(请参阅http://stackoverflow.com/a/4938662/223837),但它可以从很多来源获取声明。 –

7

此外 - 声明与认证无关。

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

角色也是索赔(具有固定的真/假值) - 索赔只是给你更多的关键/值对的表现力。