我正在联合具有各种区域和极其细化的权限的应用程序。每个不同的区域都有一个联合的WCF端点可以与服务器进行通信。由于细粒度的权限,包含所有权限的单个令牌可以大到1MB,也许更多。通过颁发令牌对STS进行身份验证
要求规定在初始登录过程之后,用户的用户名和密码凭证不能保存在我们的代码库中。权限不能组合以创建更小的集合。我们正在为我们的STS实施使用Thinktecture.IdentityServer。
我建议的解决方案是在STS中将每个端点分成它自己的领域,并且STS将返回一个具有为该领域指定的权限声明的标记。为了达到这个目的,我希望有一个Auth领域,它通过用户名/密码进行身份验证,并返回一个包含用户,租户和子组ID的令牌,然后可以将其用作向其他领域进行身份验证的凭据。
设置STS发布特定于领域的令牌已经实施。剩下的唯一要求是用户名/密码不在我们的代码库内。
是否可以通过提供先前从特定领域发布的令牌来配置STS以允许进行身份验证?有没有更好的解决办法,我没有来过?
我假设这将工作,如果STS A === STS B,并会尝试这一点。如果它可行,我会将其标记为接受的答案。关于在RP上使用权限存储,由于数据存储需求,目前这是不实际的。 – psaxton