Microsoft Graph API:将 MSAL Python 守护程序应用程序限制为个人用户访问
Microsoft Graph API: Limiting MSAL Python Daemon app to individual user access
我正在构建一个 Python 守护程序应用程序来下载单个 O365 用户可以通过 Graph API 访问的文件。我正在尝试在 MSAL 中使用 ConfidentialClientApplication class 进行授权。
根据我的理解 - 这需要“应用程序权限”(Azure AD 中的 API 权限)而不是管理员必须同意的“委派权限”Files.Read.All。
所以我的问题是:
- 这是否意味着,在管理员同意后,我的应用程序将有权访问组织中的所有文件?
- 如何将对守护程序应用程序的访问限制为只有个人用户(我的 O365 user/UPN)可以访问的文件?
- 我是否应该使用不同的身份验证流程,其中用户同意也是流程的一部分:例如代表(或)交互(或)用户名密码?
谢谢!
这是否意味着,在管理员同意后,我的应用程序将有权访问组织中的所有文件?
是的,这通常是应用程序权限的缺点。
如何将对守护程序应用程序的访问权限限制为只有个人用户(我的 O365 user/UPN)可以访问的文件?
我很确定您不能限制守护程序应用程序对 OneDrive 的访问。例如,您可以限制守护程序应用程序的 Exchange 访问。
我是否应该使用不同的身份验证流程,其中用户同意也是流程的一部分:例如代表(或)交互(或)用户名密码?
它当然允许您限制特定用户的访问。一般来说,我建议你不要使用用户名+密码(ROPC);如果您的帐户有例如,它不会以任何方式工作艺术硕士。更安全的方法是您需要使用授权代码流程初始化守护程序应用程序一次。这会为您的应用程序提供一个刷新令牌,然后它可以在需要时使用该令牌为用户获取访问令牌(以及一个新的刷新令牌)。请注意,刷新令牌可能会过期,在这种情况下,用户需要再次初始化应用程序。
我正在构建一个 Python 守护程序应用程序来下载单个 O365 用户可以通过 Graph API 访问的文件。我正在尝试在 MSAL 中使用 ConfidentialClientApplication class 进行授权。
根据我的理解 - 这需要“应用程序权限”(Azure AD 中的 API 权限)而不是管理员必须同意的“委派权限”Files.Read.All。
所以我的问题是:
- 这是否意味着,在管理员同意后,我的应用程序将有权访问组织中的所有文件?
- 如何将对守护程序应用程序的访问限制为只有个人用户(我的 O365 user/UPN)可以访问的文件?
- 我是否应该使用不同的身份验证流程,其中用户同意也是流程的一部分:例如代表(或)交互(或)用户名密码?
谢谢!
这是否意味着,在管理员同意后,我的应用程序将有权访问组织中的所有文件?
是的,这通常是应用程序权限的缺点。
如何将对守护程序应用程序的访问权限限制为只有个人用户(我的 O365 user/UPN)可以访问的文件?
我很确定您不能限制守护程序应用程序对 OneDrive 的访问。例如,您可以限制守护程序应用程序的 Exchange 访问。
我是否应该使用不同的身份验证流程,其中用户同意也是流程的一部分:例如代表(或)交互(或)用户名密码?
它当然允许您限制特定用户的访问。一般来说,我建议你不要使用用户名+密码(ROPC);如果您的帐户有例如,它不会以任何方式工作艺术硕士。更安全的方法是您需要使用授权代码流程初始化守护程序应用程序一次。这会为您的应用程序提供一个刷新令牌,然后它可以在需要时使用该令牌为用户获取访问令牌(以及一个新的刷新令牌)。请注意,刷新令牌可能会过期,在这种情况下,用户需要再次初始化应用程序。