我正在尝试使用来自 Azure Function APP 的以下查询将 Active Directory 用户添加到 Azure Sql 数据库中,面临一些问题。
我需要将 Active Directory 用户从 azure 函数应用程序添加到 Azure SQL,而不是在本地。首先在本地尝试,使用保留完整的 AD 密码连接字符串正常工作,并提供查询,如
CREATE USER [EMAIL@DOMAIN] FROM EXTERNAL PROVIDER
如果我在 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 应用程序(控制台/Web)上运行良好。如果我们将它们托管在 Azure 应用服务中并尝试使用相同的代码,则会收到以下错误
发生一个或多个错误
第二种方式:
我们为我的 Azure Function App 打开了托管服务标识,并尝试生成 AD 令牌并将其用于添加 AD 用户。出现以下错误。
目前无法找到主体“[EMAIL@DOMAINNAME]”。请稍后再试。
我从谷歌得到这个链接,看到了一些文章,然后尝试如下,
CREATE USER [name_emaildomain#EXT#@yourcompany.onmicrosoft.com] FROM EXTERNAL PROVIDER
问题还是一样的。