【发布时间】:2019-11-26 23:29:01
【问题描述】:
我正在尝试使用 Microsoft Graph API 1.0 连接以进行在线交流并对电子邮件进行某些操作,而这一切都是在一个恶魔程序中完成的。我正在使用客户端凭据工作流程进行身份验证,下面是一小段代码
AuthenticationContext authenticationContext = new AuthenticationContext(string.Format(CultureInfo.InvariantCulture, azureEndPoint, tenant));
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(resource, clientCredential);
但要让这段代码返回身份验证令牌,我必须针对 microsoft graph api 获取 Azure 应用程序 ID 的应用程序权限。这里需要注意的是,如果授予权限,应用程序 ID 将有权读取组织中所有用户的电子邮件,因此租户管理员严格拒绝授予权限。
我尝试了同意框架的运气,但这需要用户干预才能输入他/她的 ID 和密码,这在恶魔程序的情况下是不可能的。我读了一些像下面这样的博客,但他们最终都输入了用户 ID 密码来访问重定向 url,这打败了整个恶魔的东西 https://blogs.msdn.microsoft.com/exchangedev/2015/01/21/building-daemon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow/
有什么方法可以为租户中的特定电子邮件 ID 授予对 Azure 应用程序 ID 的读/写访问权限?或者有什么聪明的方法可以在没有用户干预的情况下以某种方式到达邮箱?
提前致谢,
维韦克
【问题讨论】:
标签: azure-active-directory office365 microsoft-graph-api exchange-server outlook-restapi