3

我有一个 ac sharp 类库,它使用 AMO 库连接到 Azure 分析服务。

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

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

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

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

4

2 回答 2

6

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

在此处查看自定义活动的工作示例。

它的连接部分可以简化为:

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>

于 2017-09-28T23:09:28.127 回答
2

假设您可以在 Azure Active Directory 的上下文中注册一个服务主体,自定义活动代码可以使用该服务主体对 SSAS 进行身份验证。对于 Azure Data Lake 等其他服务来说,情况当然也是如此。

例如,使用如下方法创建您的凭证:

    private static ServiceClientCredentials AuthenticateAzure(string domainName, string clientID, string clientSecret)
    {
        SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());

        var clientCredential = new ClientCredential(clientID, clientSecret);
        return ApplicationTokenProvider.LoginSilentAsync(domainName, clientCredential).Result;
    }

查看有关服务到服务身份验证的此 MS 文档页面:

https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-authenticate-using-active-directory

如果不是,您可能必须改用 Azure Functions 来执行此操作...

https://azure.microsoft.com/en-gb/blog/automating-azure-analysis-services-processing-with-azure-functions/

希望这可以帮助。

于 2017-05-23T11:51:43.970 回答