【发布时间】:2020-06-24 12:54:00
【问题描述】:
任何在特定租户下登录到我们系统(身份服务器作为身份验证)的用户都应该能够将活动创建为在线会议(MS Teams)。
我们按照Build ASP.NET Core MVC apps with Microsoft Graph 和Create and enable an event as an online meeting 创建了一个应用程序,该应用程序对组织的AD 用户 进行身份验证,并允许他将活动创建为在线会议。
我们能够成功实施它,并且能够将活动创建为在线会议。
但这里的确切场景是在我们的 Web 应用程序中经过身份验证的任何用户(不是 AD 用户)都应该能够创建 MS Teams 会议活动并与应该能够的其他参与者共享加入会议。
我不知道如何做到这一点。
编辑
或者至少我怎么create onlineMeeting ?我尝试使用Client credentials provider 如下
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create("<<App_Id>>")
.WithTenantId("<<Tenant_Id>>")
.WithClientSecret("<<Client_Secret>>")
.Build();
ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authenticationProvider);
var onlineMeeting = new OnlineMeeting
{
StartDateTime = DateTimeOffset.Parse("2020-01-15T21:30:34.2444915+05:30"),
EndDateTime = DateTimeOffset.Parse("2020-01-15T22:00:34.2464912+05:30"),
Subject = "User Token Meeting"
};
var meeting = graphClient.Me.OnlineMeetings
.Request()
.AddAsync(onlineMeeting).Result;
但它正在抛出
Code: Forbidden
Inner error:
AdditionalData:
request-id: <<some_id>>
date: 2020-07-09T16:42:23
ClientRequestId: <<some_id>>
【问题讨论】:
-
所以您需要所有经过身份验证的用户都能够创建会议,而不仅仅是 AD 一次?对吗?
-
是的,在我的应用程序中通过身份验证的任何用户都应该能够创建会议。
-
@JamesMead 我对代表的理解仍然是他们正在传递为用户获得的令牌。 docs.microsoft.com/en-us/azure/active-directory/develop/… 在此他们解释了令牌 A 应与客户端 ID 和机密一起再次传递。
-
对,我的想法是让一个 A/D 用户代表您的其他用户 [由您的应用程序验证的用户] 执行操作。不知道是否可行。
标签: c# microsoft-graph-api microsoft-graph-teams