我需要为我的SaaS网络应用程序提供身份验证/授权模块,并且我喜欢WIF的外观。 问题是除了Active Directory之外,似乎没有即插即用的方式来提供索赔。我的想法是使用IdentityServer并将ASP.NET Membership Provider存储库替换为我自己的存储库。
诀窍是
我打算建立的位是下面带有粉色的框,称为“声明服务器”。
IClaimsService 将允许创建新用户,创建角色,为角色分配权限以及将用户分配给这些角色。我自己的应用程序将授权插入IClaimsService的管理员屏幕并授权用户创建子用户等的权限。
我的问题是 - 这是一个有效的架构还是我完全忽略了WIF的观点?
还是有没有找到的替代即插即用选项? 我很高兴不重新发明轮子!
其他信息
我的网络应用是一种SaaS,需要允许我的客户在他们自己的数据库中创建自己的用户。
想想一个招聘软件平台的例子,在这个平台上,你有竞争的招聘团队,他们在系统中拥有自己的客户。一个团队不允许在另一个团队数据中达到高峰,但每个团队都可以管理和管理他们自己的用户子集。可能有许多不同的公司使用该平台,因此没有一个中央IT部门/域来管理这个。这都是自助服务。
我已经看过netsqlazman这与我想要的很接近,但Windows Identity Foundation看起来会有更多的长期利益,因为我接线新客户并且可以将他们自己的STS连接到我的认证
答案 0 :(得分:1)
我认为你是正确的,WIF会让你在更长的路上走上正确的道路。基于声明的身份将保持不变,并且所有事物都在融合。 WIF比以往更容易实现。
我的建议是从最简单的事情开始,那就是首先使用声明对用户进行身份验证。然后将用户句柄(例如电子邮件或user_id等)与您在应用程序中构建的任何授权体系结构相关联。可以是会员资格,自定义数据库等。
您描述的配置和自我管理是特定于应用程序的,与选择的身份提供程序无关(例如IdentityServer或与WIF兼容的任何其他内容:SAML令牌,WS-Federation等)。
这个简单的步骤将为更复杂的解决方案奠定基础,并允许您通过略微增加的努力提供即时价值。例如,您可以允许具有社交身份的用户登录您的网站。你仍然会定义:“fiat@mail.com” - > “可以在您的应用中管理用户”。
随着时间的推移,您会发现可以进一步外化的常见,重复属性(例如角色)。那么像你提出的建议就有意义了。
一个澄清:ADFS 仅针对AD进行身份验证,但可以从任何地方(数据库,LDAP,自定义等)检索属性。