【问题标题】:How to secure .net core API project如何保护 .net core API 项目
【发布时间】:2017-12-04 20:21:40
【问题描述】:

我有一个用 Angular 4 编写的 web ui 应用程序,在 IIS 后面运行,需要 SSL 和一对一的客户端证书映射。

此 SSL Web ui 应用程序调用一个 .net 核心 API 项目,该项目也使用 SignalR 将其数据推送到 ui 应用程序。

它们在同一个域下运行两个不同的 URL。

https://ui.mysite.com
https://api.mysite.com

这两个应用程序都不向公众开放,需要良好的安全性。

我很乐意通过单独的证书锁定 ui 站点。 SSL 证书通过受信任的证书颁发机构,然后为客户端身份验证创建自签名证书。

您建议将 api 站点锁定到外部世界,以便只有 ui 站点(以及我们网络内用于调试目的的内部开发人员,即查看 json 响应)可以访问?

我见过有人提到 oauth2 / jwt?有什么例子吗?

唯一需要访问权限的人是我们公司内部的人员,但在旅行时使用的设备可能未连接到我们的内部网络,例如手机或笔记本电脑。

【问题讨论】:

    标签: angular authentication asp.net-core oauth-2.0 ssl-certificate


    【解决方案1】:

    您绝对可以使用 JWT 来保护 Web API。

    这是一个很好的起点: https://dev.to/samueleresca/developing-token-authentication-using-aspnet-core

    这个实现的工作原理基本上是每个具有[Authorize] 属性的控制器或操作都需要通过请求的Authorization 标头发送访问令牌。此访问令牌是通过使用用户名和密码向/api/token 发送 POST 请求来获得的。每个密钥都有一个设置的过期时间,您可以在代码中更改。

    这是一个简单的 JWT,但您也可以使用角色等声明对其进行扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2018-12-08
      • 2020-12-12
      • 2021-05-22
      • 2020-06-20
      相关资源
      最近更新 更多