如何调试/跟踪ADAL身份验证?

时间:2014-12-08 18:54:07

标签: security debugging authentication azure adal

我正在尝试Microsoft在此发布的一个Azure Active Directory示例:https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet

我设法搞砸了TodoListService的web.config中的观众价值,并在调用该服务时获得了401 Unauthorized响应。

问题是,我花了太长时间才弄清楚出了什么问题。在调试器中运行它并没有在输出窗口中生成任何有用的跟踪语句。事件查看器中也没有事件。

我可以打开哪些配置可以帮助我更快地找到它?是否存在具有日志记录或诊断功能的中间件,我可以用它来调试它?

我想我可以从GitHub抓取来源并尝试调试问题,但这并不方便。有什么我想念的吗?

3 个答案:

答案 0 :(得分:4)

在ADAL v3中,您创建了一个实现IAdalLogCallback的类:

public class AdalLoggerCallback : IAdalLogCallback
{
  public void Log(LogLevel level, string message)
  {
    Console.Write(message);
  }
}

然后,设置静态LoggerCallbackHandler对象的Callback属性:

LoggerCallbackHandler.Callback = new AdalLoggerCallback();

答案 1 :(得分:3)

您可以使用

启用记录器

Trace.Listeners.Add(new ConsoleTraceListener()); AdalTrace.LegacyTraceSwitch.Level = TraceLevel.Verbose;

富尔详细信息https://github.com/AzureAD/azure-activedirectory-library-for-dotnet#logs

答案 2 :(得分:3)

虽然接受的答案确实打开了ADAL(客户端库)的跟踪,但我遇到了一个问题,我需要为OWIN身份验证中间件启用跟踪。

我的代码只是在插入此中间件时获得了我的服务授权:

public void Configuration(IAppBuilder app)
{
    app.UseWindowsAzureActiveDirectoryBearerAuthentication(
        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
    {
        Audience = ConfigurationManager.AppSettings["Audience"],
        Tenant = ConfigurationManager.AppSettings["Tenant"]
    }
}

打开日志记录可以通过将以下部分添加到项目的web.config中来完成:

<configuration>
  <system.diagnostics>
    <switches>
      <add name="Microsoft.Owin" value="Verbose" />
    </switches>
  </system.diagnostics>
</configuration>

默认情况下,输出将显示在调试控制台窗口中,但您可以通过添加跟踪侦听器来更改此输出。我发现了一篇内容非常丰富的文章here

事实证明,我忘了关闭多租户服务的发卡行验证。