我有一个.net核心API和用户。授予了读取委托权限。startup.cs中的身份验证部分:
services.AddAuthentication("Bearer")
.AddMicrosoftIdentityWebApi(Configuration.GetSection("AzureAd"));
获取图形API客户端:
var credential = new DefaultAzureCredential();
var token = credential.GetToken(
new Azure.Core.TokenRequestContext(
new[] { "https://graph.microsoft.com/.default" }));
var accessToken = token.Token;
_graphServiceClient = new GraphServiceClient(
new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.CompletedTask;
}));
不确定是否需要申请类型权限,使用用户/{userID},但为什么不明白,获取错误:ME请求仅对委托认证流有效。
2条答案
按热度按时间uemypmqf1#
以下是使用委派权限和应用程序权限访问用户详细信息所需的权限:
至于此处注解中提到的for /me终点:
希望这个有用。
eufgjt7s2#
不确定是否需要申请类型权限,使用用户/{userID},但为什么不明白,获取错误:me请求仅对委派身份验证流有效
您正在定义委派权限,但在其中传递令牌。请查看以下文档:
首先让我澄清一下,什么时候需要委托权限。如果你想从你的应用程序访问UserList,它被称为应用程序权限,那么你需要传递auth令牌。但是如果你想在你需要委托权限的用户登录时访问UserList,那么就不需要传递auth令牌。因此,当你把它们混合在一起时,你会遇到这个特殊的错误。
拜托
权限验证提供程序:
根据您的方案,您可以使用多种身份验证协议调用Graph API。例如,授权代码流使本机应用程序和Web应用程序能够以用户的名义安全地获取令牌。您可以按如下方式实现:
**注意:**更多详细信息请点击此处
使用图形SDK:
**注意:**您可以check here
使用令牌获取服务:
Program.cs配置:
您可以在这里查看详细信息。
**注意:**如果您仍需要更多信息,可以check our official document here.