我想收到所有用户的电子邮件。我正在使用代码流认证,我正在开发具有委派权限的多租户应用程序。我认为令牌流认证(守护进程或单租户的 )不适合我。
以上API仅返回经过身份验证的用户的消息。有没有办法使用Graph API登录用户(模拟)?请为此问题提供解决方案。
答案 0 :(得分:0)
如果您拥有委派权限,则可以https://graph.microsoft.com/v1.0/Ueers('user@domain.com')/messages
获取委托/模拟用户的消息。
答案 1 :(得分:0)
要为组织中的所有用户获取消息,您可以使用委派流或客户端凭据流。
使用委派流程,您使用管理员同意端点请求组织中的所有用户访问,管理员代表组织中的所有用户同意应用程序,当用户与应用程序交互时,他们未获得同意UI和应用程序可以为已经委派应用程序权限和请求的资源的用户获取访问令牌。以下是介绍如何执行此操作的文章:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-scopes#admin-restricted-scopes
如果要构建非交互式应用程序(如服务守护程序),则第二个选项更合适,在这种情况下,您使用的只能使用应用程序的标识访问数据。以下是介绍如何执行客户端凭据流的文章:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-protocols-oauth-client-creds
使用任一种访问邮箱的方法,您都可以请求Mail.Read权限,然后向https://graph.microsoft.com/v1.0/users(userId|UPN)/messages端点发出请求。