【问题标题】:Custom Identity 2.x Hooking Into OWIN Pipeline - Multi-Tenant SaaS Application自定义身份 2.x 挂钩到 OWIN 管道 - 多租户 SaaS 应用程序
【发布时间】:2015-10-05 17:00:41
【问题描述】:

问题:我们是否可以简单地挂钩到 OWIN 管道以设置和检索安全身份验证票证 (cookie)?

我正在寻找为 MVC 5 应用程序推出我们自己的安全性/成员资格的最佳方法。我对注册、登录、密码更改、双因素、密码恢复等没有任何问题。我关心的是管道。


项目:该项目是一个多租户 SaaS 应用程序,需要对 Identity 框架进行许多更改。我们正在探索自己编写,过去我们已经为许多项目做过。

我们不使用声明或外部提供商(例如 Google 或 Twitter)进行身份验证,所有帐户都是基于本地数据库角色的帐户。该项目不使用EF。

我们曾探索过为 Identity 创建自己的商店,但是,当它完全实施时,需要关注的领域太多了,感觉好像用户管理器只是挡道了。代码开始膨胀,超出了我们自己的角色所需的水平。

密码是安全创建、管理和存储的,与此问题无关。

【问题讨论】:

    标签: c# asp.net-mvc authentication owin asp.net-identity-2


    【解决方案1】:

    我们正在使用连接在 OWIN 管道中的自定义身份验证机制。我们在 owin 管道中使用了我们自己的自定义中间件,因此可以进行身份​​验证

    唯一需要完成的过程是您的中间件应该验证身份,并且管道中的 cookie 身份验证中间件将根据已建立的身份设置 cookie。

    这将起作用的方式是中间件的排序和在 Owin 身份验证管道中使用 AuthenticationManager

    我们也在使用 Google、Facebook 等社交登录,它们与我们自己的自定义身份验证提供程序中间件共存,我们还使用 JWT 中间件进行隐式流身份验证。

    简短的回答是:是的

    更多详细信息:基于您关于需要注意的确切详细信息的进一步帖子。

    【讨论】:

      【解决方案2】:

      如果您愿意考虑托管解决方案,我建议您查看http://aka.ms/aadb2c - 该页面引用的示例将展示如何使用 OWIN 中间件连接到托管身份存储。

      【讨论】:

      • 看起来是一个很有前途的解决方案,但对于大型多租户 SaaS 项目而言,它仍处于开发阶段还为时过早。
      • 确实是预览版,GA之前还是可以改的。无论从容量上看,它在非常大规模的情况下运行时都很警惕,但皇家马德里拥有数亿用户。
      【解决方案3】:

      我们正在运行具有可配置的每个角色权限的多租户 SaaS 应用程序。当用户登录时,我们利用声明系统将用户权限存储在 cookie 中。这非常有效,而且非常高效。

      您不必使用实际的声明来设置您的权限,但您可以将一些信息作为声明存储在用户 cookie 上,用于确定用户权限。

      由于您的问题对实际实现有点含糊,我不会带来任何代码示例 - 考虑到您的手动安全系统,我的示例很可能不适用。除非你用你正在做什么的具体例子来澄清你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-22
        • 2014-07-27
        • 2012-07-24
        • 1970-01-01
        • 2012-05-17
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多