我正在开发一个基于Office.js(非VSTO)的Word加载项,并且我使用SSO功能outlined here进行身份验证。
我在某些情况下遇到Office.js方法返回的令牌问题Office.context.auth.getAccessTokenAsync()
据我了解,此方法旨在从Office返回访问令牌,然后可以将其交换为Microsoft Graph API令牌。为了使此交换有效,Office令牌必须在其access_as_user
声明中包含值scp
。
工作案例
对于Azure Active Directory中的普通用户,Office令牌在声明中包含access_as_user
范围,并且我能够成功地将该令牌换成图表令牌。
破案
对于Azure Active Directory中的来宾(又称B2B)用户,Office令牌上的scp
声明为空,我无法将该令牌换成图表令牌。
我已经与微软公开了问题,并在某种程度上与他们的开发人员就此问题进行了沟通。从那时起,听起来客人用户的缺失范围可能是该功能中的错误。任何人都可以确认此功能是否旨在与访客用户合作,或提供建议,以便在这种情况下使用此功能?