【发布时间】:2022-03-03 21:15:20
【问题描述】:
问题
在我们的 Teams 应用选项卡中,我们希望显示当前用户的个人资料图片/照片。
我们尝试过的事情
-
用户通过Single Sign-on for tabs 进行身份验证,我们存储一些用户信息以跟踪我们应用程序的一些进度。无法使用 单点登录 进程中的令牌从 Microsoft Graph API 获取配置文件图像 — 缺少
User.Read权限。 -
在 Microsoft Teams Javascript SDK 的 Teams 上下文中,用户个人资料图像似乎不可用。
-
在 SharePoint 中,可以使用特殊 URL:
https://<tenant>.sharepoint.com/_layouts/15/userphoto.aspx?size=L&accountname=<upn>显示当前用户的个人资料图像。如果用户尚未登录到 SharePoint,这在具有“无访问权限”重定向的 Teams 中会失败。
看似可行的解决方案
-
获得
User.Read权限的额外认证步骤;不理想,没有人会为了显示个人资料图片而按下额外的按钮。 -
说服标签单点登录流程包含
User.Read;在各种配置中添加权限并没有改变生成的令牌中的任何内容。 -
使用自定义 OAuth2 流程,根据this blog post,可以在 bots 流程中设置单点登录。 Teams SDK 似乎没有同样的可能性。
-
以某种方式确保用户在 SharePoint 中经过身份验证,以便我们可以使用神奇的个人资料图像 URL;似乎不太可能。
是否有解决方法和/或我们尚未尝试解决此问题的方法?
【问题讨论】:
-
无关评论,但我喜欢头像!
-
您需要调用 Graph API 来获取 Profile Image,然后将其显示在选项卡中。 docs.microsoft.com/en-us/graph/api/…
-
从 Microsoft Graph API 获取配置文件图像需要额外的权限 (
User.Read),我想阻止这种情况。这意味着用户必须两次授予权限才能使用该应用程序,一次才能登录,第二次仅用于个人资料图片。 -
据我了解,user.read默认是注册Bot时添加的权限。所以你需要调用Graph API获取Profile Image。
-
情况并非如此,当对机器人或选项卡使用单点登录过程时,
User.Read权限在您获得的令牌中不可用(通过on_behalf_of流)。
标签: azure-active-directory botframework microsoft-teams