【问题标题】:When not to use OpenId connect何时不使用 OpenId 连接
【发布时间】:2015-12-05 18:51:08
【问题描述】:

我们正在构建一个包含 webAPI 的 Web 应用程序。这些 WebAPI 也需要暴露给其他应用程序(不同子域上的其他内部应用程序或第 3 方应用程序)。我们正在考虑使用 OpenId Connect,这样我们不仅可以提供 access_token 还可以提供 id_token 进行身份验证。

现在的问题是“我的主应用程序是否也应该使用 openId 连接”进行身份验证/授权。我不赞成这样做。据我了解,只有外部应用程序才应该使用 openid connect 来使用主应用程序的资源。并且内部应用程序(主要以及不同子域上的应用程序)可以使用基于常规 cookie 的身份验证。

例如,主应用程序是 MyWebApp.com(这也包括 webapi)。其他内部应用程序是 maps.MyWebApp.com、admin.MyWebApp.com、payroll.MyWebApp.com。

其他第 3 方应用程序可能是 OtherWebApp.com。

请提出建议。

【问题讨论】:

    标签: c# asp.net-web-api oauth openid openid-connect


    【解决方案1】:

    “我的主应用程序也应该使用 openid 连接吗?” 优点 - 为单点登录铺平了道路 - 模块化您的身份验证,因此您不会实施不同的身份验证解决方案。 - 您可以选择在您的主应用程序中使用相同的 Web api。 (尽管您可以只使用 oauth2 客户端凭据流程并跳过 openid 连接身份验证部分) 缺点 - 如果您只有一个客户端应用程序,那么这可能是矫枉过正 - 您通过使其依赖于身份验证服务器应用程序来增加应用程序的复杂性(但模块化也有优势)

    我不完全了解您的情况,但我倾向于说是的。虽然,我肯定会为您受信任的主应用程序关闭 oauth2 的同意屏幕。如果您不使用 openid connect 进行身份验证,那么将您的主应用程序转换为以后使用应该不会太难

    【讨论】:

    • 嗨 sdoxsee,我的应用程序是一个 SPA(具有多个模块)。每个模块的登录页面由 asp.net MVC 提供。简而言之,它是 webapi 和服务器端页面的混合体。哪种方式可以保护 webapi 和 cshtml 视图?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2011-01-26
    • 2020-11-28
    相关资源
    最近更新 更多