Использование DefaultAzureCredential с Ubuntu + Rider

Я пытаюсь запустить проект .NET 6.0 локально на моем компьютере с Ubuntu с помощью rider. Проект, использующий класс DefaultAzureCredential, но когда я пытаюсь запустить его, выдает следующую ошибку

«DefaultAzureCredential не удалось получить токен из включенных учетных данных. Дополнительную информацию см. в руководстве по устранению неполадок . . Дополнительную информацию см. в руководстве по устранению неполадок .Аутентификация ManagedIdentityCredential недоступна. Не удалось получить токен из конечной точки управляемого удостоверения при нескольких попытках.\n– Операционная система Linux 5.19.0-26-generic #27-Ubuntu SMPPREEMPT_DYNAMIC, среда, 23 ноября, 20:44:15 UTC 2022, не поддерживается.\n– Сохраненные учетные данные не найдены. Необходимо аутентифицировать пользователя в учетной записи VSCodeAzure. Дополнительные сведения см. в руководстве по устранению неполадок. https://aka.ms/azsdk/net/identity/vscodecredential/troubleshoot\n- Запустите 'az login' для настройки учетной записи\n- PowerShell не установлен."

Я попытался установить Azure Cli и использовать az login, который успешно входит в систему, но это не устраняет ошибку. Я также попытался установить Azure Toolkit в райдере и войти через него с помощью «кода устройства». Опять же, это работает успешно, но при запуске приложения я все еще получаю ту же проблему.

Этот же проект отлично работает с использованием райдера или визуальной студии в Windows, поэтому, похоже, что-то в том, что этот класс не может использовать учетные данные на моем компьютере с Linux, что не является проблемой при использовании Windows.

2 ответа

По умолчанию AzureCliCredential должен считывать учетные данные из$HOME/.azureпоэтому он должен иметь возможность его прочитать. Возможно, значения$HOMEили$AZURE_CONFIG_DIRотличаются (может быть, вы запускаете приложение как root? Или в каком-то контейнере?)

Я бы предложил установитьincludeInteractiveCredentialsкtrueв конструкторе:

      new DefaultAzureCredential(true)

Таким образом, если учетные данные не найдены, необходимо открыть браузер, чтобы разрешить аутентификацию.

Я попытался установить инструмент Azure Developer CLI и войти в систему. Это решило мою проблему, когда DefaultAzureCredential не обнаруживал мои подписки , получающие значения из KeyVault.

Другие вопросы по тегам