如何生成Microsoft Graph API授权链接让客户自助创建应用并授权
实现方案
完全可以实现,你不需要给每个客户单独创建应用,也不需要登录客户的Azure门户操作,用Azure AD的多租户应用+管理员同意机制就能解决你的需求。
操作步骤
- 首先在你自己公司的Azure AD租户里注册多租户类型的应用
应用注册时支持的账户类型选择「任何组织目录中的账户(多租户)」,不需要设置重定向URI也可完成注册,注册后你会得到一个固定的应用ID,所有客户都共用这个ID,不需要每个客户生成新的应用ID。 - 第二步配置你需要的Microsoft Graph API权限
在应用的「API权限」页面添加所有你需要调用的接口权限,如果是后台无用户交互的取数场景,选应用程序权限;如果是有用户登录的交互场景,选委托的权限。添加完成后不要在你自己的租户点管理员同意,这个操作留给客户侧管理员完成。 - 第三步构造管理员同意链接发给客户
按如下模板构造链接,将占位符替换成你的实际参数即可:https://login.microsoftonline.com/organizations/v2.0/adminconsent?client_id=<你的多租户应用ID>&redirect_uri=<回调地址>&state=<自定义标识参数>
不需要接收回调的话,redirect_uri可填https://login.microsoftonline.com/common/oauth2/nativeclient,客户侧对应管理员点击链接登录自己的Office 365账号,完成同意操作即可。
注意事项
- 客户完成同意后,你不需要索要新的应用ID,直接用你之前注册的固定多租户应用ID,结合客户的租户ID,就能调用对应客户租户的Microsoft Graph API获取数据。
- 如果申请的是应用程序权限,必须由客户侧持有全局管理员、应用管理员或云应用管理员角色的账号完成同意操作,普通用户没有授权权限。
- 后续如果需要调整权限,你只需要在你自己侧的多租户应用里更新权限,重新生成同意链接让客户再同意一次即可,不需要修改其他配置。
内容的提问来源于stack exchange,提问作者APearTree
相关产品推荐
相关产品推荐

