非本AD组外部用户调用Microsoft Graph API方案咨询
外部用户调用目标Microsoft Graph接口的落地方案
适配场景
你的需求可正常实现,适配场景为面向跨组织、个人用户的公共日程协作类SaaS应用,无需将所有使用用户纳入你方Azure AD租户的用户组即可提供服务。
具体配置步骤
- 将你方应用注册为Azure AD多租户应用,禁止使用单租户注册模式。注册完成后在身份验证配置页填写你方应用的合法重定向地址,同时开启对两类微软账户的登录支持:工作/学校组织账户、个人微软账户(Outlook、Hotmail等),覆盖所有潜在外部用户的账号类型。
- 权限类型选择用户委派权限,不要选择应用程序权限(应用权限要求全局租户管理员统一授权,完全不适配散客外部用户使用场景),只需配置最小必要权限即可:
User.Read:拉取登录用户的用户名、邮箱等基础个人资料数据Calendars.ReadWrite:授权应用对登录用户日历的读写权限,支撑创建日历事件功能Calendars.Read.Shared:授权应用读取用户可访问的共享日历、其他授权用户的忙闲状态,支撑查找会议时间功能
- 接口调用流程:外部用户首次使用相关功能时,跳转到微软官方身份认证页完成自有账号登录,登录页会明确展示你申请的所有权限,用户手动点击同意授权后,你方应用即可获取合法访问令牌,携带令牌即可正常调用对应Graph接口,全程不需要用户加入你方AD组。
边界说明
无微软账户的外部用户无法直接通过Graph接口对接其日历数据,这类用户可引导注册免费微软账户后再使用相关日程功能。
调用查找会议时间接口时,若需要同时匹配多个参会人的空闲时段,所有涉及的参会人都需要单独完成对应权限授权,否则接口无法拉取未授权用户的日历忙闲信息,无法生成准确的会议时间推荐。
内容的提问来源于stack exchange,提问作者dragalur
相关产品推荐
相关产品推荐

