如何通过 Azure 批处理和数据工厂使用 Azure Analysis Services 进行身份验证

2023-12-28

我有一个 c Sharp 类库,它使用 AMO 库连接到 Azure Analysis Services。

我想将其用作数据工厂管道的一部分来刷新多维数据集分区。这是通过 Azure 批处理作为自定义 .net 活动完成的。

var server = new Server();
server.Connect("Provider=MSOLAP;Data Source=asazure://uksouth.asazure.windows.net/abcd;Initial Catalog=xyz");

在本地运行它可以正常工作,但是它不能在云中运行。它当前出错,因为它没有在我的用户帐户下运行。我知道我可以将用户名和密码添加到连接字符串中,但如果可能的话,我宁愿给予它某种形式的授权。

是否还有其他方法可以使用 Azure 分析服务进行身份验证?


现在可以使用服务帐户连接到 AAS。

查看自定义活动的工作示例here https://github.com/Azure/Azure-DataFactory/blob/master/Samples/AzureAnalysisServicesProcessSample/ProcessAzureASActivity.cs.

其连接部分可简化为:

var authority = "https://login.windows.net/<tenant-id>";
var resource = "https://southcentralus.asazure.windows.net";
var appId = "***";
var appSecret = "***";

AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential credentials = new ClientCredential(appId, appSecret);
var task = authContext.AcquireTokenAsync(resource, credentials);
task.Wait();
string token = task.Result.AccessToken;

var connectionStringTemplate = "Provider=MSOLAP;Data Source=asazure://southcentralus.asazure.windows.net/xxxxxx;Initial Catalog= xxx;User ID=;Password={0};Persist Security Info=True;Impersonation Level=Impersonate";
var connectionString = string.Format(CultureInfo.InvariantCulture, connectionStringTemplate, token);

var server = new Server();
server.Connect(connectionString);

您需要以格式授予您的服务帐户访问 AAS 模型的权限app:<appId>@<tenantId>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Azure 批处理和数据工厂使用 Azure Analysis Services 进行身份验证 的相关文章

随机推荐