2014-05-09 28 views
0

我正在使用Thinktecture Identity Server for SSO和一些应用程序。这个想法是,账户信息将被存储在服务器中的索赔信息中。因此,SSO服务器上可以存在组用户成员身份和其他层次结构。然后当有人认证时,他们将获得他们的会员资格和权利通过索赔传递。从Thinktecture Identity Server获取详细的用户成员资格信息

我的问题是我的认证用户如何执行user.memberOf(x)种查找?我无法想象整个权限层次结构会在用户声明中传递。我想像其他的查询将会在LDAP这样的服务器上执行。这对于Thinktecture如何工作?对于其他SSO服务器通常是否一样?如果是这样的模式名称是什么?

回答

1

一般模式是,是的,你通过索赔中的所有角色。如果组数过多,则会导致问题,但如果情况如此,则可能会重新考虑角色模型。

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

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

+0

我喜欢每过滤RP角色的想法。我很想声称,这一直困扰着我。谢谢。 – ProfK