Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# REST API到API身份验证与授权服务器_C#_Asp.net Mvc_Jwt_Authorization_Bearer Token - Fatal编程技术网

C# REST API到API身份验证与授权服务器

C# REST API到API身份验证与授权服务器,c#,asp.net-mvc,jwt,authorization,bearer-token,C#,Asp.net Mvc,Jwt,Authorization,Bearer Token,我基本上有3种类型的应用程序,首先我有一个授权服务器(AuthServer)、一个资源服务器(Reserver1)和一个网站。因此,基本上,从网站对Reserver1的所有调用都使用一个到AuthServer的承载令牌进行身份验证,该令牌也在请求头中传递。AuthServer基于ResourceOwner的授权类型,这意味着用户为了访问受保护的方法,需要使用用户名密码进行身份验证 现在的问题是,我需要引入一个新的资源服务器(Reserver2),它将调用Reserver1中的资源。问题在于从系统

我基本上有3种类型的应用程序,首先我有一个授权服务器(AuthServer)、一个资源服务器(Reserver1)和一个网站。因此,基本上,从网站对Reserver1的所有调用都使用一个到AuthServer的承载令牌进行身份验证,该令牌也在请求头中传递。AuthServer基于ResourceOwner的授权类型,这意味着用户为了访问受保护的方法,需要使用用户名密码进行身份验证


现在的问题是,我需要引入一个新的资源服务器(Reserver2),它将调用Reserver1中的资源。问题在于从系统到系统调用的身份验证,因为Reserver2服务不是用户。验证另一项服务的最佳方式是什么?

在这种情况下,存在一种
客户端\u凭据
授予类型,您的Reserver2将成为消费者和资源。因此,推荐的方法是这样设置,但在这种情况下,您的Reserver2将没有任何用户上下文

我曾经遇到过类似的情况,我们有很多遗留代码,这取决于用户上下文,将整个授权机制更改为基于策略不是一个选项,我并不是说这种方法是好的,但我们的网站基本上设置为请求Reserver1和Reserver2的作用域,然后一旦用户登录,前端从Reserver1请求受保护的数据,每当需要从Reserver2请求受保护的数据时,Reserver1都会重新使用在WebApp原始请求中传递的相同承载令牌