Обработка временных ошибок для аутентификации Azure MSI - PullRequest
0 голосов
/ 12 ноября 2018

Существуют ли ошибки при аутентификации Managed Service Identity (MSI), которые являются временными и заслуживающими повторного запуска?

При чтении реализации, которую я вижу, HttpRequestException и Exception поглощаются платформой и повторно генерируются как AzureServiceTokenProviderException без внутреннего исключения.

https://github.com/Azure/azure-sdk-for-net/blob/25adfede2b99391c29b5913fc289ff9511c9b26d/src/SdkCommon/AppAuthentication/Azure.Services.AppAuthentication/TokenProviders/MsiAccessTokenProvider.cs

Мне интересно (если возможны какие-либо временные ошибки), нужно ли мне проверять сообщение об исключении, извлекая встроенный код состояния http в сообщение, и повторно вызыватьнапример, мой собственный AzureServiceTokenProvider Transient Исключение, фиксирующее его в моей логике повторения.

Мой первоначальный вопрос: есть ли какие-либо известные переходные исключения для аутентификации MSI и, во-вторых, есть ли встроенная логика повторения илирекомендуемые практики?

1 Ответ

0 голосов
/ 12 ноября 2018

Там коды ошибок, которые возвращает MSI, задокументированы здесь .

AzureServiceTokenProvider содержит сведения об исключении для случаев, когда ответ HTTP не был успешным, поэтому коды ошибок, такие как 404, 429, 500, будут включены в исключение вместе с сообщением об исключении. Исключением являются случаи, когда HTTP-ответ не был получен, например, когда нет конечной точки MSI. Соответствующий код здесь .

В документации MSI рекомендуется использовать логику повтора здесь . Я добавил проблему GitHub для реализации этой логики повторов в библиотеке аутентификации приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...