从Thinktecture Identity Server获取详细的用户成员资格信息

时间:2014-05-09 17:42:56

标签: thinktecture-ident-server

我在某些应用中使用了Thinktecture Identity Server进行SSO。该想法是帐户信息将存储在服务器中的索赔信息中。因此,SSO服务器上可以存在组用户成员资格和其他层次结构。然后,当某人通过身份验证时,他们会通过索赔传递其成员资格和权利。

我的问题是我的身份验证订阅者如何执行user.memberOf(x)种查找?我无法想象整个权限层次结构在用户声明中传递下来。我想可以对像LDAP这样的服务器上的登录执行额外的查询。这对Thinktecture有什么用?对于其他SSO服务器,它通常是一样的吗?如果是,那么模式名称是什么?

2 个答案:

答案 0 :(得分:1)

一般模式是,是的,您通过了声明中的所有角色。如果组太多,这会导致问题,但如果是这样,那么可能应该重新访问角色模型。

切换到oauth2式授权解决了以下问题:您不会在角色中传递声明,但依赖方会通过额外的呼叫查询角色。缺点是如果STS进一步使用另一个STS,这种额外的呼叫变得棘手,因为呼叫需要另一个内部呼叫,这可能需要另一个呼叫等。在索赔中传递角色意味着不需要这个额外的调用

另一个想法是切换到自定义STS,该STS将根据依赖方或其他用户属性发出过滤的声明角色。这可能会起作用,因为通常单个RP对所有角色不感兴趣,而是在那里有意义的子集。然后,您的过滤器将在自定义STS端实施。

答案 1 :(得分:0)

嗯 - IdSrv是一个自定义STS。您可以按RP发出声明 - 请查看本文(尤其是关于IClaimsRepository的部分):

http://leastprivilege.com/2013/05/17/customizing-identityserver/