我们正在Service Fabric的应用程序上使用KeyVaultClient库,该库调用Key Vault读取存储为机密的各种配置数据。代码对库进行身份验证的方式是通过具有SSL证书的AAD主体进行的。该代码正在创建单个请求,但是当我们查看Key Vault日志时,对于代码创建的每个单个请求,该保管库都会被命中两次。第一次匹配生成401未经授权,然后第二个请求为成功。
在继续我们创建的请求之前,好像图书馆可能是在没有我们请求中的凭据的情况下首次尝试访问Key Vault。第二个请求完全按预期工作。这似乎不必要。有人有过类似的经历吗?
答案 0 :(得分:1)
这是预期的行为。 Azure Keyvault具有一种身份验证模式,该模式将始终至少对该Vault进行未经身份验证的调用。这是因为某些保管库要求使用HSM保护的密钥对发给它们的消息进行加密。在第一个未经身份验证的呼叫的身份验证质询中返回此信息。
由于这个原因,每次在该过程中向尚未连接的保管库发送请求时,sdk都会首先发送带有空正文且不带授权标头的请求。这将导致显示401,其中包含身份验证和消息协议信息。
有关更多详细信息,您可以参考类似的issue。