.NET 4.5索赔身份模型

.NET 4.5索赔身份模型,.net,.net-4.5,wif,claims-based-identity,.net,.net 4.5,Wif,Claims Based Identity,我们有两个ASP.NETWeb应用程序位于不同的服务器上。我们组织中的所有身份验证都是通过针对Active Directory的Windows身份验证完成的,因此web应用程序本身中没有用户名和密码身份验证 我们希望使用基于声明的授权,并让这两个web应用程序共享关于给定用户声明的信息 我正在想办法解决这个问题 我们有ADFS 2.0,我知道我可以使用它设置联合身份验证……但是我的广告用户的声明应该存储在哪里,如何进行水合和共享。在认证后,声明本身是否会变成cookie 具体而言,场景应如下所示

我们有两个ASP.NETWeb应用程序位于不同的服务器上。我们组织中的所有身份验证都是通过针对Active Directory的Windows身份验证完成的,因此web应用程序本身中没有用户名和密码身份验证

我们希望使用基于声明的授权,并让这两个web应用程序共享关于给定用户声明的信息

我正在想办法解决这个问题

我们有ADFS 2.0,我知道我可以使用它设置联合身份验证……但是我的广告用户的声明应该存储在哪里,如何进行水合和共享。在认证后,声明本身是否会变成cookie

具体而言,场景应如下所示:

  • 用户导航到web应用程序1
  • 业务决策是根据ClaimsPrincipal的授权决策索赔单作出的
  • Web应用1重定向到Web应用2(或稍后直接导航到该位置)
  • 业务决策是基于相同的授权决策请求类型的值做出的
  • 为什么??因为web app 1和web app 2都从第三方数据源中提取一些公共数据,而且它们都需要知道用户是否有权查看该第三方数据中的某些实体类型

索赔是从商店填写的。ADFS的默认存储是AD。ADFS可以从AD属性和/或自定义属性存储获取授权决策的内容:Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.IATributTestore。这将为配置和管理提供一个中心位置

这些应用程序还可以查询自身并添加到声明中。索赔框架的不同版本具有略微不同的接口。是的,应用程序将其声明存储在cookie中(每个应用程序都有自己的cookie)。除非您想要更小的cookie,否则cookie只包含一个引用。在这个应用程序“声明充实”场景中,每个应用程序都需要逻辑


这两种方案都有优点和缺点。

是的,声明存储在auth cookie中。那么ADFS(STS)是否创建auth cookie呢?如果是这样的话,我如何才能将自定义索赔纳入其中?建议在什么地方存放?谢谢。您可以使用katana的AuthenticationManager创建声明并将其添加到cookie中。我只使用表单auth的声明,我不知道广告。也许会对你有所帮助