ASP.NET MVC中三方登入: 微軟、Google、Office365,mvcoffice365
建立一個MVC的工程,在Startup.Auth.cs檔案中,我們能看到這樣的一些代碼:
這其實是微軟已經幫我們實現好的三方登入的介面,我們只需要建立相應的開發人員帳號,並在其中配置好跟我們應用程式相關的一些資訊,擷取到應用程式的Id跟密碼,填到上面相應的介面中,即可實現相應帳號的三方登入。
一、微軟帳號三方登入介紹
微軟的開發人員帳號管理地址為:https://account.live.com/developers/applications/index。微軟三方登入開發人員帳號配置的一些說明:
1、一個應用程式只能配一個有效根網域名稱,並且該根網域名稱不能是localhost,該根域會自動從你填寫的Redirect URLs中進行判斷填充。
2、三方登入用到的Redirect URL格式必須為http://www.rootDomain.com/signin-microsoft。其中HTTP協議、根網域名稱以及連接埠號碼是可以自由配置的,後面的/signin-microsoft是固定不變的。
二、Google帳號三方登入介紹
Google的開發人員帳號管理地址為:https://console.developers.google.com/project。Google三方登入開發人員帳號配置的一些說明:
1、要實現Google三方登入,必須Enable Google+ API,其它需要的API可以自行添加。
2、Google的一個Client ID中,可以配置多個根域不同的Redirect URIs,並且可以是localhost。
3、三方登入用到的Redirect URL格式必須為http://www.rootDomain.com/signin-google。其中HTTP協議、根網域名稱以及連接埠號碼是可以自由配置的,後面的/signin-google是固定不變的。
三、Office 365三方登入介紹
首先要說的是,微軟有兩套帳號系統,一套稱作Microsoft Account,就是我們所謂的微軟帳號,登入地址為:https://login.live.com/,或者使用地址https://www.outlook.com/,會進行自動跳轉。另一套稱作Work or School Account,就是我們所謂的Office 365,登入地址為:https://login.microsoftonline.com/,或者使用地址https://outlook.office365.com/,也會進行自動跳轉。
其次,微軟沒有為我們提供封裝好的Office 365三方登入的介面,在這裡我們可以使用OpenId身分識別驗證來實現Office 365的三方登入。具體步驟包括以下幾點:
1、擁有一個Office365帳號,如果沒有的話,可以申請一個30天的免費帳號,申請地址在:
https://portal.office.com/Signup/Signup.aspx?OfferId=8368ac6a-5797-4859-b2ec-4d32330277c9&dl=O365_BUSINESS&Country=US&culture=en-us&ali=1#0。
2、下載Office Developer Tools for Visual Studio並安裝,因為Office365的使用者資料都放在Azure AD上,所以我們需要在Azure AD上註冊我們的應用程式以擷取使用者資料,這個工具可以和Visual Studio整合,方便註冊我們的應用程式,:http://aka.ms/OfficeDevToolsForVS2013。
3、使用VS建立一個MVC架構的Web Application,右鍵點擊該工程,選擇“Properties”,“Add”,“Connected Service”
然後點擊“Register your app”,成功登入你的Office365帳號後,即完成App的註冊工作。
此時點擊Web.config檔案,即可看到我們註冊成功後擷取到的ClientID跟Password等資訊。
如需要重新註冊該程式,只需要把Web.config檔案中的ida:ClientID和ida:Password配置項刪除,然後再次Add Conencted Service時,會讓你重新註冊該程式。
4、在Office 365 APIs配置頁面中,選中相應的Service,點擊右面的“Permissions”,即可根據需要對該Service進行存取權限的設定。
存取權限設定完成後,可以看到相關的設定大致如下:
5、點擊Office 365 APIs配置頁面中的App Properties,我們可以設定App的一些屬性,包括該App註冊後顯示的名稱、該App可被訪問的範圍以及認證成功後的Redirect URIs,
該Redirect URIs只填寫我們的根域即可,同時可以註冊多個不同的URI地址。
6、安裝OpenIdConnect相關的組件包 Install-Package Microsoft.Owin.Security.OpenIdConnect。
7、編寫代碼,大致內容如下: