python - 微软图形API : Limiting MSAL Python Daemon app to individual user access

标签 python azure microsoft-graph-api azure-ad-msal

我正在构建一个 Python 守护程序应用程序来下载单个 O365 用户可以通过 Graph API 访问的文件。我正在尝试使用 MSAL 中的 ConfidentialClientApplication 类进行授权。

据我了解 - 这需要“应用程序权限”(Azure AD 中的 API 权限),而不是“委派权限”,管理员必须同意 Files.Read.All。

所以我的问题是:

  1. 这是否意味着,在管理员同意后,我的应用将有权访问组织中的所有文件?
  2. 如何将守护程序应用的访问权限限制为只有个人用户(我的 O365 用户/UPN)才能访问的文件?
  3. 我是否应该使用不同的身份验证流程,其中用户同意也是流程的一部分:例如代表(或)交互式(或)用户名密码?

谢谢!

最佳答案

这是否意味着,在管理员同意后,我的应用将有权访问组织中的所有文件?

是的,这通常是应用程序权限的缺点。

如何将对守护程序应用程序的访问权限限制为只有个人用户(我的 O365 用户/UPN)才能访问的文件?

我很确定您无法限制守护程序应用的 OneDrive 访问。例如,您可以限制守护程序应用程序的 Exchange 访问。

我是否应该使用不同的身份验证流程,其中用户同意也是流程的一部分:例如代表(或)交互式(或)用户名密码?

它肯定会允许您限制特定用户的访问权限。一般来说,我建议您不要使用用户名+密码(ROPC);如果您的帐户有例如,它将无法工作。艺术硕士。更安全的方法是您需要使用授权代码流程初始化守护程序应用程序一次。这将为您的应用程序提供一个刷新 token ,然后可以在需要时使用该刷新 token 为用户获取访问 token (以及新的刷新 token )。请注意,刷新 token 可能会过期,在这种情况下,用户需要再次初始化应用。

关于python - 微软图形API : Limiting MSAL Python Daemon app to individual user access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65608215/

相关文章:

azure - 如何计算将数据从 azure 数据湖移动到 google BigQuery 时的成本

android - 在 Azure 上处理请求时出错

microsoft-graph-api - 如何获取特定时间段内收件箱文件夹(包括子文件夹)中的邮件计数

oauth-2.0 - Microsoft Graph API 的访问 token 立即过期

python - 如何将值从 1 列分配给另一列并在 Pandas 中发出警告

python - 如何从索引列表中选择 QtableWidget 中的单元格

python - 使用乘法 ( * ) 意外行为生成子列表

azure - Windows Azure 支付

microsoft-graph-api - Microsoft Graph API - 存储数据的区域位置

python - 为什么魔术方法不会被 python 中的 __getattr__ 实现拦截?