使用具有客户端凭据流的Graph API .NET SDK创建问候世界团队时,出现“未经授权”错误

问题描述

我已经创建了一个应用注册,并授予了必要的权限,然后授予了一些权限(+管理员同意):

Screenshot of app permissions

添加代码以进行身份​​验证并创建团队:

            IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
                        .Create("...")
                        .WithTenantId("...")
                        .WithClientSecret("...")
                        .Build();

        ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confidentialClientApplication);
        GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);

        var team = new Team
        {
            displayName = "My Sample Team",Description = "My Sample Team’s Description",AdditionalData = new Dictionary<string,object>()
            {
                {"template@odata.bind","https://graph.microsoft.com/v1.0/teamstemplates('standard')"}
            }
        };

        var t =  graphServiceClient.Teams
            .Request()
            .AddAsync(team).Result;

        Console.WriteLine("Hello World!" + t.Id);

结果:未经授权

解决方法

您使用的是已授予权限的示例:

enter image description here

如果您需要使用应用程序权限并使用client credential flow创建团队的示例,则应参考this

enter image description here