0

我们目前正在研究基于声明的身份验证,并使用 WIF 测试自定义 STS。

我们一直在讨论如何在数据库中存储声明。在许多简单示例中,声明作为简单属性存储在具有用户 FK 的单个表(例如 UserProfile)中。然后生成声明,声明类型是 URL 加上列名(例如http://.../claims/email),值当然是数据库中的值。

但我需要更复杂的例子。你能分享一些在数据库中存储索赔的方法吗?我在想一个包含所有声明类型的表,以及一个包含每个用户的值的表(对用户有一个 FK)。但我们真的需要一些灵感。因此,您可以分享的任何内容将不胜感激。但同样,这是一个非常“扁平”的结构......

更新

我试图制作一个简单的模型:http: //imageshack.us/photo/my-images/690/suggestionn.png/

抱歉,还不能发图片。

我认为这对于简单的索赔很有用。但是,如果我有我所谓的“嵌套声明”怎么办。假设声明类型描述了用户具有描述他对声明类型“文档”的资源“人员”的权利的声明。这可以使用该模型进行描述,但是如果我们想进一步描述该声明怎么办。假设用户对资源“人员”具有 5 级访问权限。我看不出这怎么可能。有任何想法吗?

4

1 回答 1

0

您可能需要考虑两件事:

不同的信赖方 (RP) 可以为同一用户生成不同的索赔组。因此,您需要一个链接到声明类型的 RP 表。

(注意:您可以通过 wtrealm 参数区分哪个 RP)。

此外,声明类型可以是一对多的。如果有一个类型 .../claims/groups 并且一个用户属于多个组,那么这个声明类型将会有多个实例。

您是否查看过Identity Server是如何实现这一点的?它使用 SQL 数据库。

于 2011-11-23T21:10:28.253 回答