【问题标题】:How can we integrate identityserver4 and web api in the same project(port) instead of creating different projects for each?我们如何将 identityserver4 和 web api 集成到同一个项目(端口)中,而不是为每个项目创建不同的项目?
【发布时间】:2019-10-30 10:18:27
【问题描述】:

无法在同一个项目中配置 identityserver 4 授权和不记名令牌认证中间件。

【问题讨论】:

  • 这个问题有什么问题——标题还是正文?你真的想结合什么?第二个很清楚——它是不记名令牌认证中间件,但第一个是什么?是 Identityserver 中间件 services.AddIdentityServer(),还是只是 Identityserver services.AddAuthentication.AddOpenIdConnect(options =>{//options for idsrv auth}) 的 oidc auth 中间件来保护您的 MVC 应用程序?

标签: asp.net-core oauth-2.0 identityserver4 asp.net-core-webapi


【解决方案1】:

你不应该。

问题是您的身份验证和您的应用程序是完全不同的服务,具有不同的范围,您应该使它们不同。

这与关注点分离有关:如果您想稍后更改身份验证服务,则不必修改整个应用程序。

【讨论】:

    【解决方案2】:

    我建议您在单独的应用程序中制作 API 和 Identity Server。这使它更容易维护。

    身份服务器为您提供针对您的客户端/API 的身份验证。数据库操作、业务逻辑应由您的客户端/API 处理。因此,将它们放在单独的应用中应该是更好的选择。

    如果您坚持在单个项目中制作,可以点击herehere获取代码示例。

    【讨论】:

      【解决方案3】:

      它现在是 Identityserver 的内置功能。添加this PR。

      services.AddLocalApiAuthentication();
      

      here 是受保护 API 的官方示例。

      【讨论】:

        猜你喜欢
        • 2018-12-06
        • 1970-01-01
        • 1970-01-01
        • 2017-11-24
        • 2017-01-28
        • 2016-06-06
        • 2017-07-23
        • 1970-01-01
        • 2019-08-15
        相关资源
        最近更新 更多