嘗試讀取/寫入/更新office365域中每個用戶的電子郵件。我正在使用Azure Active Directory和Azure應用程序。我是帳戶管理員。在這個階段,我已經開啓了一大堆權限,因爲不確定哪些是必要的。Azure委託郵件跨Office365域(nodejs)
我在Nodejs中編程。因此...
- 對Azure使用OAuth進行身份驗證,以便我可以訪問我自己的應用程序。 < - 作品。
請求管理員權限對該帳戶在此URL:
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/[[email protected]/messages
。我通過令牌作爲bearer
。 這是問題,我得到{ 「錯誤」:{ 「代碼」: 「InvalidAuthenticationToken」, 「消息」: 「訪問令牌驗證失敗」, 「innerError」:{ 「請求-id「: 」[請求-ID]「, 」日期「: 」2017-03-21T17:31:24「 } } }
我已與一對夫婦網址嘗試這種,例如outlook API,帶有這個URL https://outlook.office.com/api/v2.0
。不過,我認爲這是針對簡單的OAuth,無論如何都不會以這種方式工作。
如果任何人都可以解釋如何讓訪問令牌有效,那就太棒了。
僅供參考,我也是,同時測試了故宮圖書館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});
})
我能得到用戶的列表。所以也許我是愚蠢的,不知何故,我可以用它來閱讀用戶的電子郵件?
謝謝
所以我覺得這是一個標準的OAuth ....我試圖創建一個應用程序,可以在廣告,而不是在用戶登錄代表用戶的行爲和訪問自己的數據。 ... – amlwwalker