c# - .NET Core Web API 身份验证和 .NET 身份
问题描述
我最近接手了一个 .NET 核心 MVC 项目,并且必须使用 API 对其进行扩展。使用 .NET 核心身份进行身份验证。来自 swift iOS/Mac 开发,我开始了一个演示项目,并进行了一些基本的身份验证。
在阅读Microsoft 文档上的身份时,他们专注于 WebApps。所以我的问题是:
- 我应该使用身份进行 API 身份验证还是仅用于内部身份管理和 WebApp 的东西?
- 身份/.NET 核心是否已经为我提供了 jwt 和例如基本身份验证来最初获取 jwt,还是我必须自己创建很多?
我的目标是创建受 jwt-auth 保护的路由,并能够获得带有用户名和密码的 jwt。
解决方案
ASP.NET Core Identity 不适合保护 API,其他身份提供者的使用由Docs指导:
ASP.NET Core Identity 向 ASP.NET Core Web 应用程序添加了用户界面 (UI) 登录功能。要保护 Web API 和 SPA,请使用 以下方法之一:
- Azure 活动目录
- Azure Active Directory B2C (Azure AD B2C)
- 身份服务器4
并根据上一个链接:
IdentityServer4 是用于 ASP.NET Core 的 OpenID Connect 和 OAuth 2.0 框架。IdentityServer4 启用以下安全功能:
- 身份验证即服务 (AaaS)
- 多种应用程序类型的单点登录/注销 (SSO)
- API 的访问控制
- 联合网关
所以你需要使用IdentityServer4
推荐阅读
- guice - MyBatis Mapper 的线程安全与 Guice 注入
- python - 使用格式函数给出“无效语法”错误
- reactjs - React-HashRouter:重定向显示空白页面
- jvm - 如何使用 JCMD 访问 NMT 数据
- python - 获取有关从一个 CSV 文件获取数据并将其插入另一个 CSV 文件的 Python 代码的帮助
- firebase - 有没有办法限制来自firebase可调用函数的公共访问
- python - 编写一个接受 2 个字符串参数的函数
- javascript - 如何在 JavaScript 中使用类别进行搜索?
- c# - 如何更改telerik:鼠标悬停时的RadGridView行背景颜色
- python - 计算员工激励的程序