此请求的授权被拒绝 - Azure Active Directory - 可用的日志是什么?

Ayo*_*o I 6 azure oauth-2.0 azure-web-sites azure-active-directory asp.net-web-api2

因此,我正在使用带有OAuth 2.0进程的邮递员尝试通过Azure Active Directory对我的WebApi进行身份验证.我仍然使用基本的ValuesController进行默认项目,只是尝试使身份验证和授权工作.

我已经按照这个视频来设置邮递员,据我所知,我已经按照描述在活动目​​录中配置了新的应用程序.

令牌交换正在运行.授权承载{token}正在正确发送.这是一个示例标记:

{承载eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlliUkFRUlljRV9tb3RXVkpLSHJ3TEJiZF85cyIsImtpZCI6IlliUkFRUlljRV9tb3RXVkpLSHJ3TEJiZF85cyJ9..NXpvslBXOpRNkmWQqj7XqVzloS3KoeSqPIlo-yUPGYkZ4bHPrAH6yD4sxMYz-19VIPFRDUMP-5h5hmaMKmuykjNUltz6wejQT9f4IeV6i7VtP3BlkfASZeAdKAiSjKh6ydV8PuJjV2HHh2WvxIKC3QQXzROwWAdeXLcgMTiKSBMULzFV8BsecgtI86_L2OISgbQZ2LgF137EPJoG7C4L1IO-10T1QIVl-Emy6AS0VKVxdzjCgiT-DFtccxME6n1CruoDy6mTKztcAkiFR1IlgY6Fvj-Y_goMQyxA5sCRebWnOQ5jeUKv4KNyNWOLJU_RiZYe0kj4IT3KDc9jjtHykg}

但是,即使我成功获得令牌,当我在VS中逐步调试调试器时,我看到令牌进入,授权失败.我收到以下回复:

{"Message":"Authorization has been denied for this request."}
Run Code Online (Sandbox Code Playgroud)

问题似乎在服务器端.当我重写IsAuthorized以返回true时,它可以工作.

在Azure中,两个应用程序都位于具有委派权限的同一目录中.

是否有任何日志我可以查看确切的拒绝原因?从那里我可以弄清楚发生了什么.

我已经开启了跟踪,其中:

// Web API configuration and services
var traceWriter = config.EnableSystemDiagnosticsTracing();
traceWriter.IsVerbose = true;
traceWriter.MinimumLevel = TraceLevel.Debug;
Run Code Online (Sandbox Code Playgroud)

但它并没有真正告诉我为什么我会拒绝.

Ayo*_*o I 1

因此,Azure AD 目录似乎已损坏。我认为我创建的原始概念应用程序可能出了问题。无论出于何种原因,我无法在 Azure 门户中删除该应用程序,因此无法删除目录本身。

然而,不幸的是,创建一个全新的目录似乎可以解决这个问题。我遵循所有相同的指示。

唯一的区别是我在 Web.config 中添加了以下内容<add key="owin:AppStartup" value="buckets_api.Startup"/>:然而,上次我添加了:<add key="owin:AutomaticAppStartup" value="false"/>以解决我在使用新模板时遇到的 api 启动问题。但是,我不认为这就是解决问题的原因。

顺便说一句,我还注意到,如果我不以管理员身份重新启动应用程序,Chrome 就无法在弹出浏览器中完成令牌交换。我不确定这是否也相关,因为我之前获得过代币,所以我不这么认为。但我想完整记录对我有用的方法,以防其他人将来遇到这种情况。