Я пытаюсь добавить пользователя Active Directory в базу данных Azure Sql с помощью приведенного ниже запроса из приложения-функции Azure, столкнувшись с некоторыми проблемами.
Мне нужно добавить пользователя Active Directory в SQL Azure из приложения-функции Azureне локально.Сначала пробовал локально, работал нормально с сохранением полной строки соединения AD passowrd и выдавал запрос вроде CREATE USER [EMAIL@DOMAIN] FROM EXTERNAL PROVIDER
Если у меня хост в службе приложений Azure / не работает функция Azure.
Код C #
var cn = GetADConnection(dbName);
var tokenProvider = new AzureServiceTokenProvider();
string accessToken = await tokenProvider.GetAccessTokenAsync("https://database.windows.net/");
string query = @"CREATE USER [B19634@uniper.energy] FROM EXTERNAL PROVIDER";
var command = new SqlCommand(query, cn);
try
{
cn.AccessToken = accessToken;
cn.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
log.Info(ex.HResult + "_" + ex.Message);
}
finally
{
cn.Dispose();
command.Dispose();
}
Попробовал двумя способами, упомянутыми ниже,
Один способ:
Для этого нам требуется мандат строки подключения проверки подлинности пароля SQL Active Directory, он отлично работает из локальных приложений .Net (Консоль)/ Интернет).Если мы разместим их в службе приложений Azure и попытаемся использовать тот же код, появится следующая ошибка:
Произошла одна или несколько ошибок
Второй способ:
Мы включили удостоверение управляемой службы в свое приложение-функцию Azure, попытались сгенерировать токен AD и использовали его для добавления пользователя AD.Получение следующей ошибки.
принципал '[EMAIL @ DOMAINNAME]' не может быть найден в это время.Пожалуйста, повторите попытку позже.
Я получил эту ссылку от Google, наткнулся на какую-то статью и попробовал, как показано ниже,
CREATE USER [name_emaildomain#EXT#@yourcompany.onmicrosoft.com] FROM EXTERNAL PROVIDER
Тем не менее проблема та же.