Authentication WebApi混合与隐式GrantTypes的IdentityServer4 Js客户端令牌安全性

Authentication WebApi混合与隐式GrantTypes的IdentityServer4 Js客户端令牌安全性,authentication,authorization,asp.net-core-mvc,identityserver4,browser-security,Authentication,Authorization,Asp.net Core Mvc,Identityserver4,Browser Security,您好,我一直在寻找我的ASP.NET核心Web API和JS客户端的IdentityServer 4。我指的是 这就是我想做的。我想要3台主机: 标识服务器 Asp.net核心MVC Web API 将调用API的Javascript客户端 我意识到我可以拥有一个grant类型为AllowedGrantTypes=GrantTypes.HybridAndClientCredentials,的客户端,这应该更安全。如果我将此客户端与web api一起使用,则访问令牌将不会通过浏览器通道,而是通过所

您好,我一直在寻找我的ASP.NET核心Web API和JS客户端的IdentityServer 4。我指的是

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

  • 标识服务器
  • Asp.net核心MVC Web API
  • 将调用API的Javascript客户端
  • 我意识到我可以拥有一个grant类型为
    AllowedGrantTypes=GrantTypes.HybridAndClientCredentials,
    的客户端,这应该更安全。如果我将此客户端与web api一起使用,则访问令牌将不会通过浏览器通道,而是通过所谓的“后端通道”,并且我可以使用自定义授权对授权控制器操作进行身份验证

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

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

    由于这些顾虑,我想忘记JS客户机,只在与API相同的主机上实现MVC web应用程序,因为这在ASP.NET Core中基本相同(如果您知道我的意思,请参阅Shawn Wildermuth的PluralSight课程)

    我假设使用
    隐式
    授权类型会暴露太多安全风险?
    我错了吗?是否存在与JSAPI通信的安全“后端通道”?还是我在这里遗漏了什么?

    你想看这个:@flexxxit我与你在这里描述的场景相同。答案/解决方案是什么?