Thinktecture Identity Server 3 Asp.Net Identity Sample,不断获得401授权被拒绝

时间:2015-10-02 20:12:21

标签: asp.net-identity asp.net-web-api2 thinktecture-ident-server identityserver3 thinktecture

我正在尝试在我的Web Api项目中使用身份服务器的Asp.Net标识样本,并且我正在尝试使用承载令牌获取令牌并向API发送请求的初学者。

因此,使用fiddler,我可以向https://localhost:44333/core/connect/token发送一个请求,其中包含以下内容:client_id=roclient&client_secret=secret&grant_type=password&username=bob&password=mypass&scope=read write offline_access并且工作正常,我获得了访问令牌和刷新令牌。

然后我在我的解决方案中有一个Web Api项目,其中包含使用不记名令牌的代码:

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
        {
            Authority = "https://localhost:44333",
            ValidationMode = ValidationMode.ValidationEndpoint,

            RequiredScopes = new[] { "api1" }
        });

和一个测试控制器,其中使用[Authorize]装饰器保护api。

正如我所说,获取令牌工作正常,但当我使用fiddler将请求发送到api时,我总是得到“401授权被拒绝......”的事情。

我在提琴手请求中提出的内容当然是:

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImE...

我做错了吗?

2 个答案:

答案 0 :(得分:3)

在令牌请求中,您正在请求读写范围。你的api检查api1范围。这不行。

答案 1 :(得分:0)

在这里,我修改了你的样本,以便它适合你:

use App.Accounts.UserAPI