oauth-2.0 - 在 Microsoft Graph API 中,获得管理员同意的应用是否可以为与批准它的管理员不同的用户生成 token ?

标签 oauth-2.0 microsoft-graph-api

我在 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/

相关文章:

c# - 如何使用 Microsoft Graph API c# SDK 在 DriveItem 上获取 Sharepoint ListItem

office365 - Microsoft Graph API - 获取具有定义大小的个人资料图片

microsoft-graph-api - SharePoint REST API 与 Microsoft Graph API;推荐的方法是什么?

javascript - 如何将 oauth2 token 发送给客户端并存储它们?

spring-security - Spring Security oauth2 客户端 - 如何获取 JWT token

java - ms Graph api(beta) 访问被拒绝

flutter - OAuth2:注销后无登录对话框,直接登录最后一个用户

python - 即使 access_type=offline,OAuth2.0 也无法获取刷新 token

google-api - Google Console 重定向 URI 中的子域

PHP oAuth POST 请求