我打算做的是,我想做的是创建一个基于声明的身份验证。但是我使用了一个公共的身份验证提供程序,例如 LIVE 连接 API。所以它只返回基于 OAuth 的数据给我。
考虑到我是服务器端,我只想
1 使用 OAuth 获取数据。
2 将其转换为索赔。
3 将当前委托人设置为我创建的声明。
我需要创建 STS 吗?我可以使用这些声明实现 SSO 吗?
我打算做的是,我想做的是创建一个基于声明的身份验证。但是我使用了一个公共的身份验证提供程序,例如 LIVE 连接 API。所以它只返回基于 OAuth 的数据给我。
考虑到我是服务器端,我只想
1 使用 OAuth 获取数据。
2 将其转换为索赔。
3 将当前委托人设置为我创建的声明。
我需要创建 STS 吗?我可以使用这些声明实现 SSO 吗?
当您希望将身份验证逻辑与业务逻辑分离时,您可以创建安全令牌服务 (STS),使其作为两个独立的服务/应用程序工作,其中一个正在发布安全令牌,另一个(或多个)正在消耗它们。
对我来说,您似乎应该实现自己的 ClaimsAuthenticationManager 将 OAuth 接收到的所有数据(它正在为您进行身份验证)转换为声明,使用它生成 ClaimsPrincipal 并向其添加您自己的业务逻辑声明 => 设置生成校长成为您当前的校长。
根据您为 OAuth 使用的库,其中一些会为您创建初始声明主体,然后您可以使用 ClaimsAuthenticationManager 并将其转换为您自己的声明主体。
有关它的更多参考,请查看 www.leastprivillege.com,Dominick 有一系列关于 OAuth 和基于声明的身份验证的精彩文章。