我已经开始使用ASP.NET身份和实体框架示例使用IdentityServer4。
有一个MVC应用程序,该应用程序使用IdentityServer来获取访问令牌,并使用“客户端凭据和混合”授予类型,并使用此访问令牌来调用API。
解决方案如下:
我将添加一个新的私有API,但我想对此进行限制,以便只有MVC应用程序可以调用它,并且只能在服务器端调用。
我最初的想法是为此私有API添加一个新的API范围,并将该范围仅提供给MVC应用程序。问题是我了解访问令牌可以从MVC应用程序自由访问给用户,因此他们可以访问该令牌,因此可以使用自己的参数调用私有API。
建议保护API的庄园是什么,以便攻击者可以获得访问令牌并提供对API的访问?
我是否需要创建一个新的基于MVC应用程序使用的基于“客户端凭据”的客户端?让MVC项目为同一API使用两个单独的客户端似乎有点奇怪?
有关信息,MVC应用程序中的AddAuthentication如下所示:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
如果与IdentityServer示例不同,我认为应该相似。