Идентификация принципа обслуживания не работает с подключением конфигурации Azure в локальной среде с .Net и Azure. Ошибка 403 невозможно подключиться

У меня есть приложение .NET, которое подключается к локальной среде разработки конфигурации приложения Azure. он отлично работает со строкой подключения конфигурации приложения Azure. но когда я пытаюсь использовать идентификацию принципа обслуживания, это не удалось, выдает 403.

                string tenantId = "mytenatID";
                string clientId = "MyCLientID";
                string clientSecret = "MySecreat";
#if DEBUG
                Environment.SetEnvironmentVariable("AZURE_TENANT_ID", tenantId);
                Environment.SetEnvironmentVariable("AZURE_CLIENT_ID", clientId);
                Environment.SetEnvironmentVariable("AZURE_CLIENT_SECRET", clientSecret);
#endif
                builder.Configuration.AddAzureAppConfiguration(options =>
  options.Connect(
      new Uri(builder.Configuration["AppConfig:Endpoint"]),
        new ManagedIdentityCredential()));
            }
            catch (Exception ex)
            {

                throw;
            }

Также я добавил свой идентификатор клиента tenantId и секреты в

  1. запустить settings.json
  2. Системная и пользовательская среда

Также я добавил правильное разрешение для разрешения AP Azure AD. а также добавлен принцип обслуживания в IM конфигурации приложения Azure с ролью участника.

я тоже попробовал

  var credentialccc = new DefaultAzureCredential(new DefaultAzureCredentialOptions
  {
     // ExcludeEnvironmentCredential = true,
    //  ExcludeManagedIdentityCredential = true,
      ExcludeVisualStudioCredential = true,
      ExcludeAzureCliCredential = true,
      ExcludeAzurePowerShellCredential = true,
      ExcludeSharedTokenCacheCredential = true
  });

и

     builder.Configuration.AddAzureAppConfiguration(options =>
options.Connect(
    new Uri(builder.Configuration["AppConfig:Endpoint"]),
      new **DefaultAzureCredential**()));

Все попытки выдают мне ошибку 403 в локальной разработке. Дайте мне знать, кто-нибудь тоже сталкивается с подобной проблемой

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я создал одну конфигурацию приложения Azure с именем testappconfig01 со следующими ключами и значениями:

Первоначально я тоже получил ошибку 403, когда попытался подключить Azure App Config к субъекту-службе, имеющему роль участника, поскольку он не предоставляет прямой доступ к данным с использованием Microsoft Entra ID:

Чтобы устранить эту ошибку, вам необходимо назначить роли, такие как App Configuration Data Owner или App Configuration Data Reader, субъекту-службе в разделе «Конфигурация приложения» в зависимости от ваших требований:

В моем случае я использовал приведенный ниже код для подключения к Azure App Config и успешно получил ответ со значением ключа, например:

using Azure.Identity;
using Azure.Data.AppConfiguration;
using Azure;

try
{
    string tenantId = "tenantId";
    string clientId = "appId";
    string clientSecret = "secret";

    var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

    var client = new ConfigurationClient(
        new Uri("https://testappconfig01.azconfig.io"),
        credential);

    var setting = client.GetConfigurationSetting("key_name");

    Console.WriteLine(setting.Value);
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"Received a {ex.Status} status code with message: {ex.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"An unexpected error occurred: {ex.Message}");
}

Ответ:

Ссылка: Авторизуйте доступ к конфигурации приложений Azure с помощью Microsoft Entra ID

круто, роль, которую ты назначил, она работает

Maulik Dave 04.03.2024 07:37

я не вижу опции принятия, можете ли вы указать, где принять?

Maulik Dave 04.03.2024 08:08

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

Похожие вопросы

Как получить токен JWT из Azure b2c
Как реализовать согласие пользователя в мультитенантных приложениях, зарегистрированных в Azure AD B2, с графом Microsoft для доступа к API Microsoft Calendar?
Пользовательский профиль IEF Azure B2C не сохраняет displayName при создании из заданного имени и фамилии
Azure B2C Face id, биометрическая аутентификация Touch id
Добавьте арендатора Azure B2C в качестве поставщика удостоверений для Azure AD
Создайте новую регистрацию приложения и поток пользователей в существующем клиенте Azure B2C с помощью IaC
Ответ соединителя API Azure AD B2C автоматически преобразует атрибут пользователя в формате ISO-8601 в DateTime
Пользовательская страница входа не выполняет Javascript
Внешний идентификатор Microsoft Entra. Может ли внешний клиент войти в систему с помощью имени пользователя и пароля?
Предотвращение использования токена обновления для обновления токена доступа после завершения сеанса