2016-09-29 118 views
0

我從http://dev.office.com/code-samples-detail/5985下載了Office 365 Connect ASP.NET MVC示例代碼,將其註冊爲Azure Active Directory中的應用程序(我擁有全局管理員權限)權限 - '登錄並閱讀用戶配置文件'和'以用戶身份發送郵件'(不是其他人),並使用'ClientID'和'ClientSecret'配置web.config。該應用程序允許我與Office 365連接,但在嘗試發送電子郵件時會返回「禁止訪問」。使用Office365&MicrosoftGraph發送郵件失敗,並顯示「Forbidden」

使用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

兩個權限我已經設置 - 「登錄和讀取用戶配置文件」和「發送郵件的用戶是不需要管理員訪問權限都委託權限。 – Chuck