2017-03-01 23 views
0

我正在努力寻找合适的流程。我有一个Rails应用程序,在Microsft App门户上注册(使用Id,Pwd和Scopes)。为了尽可能简单:我需要通过我的应用程序访问公司的所有电子邮件(只读)。它是一个服务器应用程序,它在夜间处理信息。如何使用Oauth流向Rails应用程序中的Microsoft Graph API管理管理身份验证

我的理解,并试图:

得到一个登录链接,为公司的管理员:

https://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize?client_id={MY_APP_ID}&response_type=code&redirect_uri=MY_APP_ADDRESS&response_mode=query&prompt=admin_consent 

在回调中,我得到的PARAMS代码。从该代码中,我得到一个带有POST请求的令牌,指定:

client_id: MY_APP_ID, 
grant_type: "authorization_code", 
code: MY_RECEIVED_CODE, 
redirect_uri: MY_APP_ADDRESS, 
client_secret: MY_CLIENT_SECRET, 
resource: "https://graph.microsoft.com/" 

从那我得到一个令牌。一个简单的获取消息的请求对于管理员邮箱(验证访问的那个人)来说效果很好;当我为组织中的任何其他人尝试时,“拒绝访问”。

最后一点。在Microsoft应用程序门户中定义的作用域:Group.Read.All和Mail.Read(适用于应用程序或委托服务)

什么是正确的方法来完成这项工作?谢谢 !

回答

0

将查询参数提示= admin_consent添加到授权请求,这样管理员将代表整个组织而不仅仅是为他/她自己同意。

相关问题