我正在尝试使用客户端密钥对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:访问被拒绝。.
答案 0 :(得分:1)
以下是配置服务主体配置以支持ADC REST API的高级步骤
**** Clientid = Azure活动目录|应用注册|应用程序ID **
** TenantID = Azure活动目录|属性|目录ID ****