尝试在office365上读取/写入/更新域内每个用户的电子邮件。我使用Azure Active Directory和Azure应用程序。我是帐户管理员。我在这个阶段已经开启了一大堆权限,因为不确定哪些是必要的。
我在Nodejs中编程。所以......
请求此网址对帐户的管理员权限:https://login.microsoftonline.com/common/adminconsent?client_id='+clientID+'&redirect_uri'+uri
其中clientID
和uri
已被替换。这会将我重定向到针对Microsoft平台的身份验证。您可以在此处查看我所请求的所有权限(在调试时):
一旦我接受了权限,它就会将我返回到我的应用程序,它会从https://login.windows.net/[my-app-tenant-id]/oauth2/token
请求令牌。返回访问令牌。到目前为止一切顺利
之后,我尝试使用此令牌来读取我的组织电子邮件的用户(例如我,但有一些用户我已尝试过)。它转到:https://graph.microsoft.com/v1.0/[userEmailAddress@domain.com/messages
。我将令牌作为bearer
传递。
这是问题,我得到
{ "错误":{ "代码":" InvalidAuthenticationToken", " message":"访问令牌验证失败。", " innerError":{ " request-id":" [request-id]", " date":" 2017-03-21T17:31:24" } } }
我尝试使用这个网址https://outlook.office.com/api/v2.0
的几个网址,例如outlook API。不过我认为这只适用于简单的OAuth,无论如何都不会这样做。
如果有人能解释如何让访问令牌有效,那就太棒了。
仅供参考,我也是,同时测试npm库azure-graphapi
并使用:
var clientID = '[client id]'
var clientSecret = '[client secret]'
var tenant = '[tenant id]'
var graph = new GraphAPI(tenant, clientID, clientSecret);
graph.get('users/', function(err, user) {
resp.json({users: user});
})
我可以获得用户列表。所以也许我是愚蠢的,不知怎的,我可以用它来阅读用户的电子邮件?
由于