[Memo]使用 Azure AD 的 Windows 認證方式–Localhost 的網站

[Memo]使用 Azure AD 的 Windows 認證方式–Localhost 的網站

 

以前一開始以為 Azure AD 和 Windiws 裡面的 AD 運作機制是一樣的,就是丟一個 Windows 權杖過去認證嘛。不過實際使用之後才發現跟本就是不一樣的東西,我反而還覺得跟 Facebook 認證方式比較接近。

建議可以看一下 Azure AD 的機制

 

 

 

會寫這個也是因為原本以為只要 10 分鐘就弄好,結果還是花了 2、3 小時才確定。而且 Azure 上面提供的 step by step 項目有二個版本

免得以後自已忘了

 

image

直接在 Portal 上選擇 Default Directory ,裡面已經有一個預設的網域名稱。只不過這裡預設會用 「名稱@電子信箱位置」的資料演變成「名稱+電子信箱.OnMicrosoft.com」。這個名稱記得 copy 下來等會 AP 認證會用到。

不過不用擔心,你還是可以用 公開的DNS 名稱來替換。

 

image

選擇下面的 功能列新增 User  (以便等一下可以切換 )

 

image

若是要用將 Web 加入 Domain 認證的話,那麼登入的帳號必須是「全域管理員」

 

image

建立帳號 ( 當然也可以將 Microsoft ID 加入到網域中 )

 

image

記得記下來,等一下登入的 時候會用到要請你改密碼

 

 

接下來我們開啟 Visual Studio ( 這裡是使用 2015 ) ,新建立 ASP.NET MVC 5 的專案右邊有一個選擇可以決定帳號認證方式

 

image

將最一開始的那串網域名稱貼上

 

image

這裡用的帳號必須要有「全域管理員」

 

image

認證通過的話可以看到組織的認證網域名稱會在上面

 

接下來我們再回到 Azure AD 上,因為要跟 Azure AD 說明那些網站或是系統可以使用我們的認證,這裡沒有設定的話就算在自已的程式中有設定也無法使用

 

image

選擇 應用程式後按加入

image

這裡是選擇我正在開啟的應用程式

 

image

這個可以隨意輸入一個名稱 ,通常會選擇系統名稱

 

image

這裡非常非常地重要, URL 是 AD 認證完後要轉回的路徑,下面的 URI 則是系統的識別碼,若是測試用的 URI 名稱被使用掉的話,或是多人同時開發用同一個 AD 時請在後面加號碼或是人名的方式避開。

 

image

設定完成後記得再回到 ASP.NET 的 Web Config 這裡會有 Azure AD 相關的 Config 設定,請將剛剛的 URL 和 URI 路徑回填到這裡,若本地的 URL 不正確的話也無法使用。

 

image

剩下的就直接按下 F5 ,登登!可以看到 ASP.NET MVC 載入時會正確地轉址到 Azure AD 讓使用者輸入帳密,然後再轉址回到 自已的網站。