在 Azure Active Directory 中,我注册了一个新应用并授予它 Read and create online meetings
权限。我已授予管理员许可,现在我正在尝试通过命令行创建会议。
我为应用生成了一个客户端密码。
然后我使用我的租户 GUID、应用程序的客户端 ID 和我生成的客户端密码请求访问令牌。这给了我一个 jwt。当我在角色中解码 JWT 时,我可以看到 "OnlineMeetings.ReadWrite.All"
,这让我希望我可以使用此不记名令牌实际创建会议。
然后我向 https://graph.microsoft.com/v1.0/users/<my-user-guid>/onlineMeetings
发送一个 POST 请求
具有以下正文:
{
"startDateTime":"2021-03-16T14:33:30.8546353-07:00",
"endDateTime":"2021-03-16T15:03:30.8566356-07:00",
"subject":"Application Token Meeting",
"participants": {
"organizer": {
"identity": {
"user": {
"id": "<my-user-guid>"
}
}
}
}
}
响应返回
"code": "Forbidden",
"message": "Application does not have permission to Create online meeting on behalf of this user.",
我错过了什么吗?
编辑:
正如一些评论建议我应该创建一个应用程序访问策略。所以我正在关注要求我Connect using admin credentials
当我使用我的帐户运行 Connect-MicrosoftTeams -Credential $userCredential
时,它失败并显示以下错误:
Connect-MicrosoftTeams: accessing_ws_metadata_exchange_failed: Accessing WS metadata exchange failed: Response status code does not indicate success: 406 (NotAcceptable).
Connect-MicrosoftTeams: accessing_ws_metadata_exchange_failed: Accessing WS metadata exchange failed
Connect-MicrosoftTeams: Response status code does not indicate success: 406 (NotAcceptable).
Connect-MicrosoftTeams: : Unknown error
但这正是让我困惑的地方。我真的不知道我是否正在尝试使用正确的帐户登录。我在 azure 上使用我的个人帐户,这(afaik)不是 Skype for business 的商业帐户。 我正在运行命令以登录 azure 门户的 PowerShell 界面。我应该在我的本地机器上运行它吗? 我想我还没有完全理解需要配置的所有活动部件。 我可以在 azure 门户界面的某处添加这些应用程序访问策略吗?
答案 0 :(得分:0)
根据 api documentation,确保您向应用程序授予 OnlineMeetings.ReadWrite.All application permission
。然后您需要使用 client credential flow 来获取访问令牌。
请注意,当您使用应用程序令牌创建在线会议时,管理员必须创建一个 application access policy 并将其授予用户,授权策略中配置的应用代表该用户创建在线会议(请求路径中指定的用户 ID)。