我在 Microsoft Active Directory 中注册了一个 Multi-Tenancy 应用程序,该应用程序使用管理员同意来访问 Microsoft Graph API 中的某些应用程序范围 API。它使用 /token
端点获取 token ,然后调用这些 Graph API。它运行良好。
https://docs.microsoft.com/en-us/graph/auth-v2-service#token-request
现在我想增强我的应用程序以访问一些委托(delegate)(用户)范围的 API,这些 API 不允许在应用程序范围内访问。我的应用程序已配置为在管理员同意时向管理员请求这些委派权限。但我想将这些 API 称为目录中的每个用户,而不是安装我的应用程序的管理员。
重要的是,让组织中的每个用户单独通过我的应用程序的 OAuth 流程对我来说是不可行的。
那可能吗?
我可以通过将我的应用程序 token 交换为用户 token 以某种方式冒充用户吗?
管理员能否以编程方式为我的应用程序生成 token 作为个人用户,就好像他们已通过 OAuth 流程一样?
最佳答案
不可以,您不能将应用程序 token 转换为委托(delegate) token 。充当特定用户的唯一方法是让该用户将这些事件“委托(delegate)”给您的应用程序。
请注意,管理员同意仅允许您的应用在租户内运行。它来自用户同意,而不是用户同意的超集。为了获得委托(delegate) token ,您需要获得用户和管理员的同意。
关于oauth-2.0 - 在 Microsoft Graph API 中,获得管理员同意的应用是否可以为与批准它的管理员不同的用户生成 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690462/