我下载了下面的示例以从 MS Graph 获取访问令牌,它运行良好。现在我更改了代码以从自定义 Web API 获取令牌。在apps.dev.microsoft.com 上,我注册了一个客户端应用程序和一个API。
private static async Task<AuthenticationResult> GetToken()
{
const string clientId = "185adc28-7e72-4f07-a052-651755513825";
var clientApp = new PublicClientApplication(clientId);
AuthenticationResult result = null;
string[] scopes = new string[] { "api://f69953b0-2d7f-4523-a8df-01f216b55200/Test" };
try
{
result = await clientApp.AcquireTokenAsync(scopes, "", UIBehavior.SelectAccount, string.Empty);
}
catch (Exception x)
{
if (x.Message == "User canceled authentication")
{
}
return null;
}
return result;
}
当我运行代码时,我通过对话框登录 AD,在调试器中得到以下异常:
错误:无效客户端消息 =“AADSTS65005:应用程序 'CoreWebAPIAzureADClient' 请求资源上不存在的范围 'offline_access'。请联系应用供应商。\r\n跟踪 ID: 56a4b5ad-8ca1-4c41-b961-c74d84911300\ r\n相关 ID:a4350378-b802-4364-8464-c6fdf105cbf1\r...
帮助感谢尝试了几天...