Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/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
Asp.net web api 资源所有者凭据与JavaScript和IdentityServer一起流动-不允许?_Asp.net Web Api_Asp.net Core_Asp.net Core Mvc_Thinktecture Ident Server_Identityserver3 - Fatal编程技术网

Asp.net web api 资源所有者凭据与JavaScript和IdentityServer一起流动-不允许?

Asp.net web api 资源所有者凭据与JavaScript和IdentityServer一起流动-不允许?,asp.net-web-api,asp.net-core,asp.net-core-mvc,thinktecture-ident-server,identityserver3,Asp.net Web Api,Asp.net Core,Asp.net Core Mvc,Thinktecture Ident Server,Identityserver3,我有一个JS网站,它试图通过传递用户名和密码来获取访问令牌。我还维护AuthServer,所以我认为JS客户端是可信的。我可以用ASP.net 4.5.x实现这一点。但是,当我尝试对IdentityServer执行同样的操作时,会得到无效的客户端 我现在正在尝试ASP.net 5,我相信作为身份提供者的旧OWIN中间件将不再受支持,他们正在提倡当我们想要成为身份提供者时使用identity Server POST /connect/token HTTP/1.1 Host: localhost:5

我有一个JS网站,它试图通过传递用户名和密码来获取访问令牌。我还维护AuthServer,所以我认为JS客户端是可信的。我可以用ASP.net 4.5.x实现这一点。但是,当我尝试对IdentityServer执行同样的操作时,会得到无效的客户端

我现在正在尝试ASP.net 5,我相信作为身份提供者的旧OWIN中间件将不再受支持,他们正在提倡当我们想要成为身份提供者时使用identity Server

POST /connect/token HTTP/1.1
Host: localhost:59766
Content-Type: application/x-www-form-urlencoded

username=admin&password=pw&grant_type=password
我认为IdentityServer首先需要客户机信息,但这意味着我必须在网页(或本机移动应用程序)上公开客户机机密,根据OAuth规范,我认为这是不允许的

如何使用IdentityServer关闭客户端需求

在IdentityServer的github上,我只看到C#代码,它收集客户端凭据以及用户名和密码,以获取资源所有者凭据流的访问令牌。等效的原始HTTP请求是什么


我个人不在乎是否有其他应用程序试图模仿我的客户。实际上,允许访问任何内容的都是用户的凭据。

在IdentityServer 3中,客户端身份验证是强制性的:如果请求中缺少客户端凭据,则无法验证令牌请求,无论您使用的是哪种授予类型(授权码、刷新令牌、资源所有者密码)

当然,这并不是真正符合规范的,因为像JS应用程序这样的公共应用程序不需要客户端身份验证,但我想这一要求是为了鼓励您使用隐式流()

如果确实希望将ROPC与IdentityServer一起使用,则可以使用其他OAuth2参数来传递客户端凭据:

POST /connect/token HTTP/1.1
Host: localhost:59766
Content-Type: application/x-www-form-urlencoded

client_id=id&client_secret=not_secret_at_all&username=admin&password=pw&grant_type=password&scope=read+write

注意:如果您正在ASP.NET 5(OWIN/Katana/Web API中的OAuth2授权服务器)中寻找OAuthAuthorizationServerMiddleware的等效版本,可以尝试AspNet.Security.OpenIdConnect.server:。它支持您试图实现的确切场景,而不需要客户端身份验证。我尝试过,但似乎无法让令牌生成器编写JWT的第三部分。我会在以后的问题中问这个问题。上面的问题仍然不起作用。我仍然得到400与无效的_客户端。我将客户端的流设置为资源所有者。请确保还指定了“scope”参数。我在没有显式作用域的情况下进行了尝试,但确实失败了。你们知道javascript库可以像使用oidc客户端一样对identity server使用ROPC吗?