【问题标题】:debugging or error log for UseWindowsAzureActiveDirectoryBearerAuthentication in a azure web site?天蓝色网站中 UseWindowsAzureActiveDirectoryBearerAuthentication 的调试或错误日志?
【发布时间】:2021-03-02 15:49:10
【问题描述】:

我有一个 asp.net azure web api 站点,比如 myapi.azuresites.net,我的自定义域是 myapi.mycompany.net。 在我的 web api 中,我使用 owin 中间件来验证传入的令牌

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                new WindowsAzureActiveDirectoryBearerAuthenticationOptions
                {
                    Tenant = Constants.AzureActiveDirectoryTenant,
                    TokenValidationParameters = new TokenValidationParameters
                    {
                        ValidateAudience = true,
                        // These values will be checked against what is received in the access token.
                        ValidAudiences = Constants.AzureActiveDirectoryValidAudiences
                    },
                    Provider = new OAuthBearerAuthenticationProviderEx()
                });

我在 azure AD 下注册了一个应用,并在其中添加了一些客户端密码。

  1. 从邮递员那里,我可以从 Azure AD 获得一个带有 App id 和客户端密码的 oauth2 令牌。

  2. 我将此令牌包含在标头中并发送到我的 azure web api。

  3. 我的代码使用 owin 中间件来验证令牌

  4. 如果我将请求发送到 myapi.mycompany.net,则令牌验证有效。

  5. 如果我将请求发送到 myapi.azuresites.net,令牌验证将失败。

我真的不明白为什么直接调用 azure 站点时令牌验证失败。如果我将 azure 站点的 web.config 抓取到我的本地机器上,它也可以在那里工作。 我怀疑我的 AD 应用没有正确的重定向 URL,但经过验证并没有发现明显的问题。

那么有没有办法记录一些关于身份验证失败原因的信息?由于它是一个远程 azure 站点,我可以将此故障作为异常捕获并抛出一些吗?

【问题讨论】:

  • 太奇怪了,我想出了一种方法来添加一些日志,但是验证就成功了
  • 您可以将修改后的内容作为答案发送,这样可以帮助更多遇到类似问题的论坛用户。
  • 好的,我发布了我现在发现的内容

标签: azure-web-app-service owin owin-middleware


【解决方案1】:

虽然不知道为什么我的 AD 身份验证现在有效,但我确实找到了 a way 来记录 azure 站点的 owin 故障。 基本上这会记录自己的信息

<system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="Microsoft.Owin">
        <listeners>
          <add name="KatanaListener"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="KatanaListener" 
type="System.Diagnostics.TextWriterTraceListener"
 initializeData="d:\home\logfiles\Katana.trace.log"
traceOutputOptions="ProcessId, DateTime"/>
    </sharedListeners>
    <switches>
      <add name="Microsoft.Owin" value="Verbose"/>
    </switches>
  </system.diagnostics> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多