在Microsoft Graph API中,具有管理员同意的应用程序是否可以为与批准它的管理员不同的用户生成令牌?

时间:2020-01-11 00:00:37

标签: oauth-2.0 microsoft-graph-api

我在Microsoft Active Directory中注册了一个多租户应用,该应用使用管理员同意来访问Microsoft Graph API中的某些应用程序范围API。它使用/token端点获取令牌,然后调用这些Graph API。运行良好。 https://docs.microsoft.com/en-us/graph/auth-v2-service#token-request

现在,我想增强我的应用程序以访问某些委派的(用户)作用域API,这些API不允许在应用程序作用域进行访问。我的应用已配置为在管理员同意时向管理员请求这些委派权限。但是我想以目录中的每个用户而不是安装我的应用的管理员的身份来调用这些API。

重要的是,让组织中的每个用户单独通过我的应用程序的OAuth流程对我来说是不可行的。

有可能吗? 我可以通过将应用程序令牌交换为用户令牌来模拟用户吗? 管理员可以通过编程方式做一些事情来生成令牌作为我的应用程序的单个用户,就像通过OAuth流程生成令牌一样吗?

1 个答案:

答案 0 :(得分:7)

否,您不能将应用程序令牌转换为委托令牌。将用作特定用户的唯一方法是让该用户“将”这些活动“委派”给您的应用程序。

请注意,管理员同意书仅表示同意您的应用在租户中运行。它是用户同意而非它的超集。为了获得委托令牌,您需要同时获得用户和管理员的同意。