0

我目前正在使用的应用程序是一个巨大的使用传统Windows身份验证模型的ASP.NET MVC Web应用程序。我们正在尝试使用Identity Server 3和Open ID Connect迁移到Single Sign On模型。使用Identity Server 3提供对用户组的访问

回到我的问题,是否有任何方法/解决使用身份服务器时在用户组的基础上提供访问?这里的问题是我的用户组可能是基于角色或活动目录组。我正在寻找像InMemoryGroup(类似于InMemoryUser)的东西。

东西模拟了以下一组用户,可以是基于角色或不:

​​

我是比较新的身份Server和Open ID连接并不能在网上找到的任何东西,会真的很感谢任何线索。

回答

1

为了表示用户是组的成员,您只需添加索赔。您可以添加:

new Claim("Group", "Hogwarts Student") 

给您的内存用户。声称表明Harry是“Hogwarts学生”组的成员。在这里有一些你想要知道的事情。被调用的构造函数是:

new Claim(string claimType, string claimValue) 

那里Identity Server在Constants类中提供了一些标准类,但您可以自己组建。此外,您还可以有多个组声明,所以你可以有

new Claim("Group", "Hogwarts Student"), 
new Claim("Group", "Gryffindor House) 

如果你想看看哈利是“格兰芬多之家”组中,你只是通过搜索为索赔清单,其中要求类型等于“集团”,而索赔价值等于“格兰芬多之家”。

最后,组与角色之间的区别通常更多的是应用程序语义问题,即它们存储方式的物理差异。通常,可以为应用程序执行“管理员”角色的用户组只是一组用户。这是应用程序处理使组成用户角色的组的用户的方式。

+0

作品在我的使用案例:)接受为答案 –

相关问题