Не удалось войти в систему для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'.- MSI (управляемая личность) - PullRequest
0 голосов
/ 21 мая 2019

Я следовал этому учебному пособию для защиты подключения базы данных SQL Azure от службы приложений с использованием управляемого удостоверения.

В Azure все работает как положено, но когда я пытаюсь отладить код локально, при открытии соединения появляется сообщение об ошибке ниже.

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

Я нашел несколько ссылок, где ониупомянул, что мы можем использовать расширение «Аутентификация службы Azure» для локальной отладки.

enter image description here

Я вошел в свою учетную запись Azure с расширением 'Azure Service Authentication'.Но все равно я получаю сообщение об ошибке.

public IActionResult GetData()
{
    var result = "connection opened.";
    var test = config.GetSection("ConnectionStrings")["MyDbConnection"];
    SqlConnection sql = new SqlConnection();
    sql.ConnectionString = test;
    sql.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result; //No issues while fetching the token.

    try
    {
        //Getting exception here when running locally...
        //Same code is working in Azure Webapp.
        sql.Open();
    }
    catch (Exception ex)
    {
        result = $"Error : {ex.Message}";
    }
    finally
    {
        if ( sql != null && sql.State == System.Data.ConnectionState.Open )
        {
            sql.Close();
        }
    }
    return Ok(result);
}

Другие сведения:

  • Сообщество Visual Studio 2019 - версия 16.1.0 Preview 3.0
  • .NET Core2.2

ОБНОВЛЕНИЕ 1: В этом сообщении о параметре connectionString для класса AzureServiceTokenProvider.Я попытался указать значение RunAs=Developer; DeveloperTool=VisualStudio для connectionString, но все еще столкнулся с той же проблемой.

1 Ответ

0 голосов
/ 22 мая 2019

Ответ ниже: Форум Microsoft

Привет, Хемант

На скриншоте видно, что вы вошли в Visual Studio с помощью Live ID.

Создана ли база данных в клиенте, связанном с рабочей учетной записью?

Какой пользователь установлен в качестве администратора AAD на сервере SQL Azure?

Учетная запись пользователя, под которой вы вошли в VS, должна быть добавлена ​​в базу данных в качестве пользователя для работы аутентификации.

Кроме того, в той же статье, на которую вы ссылались, есть раздел, в котором говорится о создании группы AAD и предоставлении соответствующих разрешений.

Вы также можете добавить своего пользователя в группу AAD.

Пожалуйста, дайте нам знать, если у вас есть дополнительные вопросы.

Предложено в качестве ответа сотрудником Kalyan Chanumolu-MSFTMicrosoft, Модератор 22 мая 2019 г., 3:55 Помечено как ответ Hemant.Shelar Среда, 22 мая 2019 г. 4:22 Среда, 22 мая 2019 г. 3:55

Примечание: Мне удалось это сделать, создав группу AAD и предоставив соответствующие разрешения.

ОБНОВЛЕНИЕ 1:

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

  1. Создана группа AAD, например 'hemantdotnetcore1'
  2. Добавить пользователей в эту группу (обычно эти пользователи будут разработчиками в среде DEV, которые хотят получить доступ к базе данных во время развитие)

enter image description here

  1. Перейдите к экземпляру сервера SQL и установите «Active Directory». админ. В этом примере я добавил 'hemantdotnetcore1' как активный каталог администратора.

enter image description here

  1. В visual studio перейдите к пункту «Аутентификация службы Azure» и войти в систему с любым пользователем, который является частью группы 'hemantdotnetcore1' это мой Azure Active Directory Admin '
  2. Теперь я могу использовать приведенный ниже ток, чтобы открыть соединение с SQL Server.

    sql.AccessToken = (новый AzureServiceTokenProvider ()). GetAccessTokenAsync ("https://database.windows.net/").Result;

enter image description here

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