我只是想听听您对以下场景的看法:我需要开发多个使用单点登录服务的网站。如果用户访问该站点但尚未通过身份验证,则需要要求他提供凭据,然后应允许他在一定时间内使用任何站点。每个用户都有一组角色,可以为每个站点定义并严格执行。
是OAuth
最好的方式还是您知道其他好的选择?
仅仅开发自己的服务值得付出努力吗?
我忘了提到我们不想使用 Google、Facebook、Twitter 等作为 OAuth 提供者,所以如果我们使用 OAuth,我们必须创建自己的提供者。
在 google 上阅读有关机器密钥的更多信息。它将让您清楚地了解单点登录。
我推荐 OAuth2 或 WS-Federation,它们都是 SSO 协议,实现两者的工作量是可比的。
使用 DotNetOpenAuth 库可以实现 OAuth2,WS-Federation 可以在 .NET 4.5 中本地实现,因为它是基类库的一部分。请注意,实现身份提供者比实现服务提供者(只允许用户使用身份提供者登录的应用程序)稍微困难一些。
我还推荐一本很棒的免费电子书,基于声明的安全和访问控制指南: