首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft : MS Graph可以访问没有个人Id/密码的邮箱吗?

Microsoft : MS Graph可以访问没有个人Id/密码的邮箱吗?
EN

Stack Overflow用户
提问于 2022-10-14 14:42:07
回答 1查看 66关注 0票数 1

如果没有单独的Id/密码,MS Graph可以访问邮箱吗?

我们的组织正在考虑使用MS图实现邮箱自动化。然而,有人表示担心,这将暴露所有邮箱电子邮件。

最坏的情况(即聪明的黑客只使用脚本):用mail编写脚本是否可以在没有单独的Id/密码的情况下访问邮箱?如果他们有一个没有授权的邮箱,那么最大的曝光是什么?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-17 06:29:52

对于Ms图形api,它提供了管理帐户/组/邮件帐户/事件/日历/.如果我们需要使用图形api,我们必须使用应用程序证书(基本上是client_secret)创建一个Azure应用程序。而Azure应用程序应该有足够的API权限,例如,我们给予User.ReadWrite.All权限,然后我们可以通过这个Azure应用程序使用图形api来管理这个租户中的用户。当我们添加权限Mail.ReadWrite时,我们可以管理电子邮件帐户。

对于api权限,有两种权限,一种用于delegate,另一种用于application。当我们给出委托api权限时,我们需要先用您自己的帐户(例如user1@xx.onmicrosoft.com,并且这个帐户拥有邮件许可证)登录,然后我们可以使用ms列出您帐户的所有邮件消息。

但是,当我们授予应用程序api权限时,我们不需要首先登录,我们可以直接调用图形api,并列出在租户中拥有邮件许可证的任何用户帐户的所有邮件消息。

让我们回到您的问题,如果脚本可以访问邮箱没有单独的Id/密码。我的回答是肯定的。但是我必须获得Azure AD应用程序&客户端机密,然后这个应用程序必须有足够的api权限,比如应用程序许可 for Mail.ReadWrite, Mail.Send,并且我需要知道您的电子邮件地址/帐户。当我得到所有这些信息,我可以访问邮箱。这是一个样本。

代码语言:javascript
复制
using Microsoft.Graph;
using Azure.Identity;

var scopes = new[] { "https://graph.microsoft.com/.default" };
var tenantId = "tenant_name.onmicrosoft.com";
var clientId = "aad_app_id";
var clientSecret = "client_secret";
var clientSecretCredential = new ClientSecretCredential(
                tenantId, clientId, clientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
var messages = await graphClient.Users["{email_address/user_account/user_id}"].Messages
    .Request()
    .Select("sender,subject")
    .GetAsync();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74070921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档