我从客户的 365 帐户的专用收件箱中阅读电子邮件并下载附件。该应用程序必须作为 Windows 服务运行 24/7。它是使用 EWS 库用 C# 编写的,但由于即将弃用,我需要切换到 MSGraph,但是我在使用 Graph 客户端库的 v4.5.0 进行身份验证时遇到了问题。该应用程序已正确配置为多租户并设置了权限,但我无法确定要使用哪种身份验证,请记住 a)我只会拥有来自客户的邮箱帐户用户名/密码 b)期望他们做任何事情AD 允许我的应用程序不是初学者,我只想登录邮箱并授予仅使用非管理员邮件读写权限的应用程序权限。交互式浏览器凭据当然有效,但对 Windows 服务无用。我想使用客户机密,但这似乎仅限于自己的租户。我试过 UsernamePasswordCredential 但它返回 InnerException = {"UsernamePasswordCredential authentication failed: Unsupported User Type 'Unknown'。请参阅https://aka.ms/msal-net-up。"}。MS 提供的示例是复杂的 Web 程序,我没有时间从头开始学习 Web 以了解它们在做什么。SDK 最近也更改为使用 AzureID,您现在可以将令牌凭据直接传递给图形客户端构造器,例如
graphClient = new GraphServiceClient(usernamePasswordCredential)
,我还需要知道如何调用端点来请求对我的应用程序的权限。令人沮丧的是,我知道这是可以做到的,因为我有一些其他软件可以做到这一点,但它并不能满足我的所有需求。
问问题
17 次