延續前一篇我們已經建立好AzureAD的資訊,並且已經開通Azure AD上的一個使用者帳號後,我們要繼續開通AzureAD上給Native App連入的服務。
在Azure Portal當中開啟Azure AD的服務頁面
接著點選"加入"
點選"加入我的組織正在開發的應用程式"
填寫你的應用程式在AzureAD上的管控的名稱。
記得點選成下面的"原生用戶端應用程式"
填寫重新導向URL,這個URL是在程式當中會用到的值,請填寫一個帶有http:// or https://的隨意網址,點選下方的勾勾。
原生用戶端應用程式建立完成
在"設定"頁面當中,注意"用戶識別碼"中間的GUID,這個數值在我們的程式當中會用到。
在"設定"頁面當中往下拉,會看到其他應用程式的權限,在這邊我們將Windows Azure Active Directory的委派權限勾選"Read directory data"、"Sign in and read profile"這兩個權限。
勾選好後記得按"儲存"。
以上設定都完成後,接下來終於可以切到Visual Studio上做事情了~~
在下面的範例中我們使用Xamarin.Android作為展示範例,若要完成Xamarin.iOS的做法其實也是大同小異,看官可以自行斟酌。
首先,就先來建立一個Xamarin.Android的空專案。
接著打開Nuget管理套件,搜尋"Microsoft.IdentityModel.Clients.ActiveDirectory",在5/24微軟已經更新到3.10.305231913的穩定版本,我們就直接點選"安裝"。
檢閱變更,點選"確定"。
接受授權點選"我接受"。
安裝完成。
接下來,先來調整一下畫面的Layout,打開Main.axml這個檔案,並將畫面設計為如綠色框的呈現(可參照下面的Source圖)。上方的Button命名為signinButton,此按鈕下面還有個TextView,命名為messageTextView。在下方的Button命名為signoutButton。
接著打開MainActivity.cs
首先,先加入ADAL的Namespace。
接著加入跟AzureAD互動需要用到的幾個固定字串(如綠色框所示),並設立一個ADAL當中的AuthenticationResult變數,準備紀錄跟AzureAD驗證後回傳來的結果。
第一個紅色線所標註的是前面在AzureAD建立的"原生用戶端應用程式"時所產生的用戶識別碼的Guid。
第二條紅色線所標住的是前面在AzureAD建立的"原生用戶端應用程式"時所設定的"重新導向URL"。
橘色線所標註的就直接填寫圖中所示的網址。
接著在Activity當中,複寫掉OnActivityResult這個方法,並加上綠色框的程式碼,以便跳到AzureAD驗證頁面輸入完帳號密碼後,驗證成功的資料回傳紀錄。
再回到OnCreate方法,透過FindViewById找到layout當中所設立的畫面元件,如綠色框所示。
加入signButton的Click事件所要處理跟AzureAD互動的程式,並且當登入完成後顯示資訊到messageTextView當中,如綠色框所示。
加入signoutButton的Click事件所要處理跟AzureAD互動的程式,並且登出完成後顯示資訊到messageTextView當中,如綠色框所示。
完成啦!!!
執行該Xamarin.Android App來實驗看看~~
點選SignOn,接著會跳出AzureAD的登入頁面,鍵入之前所設立好的帳號(含網域)密碼,並且點選登入。
完成後,會看到messgeTextView會顯示我們之前在AzureAD上所建立的帳號資料: AzureAD Demo。
最後在按下SignOut按鈕,登出。
以上,我們就確保了App可以跟AzureAD連結。
BTW,如果你要撰寫的是Xamarin.Forms的部分請參考maduka的技術日記當中的:
使用Xamarin.Forms達成Azure AD的帳號驗證:
https://dotblogs.com.tw/maduka/2016/05/14/201533
下一篇,我們就要再繼續跟透過AzureAD跟後面的WebAPI互動了!!!
敬請期待~~
沒有留言:
張貼留言