azure - Graph API - 自动获取电子邮件(委派权限)

标签 azure rest microsoft-graph-api azure-ad-graph-api

我正在开发一个后台应用程序(不可能进行用户交互),并且我想使用 Graph API 自动从某些邮箱获取所有电子邮件。但我面临一些问题:

  1. 如果我使用应用程序权限,我可以访问组织中的每个邮箱,这不是一个好的解决方案。是否可以限制某些邮箱的访问?我们使用的是本地 Exchange,而不是 Exchange Online,因此此链接不相关 ( https://learn.microsoft.com/en-us/graph/auth-limit-mailbox-access )。

  2. 如果我使用委托(delegate)权限,应用程序将需要用户交互(据我所知),但这不可能,因为它应该在后台运行。我正在研究不同的身份验证流程,但没有一个真正适合我的需要。也许可以通过刷新 token 流来完成,但它似乎很容易受到攻击。是否可以在没有用户交互的情况下使用委派权限?如果是,最好的方法是什么?

最诚挚的问候 J

最佳答案

首先,你不能使用delegated permissions没有用户。委派权限由具有登录用户的应用程序使用。

看来Resource Owner Password Credentials(ropc) flow它允许应用程序通过直接处理用户的密码来登录用户,这是您的最佳选择。但它存在风险,请参阅文章中的重要以确保您可以使用它。仅当无法使用其他更安全的流程时,才应使用此流程。

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

client_id=<client_id>
&scope=user.read%20openid%20profile%20offline_access
&<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="11646274637f707c742c5c68446274637f707c74517c6845747f707f653f7e7f7c7872637e627e77653f727e7c" rel="noreferrer noopener nofollow">[email protected]</a>
&password=<password>
&grant_type=password

关于azure - Graph API - 自动获取电子邮件(委派权限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67632287/

相关文章:

java - Jersey/JAX-RS ExceptionMappers 和继承

java - 使用restful web服务代替soap,而不改变请求的用户部分

microsoft-graph-api - Microsoft Graph API - 503 ErrorServiceUnavailable

c# - 使用别名地址过滤用户 - MS Graph

azure - 通过postman调用microsoft graph api

azure - 如何通过 Azure DNS 区域的 ARM 模板删除 DNS 记录

sql - 有没有其他方法可以在sql中实现以下逻辑?

android - 签名无效 - 提供的签名与来自 Android 的 WooCommerce REST API 调用不匹配

c# - 将存档的 blob 复制到在线层

azure - 设置 Azure 诊断的明确步骤