Azure MSI身份验证的瞬时错误处理

Azure MSI身份验证的瞬时错误处理,azure,azure-active-directory,azure-managed-identity,transient-failure,Azure,Azure Active Directory,Azure Managed Identity,Transient Failure,托管服务标识(MSI)身份验证是否存在暂时性错误,值得重试 通过阅读实现,我可以看到HttpRequestException和Exception被框架吸收,并作为AzureServiceTokenProviderException重新发布,没有内部异常 我想知道(如果可能出现任何暂时性错误),我是否需要检查异常消息,提取消息中嵌入的http状态代码,并在重试逻辑中重新发送一个例如我自己的AzureServiceTokenProvider暂时的异常捕获它 我的第一个问题是MSI auth是否存在

托管服务标识(MSI)身份验证是否存在暂时性错误,值得重试

通过阅读实现,我可以看到HttpRequestException和Exception被框架吸收,并作为AzureServiceTokenProviderException重新发布,没有内部异常

我想知道(如果可能出现任何暂时性错误),我是否需要检查异常消息,提取消息中嵌入的http状态代码,并在重试逻辑中重新发送一个例如我自己的AzureServiceTokenProvider暂时的异常捕获它


我的第一个问题是MSI auth是否存在任何已知的瞬时异常,其次是是否存在任何内置的重试逻辑或推荐的做法

记录了MSI返回的错误代码

AzureServiceTokenProvider确实包含HTTP响应未成功情况下的异常详细信息,因此异常中会包含404、429、500等错误代码以及异常消息。吸收的例外情况是未收到HTTP响应时,例如,没有MSI端点时。相关代码为


MSI文档中建议使用重试逻辑。我在应用程序身份验证库中添加了一个用于实现此重试逻辑的

感谢Varun,这是MSI资源代码的优秀资源,我发现研究MSI很棘手,因为文档有时在VM下,有时在AD下,有时在KeyVault下。啊,是的,我确实注意到状态代码被写入异常,但问题是,如果异常消息格式更改,状态代码在消息文本中而不是异常属性中很容易中断更改。谢谢你提高了github的票数,我会补充一些想法。