2014年2月26日

Windows Azure - 建立ASP.NET MVC專案時,使用Windows Azure AD驗證

我們持續前一篇的Windows Azure AD的後續應用,既然提到AD又提到應用程式,大家應該就會想到,要ASP.NET MVC使用Windows Azure AD驗證了,所以這篇,我們就來看看如何執行。

在開始前,我們可以先看下圖,了解整個的流程。

  1. 用戶請求,來了解要從哪裡去處理身份驗證的訪問權限,所以可以從這個步驟得知,要和Windows Azure AD進行驗證。
  2. 透過Windows Azure AD進行驗證,當然,Windows Azure AD那邊要去建立帳號。
  3. 一旦驗證成功,瀏覽器被重新導向,並且帶這個一個安全令牌(下面的圖形T)。
  4. 然後就拿這個個令牌(Token)進入應用程式。

 

Image source: http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx

基本上和Local的AD驗證差不多啦…那該怎麼做呢?其實很簡單…

首先,我們開啟一個新的ASP.NET MVC的專案,然後選擇變更驗證。

image

這邊,因為我們要使用的是Windows Azure AD,所以要選擇組織帳戶;接下來,選擇雲端-單一組織(因為小弟我也只有一個阿QQ);網域的部分,記得要Key Windows Azure AD的網域,小弟這邊因為自己有經過DNS處理了,不然預設的情況下通常是xxx.onmicrosoft.com;存取層級有一些選項可以選,因為我們只需要登入,所以選擇登入就好,如果想要讀寫等功能,可以選擇其他的選項;最後ID URI會自動建立,基本上不用去動( 這個到時候會自動在Windows Azure AD上建立,所以未來也可以自己重新改URI )

image

完成之後,就可以看到右下角有組織驗證的選項出現了。

image

是的,其實這樣就完成了… ( 吐菸 ),但實際上做了哪些事情勒!?….

首先,會於NuGet增加這個Microsoft Token validation的Libary。

image

然後會在Web.config加上 堆資訊。在Section那邊,加上了identityModel的東西,還有appSettings也加上了ida開頭的東西…

image

然後Golbal.asax也增加了IdentityConfig.ConfigureIdentity();還有底下名稱超長的方法。

image

此外,也起用了SSL。

image

處此之外,Windows Azure也自動地將此服務建立起來了。

image

當我們啟用MVC的時候,就可以發現,他自動地跳轉到登入的頁面。

SNAGHTML47254d7

登入之後,我們就可以從右上角看到,取得了帳號了!!

SNAGHTML47373c4

初步就先到這邊吧,下一篇,會介紹一下,如果已經有應用程式了,該怎樣啟動此功能!!

參考資料

2014年2月10日

Windows Azure - 整合Office 365的AD目錄

繼續的玩弄研究AD目錄,我們從自己新增目錄,一路玩下來;但只能自己新增目錄嗎??當然不是;如果有申請過Office 365的朋友們,因該知道,申請Office 365的第一件事情,就是要訂一個AD目錄;既然O365有AD目錄,Windows Azure也有AD的功能,那怎麼可能會不能整合再一起勒!!?所以這篇,就來看看,如何整合O365的AD目錄到Windows Azure去~~~

首先,我們一樣到AD的功能區,選擇加入。

image

然後選擇使用現有的目錄,並且勾選我現在已經可以登出;但要注意喔,按下去後,就真的會給你登出了喔…

image

接下來,我們使用O365的管理者帳號來登入Windows Azure。

image

登入進去之後,就會看到提示,按下確定就可以了。

image

這邊按下立即登出。

image

接下來,我們要使用原本的Windows Azure帳號來登入,因為我們還沒有將O365網域的帳號和Windows Azure繫結,所以還是要使用Windows Azure的原管理帳號登入;如果未來想繫結的朋友們,可以參考小弟的另外一篇

image

