office365のドメイン内の各ユーザーの電子メールの読み取り/書き込み/更新を試みています。私はAzure Active DirectoryとAzureアプリケーションを使用しています。私はアカウントの管理者です。私はこの段階でどれが必要なのかわからないので、全面的に許可を得ました。office365ドメイン(nodejs)のAzure委任メール読み取り
私はNodejsでプログラミングしています。だから...
- 自分のアプリケーションにアクセスできるように、Azureに対してOAuthを使用して自分のアプリを認証します。 < - WORKS。
この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" }}}
Iは、URLのカップルでこれを試みました例えば、Outlook APIのように、このURLはhttps://outlook.office.com/api/v2.0
です。しかし、それは単純なOAuthのためだと思うし、とにかくこの方法では動作しないだろう。
アクセストークンを有効にする方法を誰かが説明できる場合は、素晴らしいと思います。
はFYI、私は同時に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});
})
私は、ユーザーのリストを取得することができます。だからおそらく私はばかげていて、何とかこれを使ってユーザーの電子メールを読むことができますか?たぶん、あなたは、アクセストークンを取得するリクエストヘッダにミスを犯している
おかげ
だから、私はADでユーザーのためではなく、ユーザーにログインすると、自分のデータにアクセスするに作用することができるアプリを作成しようとしている....これは標準のOAuthのためだと思います。 ... – amlwwalker