angular - 如何保护 .net 核心 API 项目

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

我有一个用 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?有例子吗?

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

最佳答案

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

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

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

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

关于angular - 如何保护 .net 核心 API 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44853822/

相关文章:

Angular 4 应用程序使用 IE 11, "Can' t 从释放的脚本中执行代码”

javascript - @ks89/angular-modal-gallery 从轮播描述中删除图像文本

linux - 关于带有凭据的 Wget 的 Bash 脚本

ios - 如何存储非标准的Web认证?

c# - 在 ASP.NET Core 中使用 NumberFormat 属性

javascript - 通过数组在 Angular 6 中引导多个模块

php - 如何使用PHP和Mysql从表中检查连续3天

asp.net-mvc - MVC 6 应用程序在 View 加载后不释放内存

dependency-injection - .net 核心中的依赖注入(inject),Autofac、StructureMap 和工厂方法,如果注册了多个实现,则解析接口(interface)

http - Angular 2 HTTP 服务从 https 切换到 http 方案