C# 以编程方式读取Azure App Insights日志而不使用客户端密码?

C# 以编程方式读取Azure App Insights日志而不使用客户端密码?,c#,azure,azure-application-insights,C#,Azure,Azure Application Insights,我有一个C#应用程序,它使用Microsoft.ApplicationInsights和TelemetryClient类将跟踪和异常写入Azure application Insights 我希望使用C#以编程方式搜索AI跟踪和异常日志,而不是使用Kusto查询。我读过的每一篇关于如何做到这一点的文章似乎都要求我知道资源的客户机秘密。但我无法获得此信息,因为我没有在我们的环境中创建证书和机密的授权。(但是,我拥有ApplicationInsights.config文件中的Instrumentat

我有一个C#应用程序,它使用
Microsoft.ApplicationInsights
TelemetryClient
类将跟踪和异常写入Azure application Insights

我希望使用C#以编程方式搜索AI跟踪和异常日志,而不是使用Kusto查询。我读过的每一篇关于如何做到这一点的文章似乎都要求我知道资源的客户机秘密。但我无法获得此信息,因为我没有在我们的环境中创建证书和机密的授权。(但是,我拥有
ApplicationInsights.config
文件中的
InstrumentationKey


我相信一定有办法做到这一点而不使用秘密,对吗?毕竟,
TelemetryClient
不需要秘密来写入AI日志(它只需要前面提到的
InstrumentationKey
);因此(因为从安全角度看,读取操作的风险比写入操作小),我假设有一种方法可以通过编程方式读取日志,只需
InstrumentationKey
,而不需要客户端密码。你能告诉我怎么做吗

这里的基本错误假设

因为阅读是一种风险比写作小的操作,所以从安全角度来看

您正在编写可能包含安全关键信息的应用程序操作日志(当URL被记录、异常被记录、变量被写入服务器时)。所以在这种情况下,写作并不重要——你可以提交虚假数据,但事实确实如此

但是读取是安全关键的,因为您确实通过读取来公开受法律保护的数据(即,可能而且最有可能是个人的私人信息)

你剩下的问题来自于假设阅读与安全性相关性较低,因此你所有的结论都是错误的


这就是为什么您只需要一个指令插入密钥来写入,而需要一个客户端密钥来读取。

这里的基本假设是错误的

因为阅读是一种风险比写作小的操作,所以从安全角度来看

您正在编写可能包含安全关键信息的应用程序操作日志(当URL被记录、异常被记录、变量被写入服务器时)。所以在这种情况下,写作并不重要——你可以提交虚假数据,但事实确实如此

但是读取是安全关键的,因为您确实通过读取来公开受法律保护的数据(即,可能而且最有可能是个人的私人信息)

你剩下的问题来自于假设阅读与安全性相关性较低,因此你所有的结论都是错误的


这就是为什么您只需要一个指令插入密钥来写入,而需要一个客户端密码来读取。

所有这些都可以纠正您所说的。也许只是想澄清一下:要进行查询,您需要具有所需权限的Azure Active Directory帐户。如何使用此(客户端机密或其他任何方式)进行身份验证不是关键点。@TomTom我确实有一个Azure AD帐户,该帐户由应用程序使用。因此,如果我使用OAuth 2.0和我的凭据(帐户名/密码)以编程方式登录到它,这允许我读取日志吗?所有这些都更正了您所说的。也许只是想澄清一下:要进行查询,您需要具有所需权限的Azure Active Directory帐户。如何使用此(客户端机密或其他任何方式)进行身份验证不是关键点。@TomTom我确实有一个Azure AD帐户,该帐户由应用程序使用。因此,如果我使用OAuth 2.0和我的凭据(帐户名/密码)以编程方式登录到它,这允许我读取日志吗?你能找到一种方法吗?是的,但我必须获得客户机机密。你能找到一种方法吗?是的,但我必须获得客户机机密。