2

嗨,我一直在为我的 ASP.NET Core Web API 和 JS 客户端寻找 IdentityServer4。我在这里参考官方文档

这就是我想做的。我想拥有 3 台主机:

  1. 身份服务器
  2. Asp.net 核心 MVC Web API
  3. 将调用 API 的 Javascript 客户端

我意识到我可以拥有一个AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,据说更安全的授权类型的客户端。如果我将此客户端与 web api 一起使用,访问令牌将不会通过浏览器通道,而是通过所谓的“后端通道”,我可以使用自定义授权对授权控制器操作进行身份验证。

另一方面,为了有一个通过 API 调用访问 API 的 js 客户端,我需要AllowedGrantTypes = GrantTypes.Implicit通过浏览器公开访问令牌。

问题是我想在提交给 API 的用户上下文中使用声明来授权对特定控制器操作的访问。此类声明的存在与否将表明是否允许登录用户访问操作。我希望混合授权类型提供的“后端通道”可以保护黑客注入索赔。我不想重新检查在用户上下文中收到的声明的有效性。

由于这些问题,我正在考虑忘记 JS 客户端,而只是在与 API 相同的主机上实现 MVC Web 应用程序,因为这在 ASP.NET Core 中非常相似(如果你知道我的意思 - 请参阅 Shawn Wildermuth 的关于使用 ASP.net Core、MVC6、EF Core 和 Angular 构建 WebAppp 的PluralSight 课程)

我假设使用Implicit授权类型会暴露太多安全风险?我错了吗?是否有与 JS API 通信的安全“后端通道”?或者我在这里错过了什么?

4

0 回答 0