2016-09-29 6 views
0

Office 365 Connect ASP.NET MVCのサンプルコードをhttp://dev.office.com/code-samples-detail/5985からダウンロードし、Azure Active Directory(グローバル管理者権限を持つ)にアプリケーションとして登録し、アクセス許可 - 'サインインしてユーザープロファイルを読む'と 'ユーザーとしてメールを送信する'(他にはない)、 'ClientID'と 'ClientSecret'でweb.configを構成しました。アプリケーションでOffice 365に接続できますが、電子メールを送信しようとすると「禁止」が返されます。Office365&MicrosoftGraphでメールを送信できない "禁止"

VS2015デバッガを使用して、ログイン時に受け取ったAccessTokenを取得し、http://jwt.calebb.net/でデコードしました。それは、トークンが "User.Read"パーミッションを提供すると言います。トークンは、アプリケーションとOffice 365へのログインに使用されるユーザーの資格情報の両方から使用できるアクセス許可のみを提供することを理解しています。ただし、ユーザー資格情報には電子メールを送信する権限があることをOutlook Web Accessを使用して検証しました。

なぜ、私はAADで設定したすべてのアクセス許可を取得していないのですか?

答えて

0

アプリを使用する前にログイン次回は、URLの末尾に&プロンプト=同意を追加することができますか?

https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=...&nonce=e231a375-6925-47d2-8704-9fce2d900620&prompt=consent

これはreconsentあなたが作った権限への更新をユーザーに浮上しているように、彼らはそれに同意することができ、それらの権限が返されたトークンに含まれますが求められます。それは次のようになります。

+1

それはトリックをした - 問題は解決されます。ありがとう。 – Chuck

0

私は、委任されたアクセス許可(特定のユーザーとして認証)の代わりにメールをアプリケーションアクセス許可として設定したと考えています。

+0

「サインインしてユーザープロファイルを読む」と「ユーザーとしてメールを送信する」という2つのアクセス許可は、管理者アクセスを必要としない委任されたアクセス許可です。 – Chuck

関連する問題