无法将Active Directory用户添加到Azure SQL

时间:2019-03-29 11:05:50

标签: c# azure-active-directory azure-sql-database azure-functions

我正在尝试通过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

问题仍然存在。

0 个答案:

没有答案