0

我正在尝试使用来自 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

问题还是一样的。

4

0 回答 0