我正在为一个处理相当典型问题的客户开发一个解决方案:他们有许多生产系统,每个系统都有自己的用户和密码,导致每个用户必须记住三个或者四个不同(或不)的登录名和密码,每个系统允许使用一个。此外,每个应用程序都有自己的身份验证级别(也就是说,如果您是一个超级用户,那并不意味着您是所有应用程序中的超级用户)。
到目前为止,我最好的想法是安装OpenID提供程序,并使用AX(Attribute Exchange)扩展提供访问级别。然而,这很复杂,主要是因为我找不到具有所述扩展的OpenID提供商的体面实现 - 对于我在档案中读到的内容,甚至谷歌和朋友都没有做到这一点......
加分:
那么,你认为我在这里做对了吗?我错过了更好的解决方案吗?如果是的话,你碰巧知道一个好的OpenID提供商(使用AX扩展!)我可以安装吗?
答案 0 :(得分:1)
根据您所讨论的要求(管理员可以撤销通过属性传达的权限等),听起来像运行自己的提供商是最好的方式,因为公共提供商不太可能提供您想要的灵活性。 DotNetOpenAuth完全支持AX作为消费者和提供者,因此它是一个很好的起点 - 您还可以在其上构建所有管理级存储和属性通信自定义。它仍然不是一个交钥匙解决方案(即,需要编码来从其存储的任何地方“获取”AX值),但它比尝试从头开始要好得多。很多优秀的样本和社区,主要作者在StackOverflow上很活跃。