azure 使用Function App时,如何获取详细的Easy Auth日志?

c86crjj0  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(109)

应用程序

我在Microsoft Azure上有一个Web应用程序。客户端使用Vue.js编写,并通过Windows应用程序服务托管。服务器使用Azure函数构建,并通过Linux Azure函数应用程序托管。
客户端应用程序服务和服务器功能应用程序都使用built-in authentication(“Easy Auth”),并将Active Directory配置为身份提供者。我可以通过AD分别登录到每一个。
直到最近,我还能够从客户端向服务器发出经过身份验证的请求。客户端具有

"loginParameters": [
  "response_type=code id_token",
  "scope=openid offline_access api://<Application (client) ID>/user_impersonation"
]

字符串
并且生成的令牌的aud具有正确的应用程序ID。将来自客户端的/.auth/me响应的access_token作为请求中的承载令牌传递给用于工作的服务器。

问题是

我今天做了几个配置更改,测试了身份验证,发现它不再工作了,就把它们退了出来。遗憾的是,恢复这些更改并不能解决此问题,服务器上的Easy Auth不再接受生成的令牌:

{
  "code": 401,
  "message": "IDX10205: Issuer validation failed. Issuer: '[PII is hidden. For more details, see https:\/\/aka.ms\/IdentityModel\/PII.]'. Did not match: validationParameters.ValidIssuer: '[PII is hidden. For more details, see https:\/\/aka.ms\/IdentityModel\/PII.]' or validationParameters.ValidIssuers: '[PII is hidden. For more details, see https:\/\/aka.ms\/IdentityModel\/PII.]'."
}


好的,所以发行人不在有效发行人列表中。但是Azure hides personally identifiable information in exceptions by default,所以我看不到发行人或任何有效的发行人。
其中一个选项似乎是:
如果您需要查看异常中的完整信息,请将IdentityModelEventSource.ShowPII设置为true
但这看起来像是我自己使用C#配置身份验证的参考。我看不出有任何方法可以在使用简易身份验证时更改此设置。
也许我可以访问原始日志。让我们看看,我应该能够通过启用应用程序日志记录来查看此信息:
如果启用了应用程序日志记录,您将直接在日志文件中看到身份验证和授权跟踪
若要在Azure门户中启用Linux应用程序或自定义容器的应用程序日志记录,请导航到您的应用程序并选择“应用程序服务日志”。
但该选项不可用:


的数据
许多Function App文档链接到App Service文档,因此看起来Function App是一种特殊的App Service App,但也可能不是。前面的引用来自应用程序服务文档,但我是从Azure函数应用程序文档的以下链接中获得的。
好的,让我们看看是否有一种方法可以为 Function 应用程序启用应用程序日志记录。Azure Monitor Logs look promising,但生成的日志中似乎没有与Easy Auth有关的日志。我只看到有关服务启动的消息。这可能是因为在Linux应用程序上,Easy Auth在隔离的环境中运行,因此不会包含在诊断日志中:
身份验证和授权模块在独立的容器中运行,与应用程序代码隔离。
那么......我如何才能获得有关此错误的更多详细信息呢?Easy Auth被推荐作为功能应用程序身份验证的一个选项,我希望有一种方法可以获得更多关于正在发生的事情的信息。
我已经看到了Azure App Service Authentication / Authorization returns HTTP 401 IDX10205: Issuer validation failed,并且已经在清单中将accessTokenAcceptedVersion设置为null。这个问答帮助我让令牌传递在第一位工作,我没有改变这个值。

mftmpeh8

mftmpeh81#

虽然在使用层的Azure功能上禁用了“应用服务日志”,但仍有一种方法可以获取App Service Authentication上的诊断信息(也称为“Easy Auth’”)。
1.在Azure门户中导航到Azure函数。
1.打开左侧菜单上的“诊断和解决问题”刀片。
1.在搜索框中,开始键入“Authentication”,然后从搜索下拉列表中选择“Authentication Configuration and Investigation Detector(EasyAuth)”选项。

的数据
这将打开一个DaaS检测器,其中显示Easy Auth配置、版本和错误信息(示例如下):第一节第一节第二节
请注意,此处的信息不是真实的的,可能需要15分钟或更长时间才能更新。

相关问题