我正在努力将应用程序与各个区域和极其细粒度的权限联合起来。每个不同的区域都有一个联合的 WCF 端点来与服务器进行通信。由于细粒度的权限,包含所有权限的单个令牌可以大到 1MB,甚至更多。
要求规定,在初始登录过程之后,用户的用户名和密码凭据不得保存在我们的代码库中。权限不能组合以创建更小的集合。我们将 Thinktecture.IdentityServer 用于我们的 STS 实现。
我提出的解决方案是在 STS 中将每个端点分解为自己的领域,并且 STS 将返回一个带有为领域指定的权限声明的令牌。为了实现这一点,我想要一个通过用户名/密码进行身份验证的 Auth 领域,并返回一个包含用户、租户和子组 ID 的令牌,然后可以将其用作向其他领域进行身份验证的凭据。
设置 STS 以发布特定于领域的令牌已经实施。剩下的唯一要求是用户名/密码不在我们的代码库中。
是否可以通过提供来自特定领域的先前颁发的令牌来配置 STS 以允许身份验证?有没有我没有想到的更好的解决方案?