【问题标题】:Identity Server 4 as Web API for Angular SPAIdentity Server 4 作为 Angular SPA 的 Web API
【发布时间】:2020-11-05 19:35:24
【问题描述】:

我们正在使用基于Angular 10 的前端和基于.NET Core 3.1 的Web APIs 构建应用程序。对于身份验证,我们想使用Identity Server 4。我想知道我们是否可以将Identity Server 与我们的Web API 项目集成,而不是为Identity Management 单独应用程序,这也可以为我们节省一些云托管费用。我想知道这是否是一种很好的遵循方法,或者这是否存在任何安全漏洞,我是否会使用这种方法遵循 OAuth2 和 OpenID Connect 规范。

【问题讨论】:

    标签: asp.net-core oauth-2.0 identityserver4 openid-connect


    【解决方案1】:

    当您创建Identity Server 4 作为您的授权时,它应该结束了。事实上,您可以通过提供 JWT 来构建 Asp .Net Identity 来处理您的授权机制。这是一种最简单的方法,可以促进您的发展,而不是努力学习和处理Identity Server 4。

    为了安全起见,您应该read this guideline,该指南的大部分内容都包含在.Net Core 中。 JWT 仍然可以处理安全方面的问题。

    请记住,Identity Server 4 仅在您计划跨多个应用共享您的authenticated users 时使用。如果你没有,你不想应用它。

    【讨论】:

    • 我想了解您在这里的建议,在 Web API 项目中使用Asp .NET Identity 来处理身份验证和授权?但是,如果我使用 Angular 页面作为前端并使用 Web API 方法进行身份验证和授权,可以吗?我的应用程序足够安全吗?
    • 是的。不要误以为 ASP .Net 身份服务器源代码必须位于同一个 API 服务器中。每个 Api 服务器都可以配置为通过 AuthenticationScheme=JsonBearerToken 本身进行验证。如果你可以选择构建一个包含 Identity 的单体 API,它仍然可以工作。 Angular 只需检索 jwt 并附加到 Http Header 即可执行 Api。
    【解决方案2】:

    是的,这是常见的场景,IDS4 中有内置的辅助方法,例如 AddLocalApiAuthentication 来简化它。

    这是一个示例:https://github.com/brockallen/IdentityServerAndApi

    点击此处了解更多详情:https://identityserver4.readthedocs.io/en/latest/topics/add_apis.html?highlight=AddLocalApiAuthentication#adding-more-api-endpoints

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-07
      • 2020-06-21
      • 2018-12-10
      • 1970-01-01
      • 2018-10-16
      • 2017-10-26
      • 2017-06-29
      • 2021-04-17
      相关资源
      最近更新 更多