访问令牌对Azure数据目录的权限不足

时间:2019-07-24 19:46:35

标签: authentication token access-token azure-data-catalog

我正在尝试使用客户端密钥对Azure数据目录发出API调用,但是出现“拒绝权限”错误。

我能够创建令牌,并且已经在AAD中向客户端应用程序授予了必要的权限。

如果我将身份验证方法更改为在用户登录时使用委托访问,则可以使用,但是如果我尝试使用客户端机密,则生成的令牌没有适当的权限。

以下是我使用各种示例更改的一些代码

此代码中的令牌有效

//get the token

authResult = await authContext.AcquireTokenAsync(resourceUri, clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Always));

//the token from this code doesn't work

IConfidentialClientApplication app;

app = ConfidentialClientApplicationBuilder.Create(clientId)
                .WithClientSecret(clientSecret)
                .WithAuthority(new Uri(authorityuri))
                .Build();

string[] scopes = new string[] { "https://api.azuredatacatalog.com/.default" };

result = await app.AcquireTokenForClient(scopes);

我收到此错误远程服务器返回错误:

  

(403)AccessDenied:访问被拒绝。.

1 个答案:

答案 0 :(得分:1)

以下是配置服务主体配置以支持ADC REST API的高级步骤

  • Azure Active Directory |应用注册–选择应用程序类型和URL的Web应用程序/ API可以是任何示例,例如:http://portal.azure.com
  • 选择应用程序|所需权限|添加Microsoft Azure数据目录
  • 导航到http://www.azuredatacatalog.com |设置-根据业务需要将服务主体添加到目录用户,您可以将其添加到词汇表admin / catalog admin。格式为clientid @ tenantid

**** Clientid = Azure活动目录|应用注册|应用程序ID **

** TenantID = Azure活动目录|属性|目录ID ****