我正在尝试通过Azure Function APP的以下查询将Active Directory用户添加到Azure Sql数据库中,从而遇到一些问题。
我需要从azure函数应用程序而非本地将Active Directory用户添加到Azure SQL。
首先尝试在内部部署,可以与保持完整的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应用程序(Console / web)中正常运行。如果我们将它们托管在Azure应用服务中并尝试使用相同的代码,将出现以下错误
发生一个或多个错误
第二种方式:
我们打开了我的Azure Function应用程序的托管服务身份,并尝试生成AD令牌并将其用于添加AD用户。出现以下错误。
目前找不到主要的“ [EMAIL @ DOMAINNAME]”。请稍后重试。
我从Google获得了此链接,并遇到了一些文章,并尝试如下进行操作,
CREATE USER [name_emaildomain#EXT#@yourcompany.onmicrosoft.com] FROM EXTERNAL PROVIDER
问题仍然存在。