我们目前正在研究基于声明的身份验证,并使用WIF测试自定义STS。将声明存储在数据库中 - 模式建议?
我们一直在讨论如何在数据库中存储索赔。 在很多简单的例子中,权利要求作为简单的属性存储在一个单一的表格(例如UserProfile)中,该表格具有FK给用户。 然后生成声明,声明类型是URL加上列名称(例如http://.../claims/email),该值当然是数据库中的值。
但我需要更复杂的例子。你可以分享一些在数据库中存储声明的方法吗? 我想到的东西就像一个包含所有声明类型的表,以及一个包含每个用户值的表(包含用户的FK)。但我们真的需要一些灵感。因此,任何你可以分享的东西都将非常感激。 但同样,这是一个很“平”的结构......
更新
我试图做一个简单的模型:http://imageshack.us/photo/my-images/690/suggestionn.png/
对不起,斜面发表图片呢。
我认为这对简单的声明很好。但是如果我有我称之为“嵌套索赔”的话。 可以说,声明类型描述了用户有权声明描述他对权利要求类型“文档”的资源“人员”的权利。 可以使用该模型进行描述,但如果我们想进一步描述该声明,该怎么办。假设用户对资源“人员”具有访问权限级别5。我看不出这是怎么可能的。有任何想法吗?
索赔是一个平面结构。它们不能嵌套。因此,索赔将是.../Personnel/1或.../Personnel/5(即两个不同的索赔)。最终,它只是一个你在RP端解析的字符串。 – nzpcmad
或者您可以创建一个复杂的类型并将其序列化,如下所示:http://msdn.microsoft.com/en-us/library/ms734687.aspx。你对这种方法有什么看法? – Kirk
这是围绕序列化构建的WCF。我不知道STS功能可以让你像这样通过索赔。您可以在RP端创建复杂的对象ala http://www.syfuhs.net/post/2011/11/12/Strongly-Typed-Claims.aspx – nzpcmad