无法通过OAuth使用ADOMD连接到Azure AS

时间:2019-04-04 04:00:39

标签: c# asp.net azure azure-analysis-services adomd.net

我试图通过传入通过OAuth获得的访问令牌来尝试使用ADOMD连接到Azure Analysis Services,但是无论我设置了哪种权限以及尝试的凭据/令牌的组合如何,它都不会进行身份验证。我想确保我正确理解Azure AS身份验证。

以下是我的身份验证过程:

  1. GET发出https://login.microsoftonline.com/[tenant]/oauth2/authorize请求,以在前端获得授权令牌。应用ID已发送。提示用户登录。用户在另一个文本字段中输入数据源主机。
  2. 客户端发出POST请求以使用授权令牌和主机后端。
  3. 服务器向POST发送https://login.microsoftonline.com/[tenant]/oauth2/token请求以获取访问令牌。它发送应用程序ID,应用程序密钥,授权类型,代码和重定向URI。可从API获取访问令牌和刷新令牌。
  4. 然后,服务器使用以下连接字符串尝试进行ADOMD.NET连接:Provider=MSOLAP;Data Source={host};Initial Catalog=;User ID=;Password={access_token};Persist Security Info=True;Impersonation Level=Impersonate
  5. ADOMD.NET抛出一个错误,提示“身份验证失败”。

我已经添加了应用服务主体和我要使用SSMS登录到管理员角色的用户。

如果我对连接字符串进行硬编码,将用户名设置为app:{app-id},并将密码设置为客户端机密,则可以完美连接。但是,我需要用户身份验证。

我只是不正确理解有关如何使用ADOMD验证用户身份的概念吗?还是在此过程中我做错了什么?

0 个答案:

没有答案