共用方式為


使用 Azure) 建置 Real-World Cloud Apps 的單一 Sign-On (

作者: Rick AndersonTom Dykstra

下載修正專案下載電子書

使用 Azure 電子書建置真實世界雲端應用程式是以 Scott Guthrie 開發的簡報為基礎。 它說明 13 種模式和做法,可協助您成功開發雲端的 Web 應用程式。 如需電子書的相關信息,請參閱 第一章

當您開發雲端應用程式時,有許多安全性問題需要考慮,但在此系列中,我們只會專注於一個:單一登錄。 人們經常詢問的問題如下:「我主要為公司的員工建置應用程式;如何在雲端中裝載這些應用程式,並在他們執行裝載於防火牆內的應用程式時,仍然能夠使用員工知道並在內部部署環境中使用的相同安全性模型?」我們啟用此案例的其中一種方式稱為 Azure Active Directory (Azure AD) 。 Azure AD 可讓您讓企業營運 (LOB) 應用程式可供因特網使用,並可讓您讓這些應用程式可供商務合作夥伴使用。

Azure AD 簡介

Azure AD 提供雲端中的 Active Directory 。 主要功能包括:

  • 它與 內部部署的 Active Directory 整合。
  • 它可讓您使用您的應用程式進行單一登錄。
  • 它支持開放式標準,例如 SAMLWS-FedOAuth 2.0
  • 它支援 Enterprise Graph REST API

假設您有內部部署 Windows Server Active Directory 環境,可用來讓員工登入內部網路應用程式:

此圖顯示具有多個裝置和兩個三角形塔的橢圓形結構,在每個裝置與其來源之間跨越線條和箭號,以顯示每個連線的方式。

Azure AD 可讓您在雲端中建立目錄。 這是免費功能,且易於設定。

它可以完全獨立於您的 內部部署的 Active Directory;您可以將您想要的任何人放在其中,並在因特網應用程式中進行驗證。

Windows Azure Active Directory

或者,您可以將它與您的內部部署 AD 整合。

AD 和 WAAD 整合

現在,所有可以驗證內部部署的員工也可以透過因特網進行驗證,而不需要開啟防火牆或在數據中心部署任何新伺服器。 您可以繼續運用您目前知道並使用的所有現有 Active Directory 環境,為您的內部應用程式提供單一登錄功能。

在 AD 與 Azure AD 之間建立此連線之後,您也可以讓 Web 應用程式和行動裝置在雲端中驗證您的員工,以及啟用第三方應用程式,例如 Office 365、SalesForce.com 或 Google 應用程式,以接受員工的認證。 如果您使用 Office 365,表示您已經使用 Azure AD 進行設定,因為 Office 365 使用 Azure AD 進行驗證和授權。

第三方應用程式

這種方法的優點是,每當貴組織新增或刪除使用者,或使用者變更密碼時,您都會使用您目前在內部部署環境中所使用的相同程式。 您的所有內部部署 AD 變更都會自動傳播至雲端環境。

如果您的公司正在使用或移至 Office 365,好消息是您將會自動設定 Azure AD,因為 Office 365 使用 Azure AD 進行驗證。 因此,您可以輕鬆地在自己的應用程式中使用 Office 365 所使用的相同驗證。

設定 Azure AD 租使用者

Azure AD 目錄稱為 Azure AD 租使用者,而且設定租用戶相當簡單。 我們將示範如何在 Azure 管理入口網站中完成,以說明概念,但當然就像其他入口網站函式一樣,您也可以使用腳本或管理 API 來執行此作業。

在管理入口網站中,按兩下 [Active Directory] 索引標籤。

入口網站中的 WAAD

您的 Azure 帳戶會自動有一個 Azure AD 租使用者,您可以按下頁面底部的 [ 新增 ] 按鈕來建立其他目錄。 例如,您可能想要一個用於測試環境,另一個用於生產環境。 請仔細思考您為新目錄命名的內容。 如果您將名稱用於目錄,然後再次針對其中一個使用者使用您的名稱,這可能會造成混淆。

新增目錄

入口網站已完整支援在此環境中建立、刪除和管理使用者。 例如,若要新增使用者,請移至 [ 使用者 ] 索引標籤,然後按兩下 [ 新增使用者 ] 按鈕。

新增用戶按鈕

新增使用者對話框

您可以建立只存在於此目錄中的新使用者,或者您可以將 Microsoft 帳戶註冊為此目錄中的使用者,或註冊或從另一個 Azure AD 目錄註冊為此目錄中的使用者。 (在實際目錄中,預設網域會是 ContosoTest.onmicrosoft.com。您也可以使用自己選擇的網域,例如 contoso.com.)

用戶類型

新增使用者對話框

您可以將使用者指派給角色。

使用者設定檔

而且會使用暫存密碼來建立帳戶。

暫時密碼

您以此方式建立的使用者可以使用此雲端目錄立即登入您的 Web 應用程式。

不過,企業單一登錄的絕佳功能是 [目錄整合 ] 索引卷標:

目錄整合索引標籤

如果啟用目錄整合,您可以將此雲端目錄與組織內已使用的現有 內部部署的 Active Directory 同步處理。 然後,儲存在您目錄中的所有用戶都會顯示在此雲端目錄中。 您的雲端應用程式現在可以使用其現有的 Active Directory 認證來驗證您的所有員工。 這一切都是免費的, 同步工具與 Azure AD 本身都是免費的。

此工具是容易使用的精靈,您可以從這些螢幕快照中看到。 這些不是完整的指示,只是顯示基本程式的範例。 For more detailed how-to-do-it information, see the links in the Resources section at the end of the chapter.

WAAD 同步處理工具組態精靈 -映射 1

[下一步],然後輸入您的 Azure Active Directory 認證。

WAAD 同步處理工具組態精靈 - 映射 2

[下一步],然後輸入您的內部部署 AD 認證。

WAAD 同步處理工具組態精靈 - 映射 3

[下一步],然後指出您是否要在雲端中儲存 AD 密碼的哈希。

WAAD 同步處理工具設定精靈 - 映射 4

您可以在雲端中儲存的密碼哈希是單向哈希;實際密碼永遠不會儲存在 Azure AD 中。 如果您決定不要將哈希儲存在雲端中,則必須使用 Active Directory 同盟服務 (ADFS) 。 選擇是否要使用ADFS時,也需要考慮其他因素。 ADFS 選項需要一些額外的設定步驟。

如果您選擇將哈希儲存在雲端中,就會完成,而且此工具會在按 [ 下一步] 時開始同步處理目錄。

WAAD 同步處理工具設定精靈 - 映射 5

幾分鐘后,您就會完成。

WAAD 同步處理工具設定精靈 - 映射 6

您只需要在組織的一個域控制器上、Windows 2003 或更新版本上執行此動作。 不需要重新啟動。 當您完成時,所有使用者都在雲端中,而且您可以使用SAML、OAuth或WS-Fed,從任何Web或行動應用程式執行單一登錄。

有時候,我們會詢問這有多安全, Microsoft 是否將其用於自己的機密商務數據? 答案是我們所做的。 例如,如果您移至 內部 Microsoft SharePoint 網站, https://microsoft.sharepoint.com/系統會提示您登入。

Office 365 登入

Microsoft 已啟用 ADFS,因此當您輸入 Microsoft 識別符時,系統會將您重新導向至 ADFS 登入頁面。

ADFS 登入

一旦您輸入儲存在內部 Microsoft AD 帳戶中的認證,您就可以存取此內部應用程式。

MS SharePoint 網站

我們主要使用 AD 登入伺服器,因為我們已在 Azure AD 可供使用之前設定 ADFS,但登入程式會經過雲端中的 Azure AD 目錄。 我們將重要的檔、原始檔控制、效能管理檔案、銷售報表等等放在雲端中,並使用這個完全相同的解決方案來保護它們。

建立使用 Azure AD 進行單一登錄的 ASP.NET 應用程式

Visual Studio 可讓您輕鬆地建立使用 Azure AD 進行單一登錄的應用程式,因為您可以從幾個螢幕快照中看到。

當您建立新的 ASP.NET 應用程式時,MVC 或 Web Form,預設的驗證方法是 ASP.NET 身分識別。 若要將變更為 Azure AD,請按兩下 [ 變更驗證 ] 按鈕。

變更驗證

選取 [組織帳戶],輸入您的功能變數名稱,然後選取 [單一登入]。

[設定驗證] 對話框

您也可以為應用程式提供目錄資料的讀取或讀取/寫入許可權。 如果您這樣做,可以使用 Azure Graph REST API 來查閱用戶的電話號碼、找出他們是否在辦公室、上次登入時等等。

您只需要這麼做 - Visual Studio 會要求 Azure AD 租使用者的系統管理員認證,然後針對新的應用程式設定您的專案和 Azure AD 租使用者。

當您執行專案時,您會看到登入頁面,而且您可以使用 Azure AD 目錄中使用者的認證登入。

組織帳戶登入

已登入

當您將應用程式部署至 Azure 時,您只需要選取 [ 啟用組織驗證 ] 複選框,再一次 Visual Studio 會為您處理所有設定。

發行網站

這些螢幕快照來自完整的逐步教學課程,示範如何建置使用 Azure AD 驗證的應用程式: 使用 Azure Active Directory 開發 ASP.NET 應用程式

摘要

在本章中,您已看到 Azure Active Directory、Visual Studio 和 ASP.NET,可讓您輕鬆地為組織的使用者設定因特網應用程式中的單一登錄。 您的使用者可以使用您在內部網路中用來使用 Active Directory 登入的相同認證登入因特網應用程式。

下一章將探討雲端應用程式可用的數據儲存選項。

資源

如需詳細資訊,請參閱下列資源: