IdentityServer3令牌验证 - 访问令牌范围不足后EmitCorsResponseHeaders中的异常

时间:2016-06-24 09:48:23

标签: access-token identityserver3 bearer-token

我已根据此处的指南https://identityserver.github.io/Documentation/docsv2/overview/jsGettingStarted.html

设置了一个基本的WebApi项目

如果我在令牌中传递了正确的api作用域,则令牌验证工作正常,但如果未包含它(如果用户拒绝访问),则会继续按预期向响应添加403。

在EmitCorsResponseHeaders(ScopeRequirementMiddleware.cs)中,它会添加CORS头但会引发异常 -

- url: /_ah/start
  script: background_starter.app
  secure: admin

这应该发生还是我错过了什么? app.UseCors(CorsOptions.AllowAll)在入门指南中指定的startup.cs中设置。

由于

1 个答案:

答案 0 :(得分:2)

这里确实存在一个问题,但我并不完全确定如何解决它。

ScopeRequirementMiddleware尝试在响应上设置Allow-Access-Control-Origin标头,但只有在不满足中间件中设置的范围要求时才会这样做。

这显然与我们之前已在OWIN管道中已经设置了此特定标头的CORS中间件这一事实相冲突。

我不确定为什么范围要求中间件在这种特定情况下设置这些标题,我将在GitHub上创建一个问题并将其链接回这里以获得可见性。