如果發生以下這個錯誤,通常是因為快取還尚未清除,只要清除瀏覽器快取就可以解決了。

image

然後我們就可以從AD目錄這邊看到O365的目錄被加入了喔!!

image

這邊可能也要提醒大家一下,如果有管理多個Windows Azure帳號,而且又發現找不到服務了,那可能是這邊的關係…我們可以從下圖這邊,訂用帳戶這邊進行AD目錄的切換,就可以看到所有的Windows Azure的服務喔!~

image

回到O365看看,我們可以看到在Windows Azure的管理帳號也被加入到O365的AD裡面來了,但不用擔心,這個預設不會使用到O365的帳戶額度。

image

我們回到Windows Azure看看,會發現在O365的AD帳號全部都過來到Windows Azure了…

image

AD應用程式這邊,也可以看到O365的應用。

image

如果O365有自己定義網域,他也會自動同步過來。

image

然後目錄整合這邊,我們可以看到"針對目錄同步作業驗證的網域"為1,表示有和O365同步。

image

以上,就完成了!!

後記

之前有問官方一個問題,到底Windows Azure的AD和O365的AD,是用同一組還是拆開?結果官方並沒有明確的答覆,有可能是用Sync也有可能是用同一組。

而目前測試的情況來看,Sync的可能性滿大的,一來是因為"針對目錄同步作業驗證的網域"這邊顯示為1,二來是小弟我在Windows Azure這邊新增一組AD帳號後,O365會有幾秒的誤差;雖然不能完全研判,但目前推測很有可能是用Sync的機制。( 有查到文章的朋友,可以再和小弟說吧QQ. )

最後,小弟也列出起個測試,可以給大家參考看看。

  1. 若在Windows Azure管理介面上,新增一個AD帳號,O365會同步,但是不會用到O365的額度,需要自己去勾選要使用哪個O365的方案等級。。( 這邊的方案等級指的是例如O365 E3的等級 )
  2. 在O365新增的AD帳號,會自動同步到Windows Azure上去,但同樣的O365的帳號服務設定只能在O365上面設定,沒辦法再Windows Azure上進行O365的服務設定。( 這邊的服務設定指的是例如O365 E3的等級 )
  3. 無論從Windows Azure或是O365刪除帳號,兩邊都會被同步刪除。

以上~~接下來,我們就來看看Application如何使用Windows Azure AD!!

Windows Azure - 將新的AD帳號加入Windows Azure的管理員

前面幾篇,有介紹到如何新增AD帳號,AD帳號除了未來可以拿來當應用程式的驗證使用外,我們也可以利用這個AD帳號當作登入Windows Azure管理畫面使用的帳號,首先我們先來看一下上次新增的帳號。

image

這個時候,如果我們如果想利用sky2來當作Windows Azure的管理者,我們就使用此mail登入。

image

當然,如果沒有設定,就會出現此畫面。

image

接下來,我們就來看看如何設定,我們先到設定的選項,並且選擇管理員,再按下加入。

image

這邊就可以填入sky2這個mail (也就是ad帳號)。

image

通常按下確定就可以,但如果你建立了多個ad目錄,可能會出現以下的問題;這個問題是,每個Windows Azure,都會對應一個AD目錄,如我目前的Windows Azure,對應的是San.C Net這個AD目錄,不是Study4的目錄;所以他會告訴我,必須是要San.C Net目錄下的使用者,才可以變成管理員。

image

我們可以從下圖的位置,看到目前的訂用帳戶對應的是San.C Net這個目錄。

image

如果要更改,只需要點下面的編輯目錄。

image

這邊就可以變更關聯的目錄了。

image

按下確定就完成了目錄的對應。

image

這時候,我們就可以把Study4這個目錄的使用者,變成Windows Azure的管理員了,未來就可以讓sky2直接登入;但要注意的是,這邊Windows Azure的管理員擁有最大的權限,也沒辦法鎖定他的某些功能,所以在開放的時候也要特別注意喔!!~