我正在尝试从我的客户端应用程序调用Authenticated API。但是,在进行 AcquireTokenAsync 时,我收到以下错误“ authority_not_in_valid_list:'权限'不在有效地址列表中 ”
这是我的代码段:
resourceUrl = "https://myApiEndPoint.com";
var clientCredential =
new ClientCredential( myClientAppId, myClientSecretKey );
// myClientAppId和myClientSecretKey是Azure门户的值
var authContext =
new AuthenticationContext( "https://my_authority/myApiEndPoint");
return await authContext.AcquireTokenAsync( resourceUrl, clientCredential );
在我的应用程序客户端ID的azure Portal中,我已授予访问https://myApiEndPOint.com api的委派权限。
有关可能导致此问题的原因以及不在有效列表中意味着什么的任何想法?
答案 0 :(得分:0)
我理解:
您在Azure门户中创建了应用程序,因此权限是Azure AD端点。因此权威可能是https://login.microsoftonline.com/common?或者你有充分的理由使用" https://my_authority"
您已授予委派权限以访问API。这意味着您的应用程序将以用户名访问API。但是,您使用的AcquireTokenAsync方法正在使用" ClientCredential"流程(意思是申请秘密) 您可能更愿意使用另一个覆盖传递resourceUri,clientId,...
如果这是您的使用案例,我建议您查看active-directory-dotnet-webapi-onbehalfof示例(请参阅here)