作法:使用 ACS 建立我的第一個宣告感知 ASP.NET 應用程式
發佈時間: 2011年4月
更新日期: 2011年5月
適用於: Windows Azure
適用對象
-
Microsoft® Windows Azure™ AppFabric Access Control Service (ACS)
概觀
此主題說明整合 ACS 與 ASP.NET 信賴憑證者應用程式的案例。藉由整合您的 Web 應用程式與 ACS,您可以從您的程式碼中計入驗證與授權的功能因素。換句話說,ACS 提供機制讓您驗證與授權您的 Web 應用程式使用者。如需相關資訊,請參閱Web 應用程式和 ACS。
在這個練習案例中,ACS 會使用 Google身分識別來驗證想要進入測試 ASP.NET 信賴憑證者應用程式的使用者。
整合 ACS 與 ASP.NET 信賴憑證者應用程式的步驟
重要事項 |
|---|
| 在執行下列步驟之前,請確定您的系統符合ACS 必要條件中摘要說明的所有 .NET 架構與平台要求。 |
若要整合 ACS 與 ASP.NET 信賴憑證者應用程式,請完成下列步驟:
步驟 1 - 建立服務命名空間
如需如何建立服務命名空間的詳細指示,請參閱作法:建立 Windows Azure AppFabric 服務命名空間。
步驟 2 – 啟動 ACS 管理入口網站
ACS 管理入口網站可讓您藉由新增身分識別提供者、設定信賴憑證者應用程式、定義規則與規則群組,以及建立您的信賴憑證者信任的認證來設定您的 ACS 服務命名空間。
啟動 ACS 管理入口網站
-
開啟網際網路瀏覽器,並造訪 Windows Azure AppFabric 管理入口網站 (http://go.microsoft.com/fwlink/?LinkID=129428)。
-
使用 Windows Live ID 登入網站。如果您沒有 Windows Live ID,請按一下 [註冊] 以建立您自己的 Windows Live ID。
-
在使用您的 Live ID 登入之後,系統會將您重新導向至 [管理入口網站] 頁面。在此頁面的左下角按一下 [服務匯流排與存取控制]。
-
若要啟動 ACS 管理入口網站,請在左邊的樹狀目錄中按一下 [存取控制],選取您要設定的 ACS 服務命名空間,然後按一下頁面頂端工具列上的 [存取控制服務] 按鈕。
步驟 3 – 新增身分識別提供者
本節說明如何新增身分識別提供者,以搭配使用您的信賴憑證者應用程式進行驗證。如需身分識別提供者的相關資訊,請參閱身分識別提供者。
新增身分識別提供者
-
在 ACS 管理入口網站中,請在左邊的樹狀目錄中按一下 [身分識別提供者],或按一下 [開始使用] 區段下的 [身分識別提供者] 連結。
-
在 [身分識別提供者] 頁面上,按一下 [新增],選取 [Google] 作為身分識別提供者,然後按一下 [下一步]。
-
[新增 Google 身分識別提供者] 頁面會提示您輸入登入連結文字 (預設值是 Google) 和一個影像 URL。此 URL 指向一個影像檔案,以作為此身分識別提供者的登入連結。編輯這些欄位是選擇性的。在此練習中,請勿編輯它們,按一下 [儲存]。
步驟 4 – 新增信賴憑證者應用程式
本節說明如何新增與設定信賴憑證者應用程式。如需信賴憑證者應用程式的相關資訊,請參閱信賴憑證者應用程式。
設定信賴憑證者應用程式
-
在 ACS 管理入口網站中,請在左邊的樹狀目錄中按一下 [賴憑證者應用程式],或按一下 [開始使用] 區段下的 [信賴憑證者應用程式] 連結。
-
在 [信賴憑證者應用程式] 頁面上,按一下 [新增]。
-
在 [新增信賴憑證者應用程式] 頁面上,執行下列動作:
-
在 [名稱]中,輸入信賴憑證者應用程式的名稱。在此練習中,請鍵入 TestApp。
-
在 [模式] 中,選取 [手動輸入設定]。
-
在 [領域] 中,鍵入 ACS 簽發的安全性權杖適用的 URI。在此練習中,請鍵入 http://localhost:7777/。
-
在 [傳回 URL] 中,鍵入 ACS 要將安全性權杖傳回的 URL。在此練習中,請鍵入 http://localhost:7777/。
-
在 [錯誤 URL (選用)] 中,輸入如果在登入期間發生錯誤,ACS 可以發佈到的 URL。
-
在 [權杖格式] 中,選取當 ACS 簽發安全性權杖給這個信賴憑證者應用程式時,要使用的權杖格式。在此練習中,請選取 [SAML 2.0]。如需權杖與權杖格式的相關資訊,請參閱在 ACS 中支援的權杖格式和信賴憑證者應用程式中的<權杖格式>。
-
在 [權杖加密原則] 中,選取 ACS 針對這個信賴憑證者應用程式簽發的權杖加密原則。在此練習中,請接受 [無] 的預設值。如需權杖加密原則的相關資訊,請參閱信賴憑證者應用程式中的<權杖加密原則>。
-
在 [權杖存留時間 (秒)] 中,指定 ACS 簽發的安全性權杖要保持有效的時間量。在此練習中,請接受預設值 [600]。如需相關資訊,請參閱信賴憑證者應用程式中的<權杖存留時間>。
-
在 [身分識別提供者] 中,選擇要搭配這個信賴憑證者應用程式一起使用的身分識別提供者。在此練習中,請接受勾選的預設值 ([Google] 及 [Windows Live ID])。
-
在 [規則群組] 中,請選擇這個信賴憑證者應用程式處理宣告時要使用的規則群組。在此練習中,請接受預設勾選的 [建立新規則群組]。如需規則群組的相關資訊,請參閱規則群組與規則。
-
在 [權杖簽署設定] 區段中,選取要使用預設的服務命名空間憑證或是這個應用程式特定的自訂憑證來簽署 SAML 權杖。在此練習中,請接受預設值 [使用服務命名空間憑證 (標準)]。如需權杖簽署的相關資訊,請參閱信賴憑證者應用程式中的<權杖簽署>。
-
在 [名稱]中,輸入信賴憑證者應用程式的名稱。在此練習中,請鍵入 TestApp。
-
按一下 [儲存]。
步驟 5 - 建立規則
本節說明如何定義規則來決定如何從身分識別提供者將宣告傳送到您的信賴憑證者應用程式。如需規則與規則群組的相關資訊,請參閱規則群組與規則。
建立規則
-
在 [ACS 管理入口網站首頁] 中,請在左邊的樹狀目錄中按一下 [規則群組],或按一下 [開始使用] 區段下的 [規則群組] 連結。
-
在 [規則群組] 頁面上,按一下 [TestApp 的預設規則群組] (因為您已將您的信賴憑證者應用程式命名為 TestApp)。
-
在 [編輯規則群組] 頁面上,按一下 [產生]。
-
在 [產生規則:TestApp 的預設規則群組] 頁面上,接受預設選取的身分識別提供者 (在此練習中為 [Google] 和 [Windows Live ID]),然後按一下 [產生] 按鈕。
-
在 [編輯規則群組] 頁面上,按一下 [儲存]。
步驟 6 - 檢閱應用程式整合資訊
您可以在 ACS 管理入口網站上 [應用程式整合] 頁面找到所有關於修改您的信賴憑證者應用程式,以搭配 ACS 使用所需的資訊與程式碼。
檢閱應用程式整合資訊
-
在 [ACS 管理入口網站首頁] 中,請在左邊的樹狀目錄中按一下 [應用程式整合],或按一下 [開始使用] 區段下的 [應用程式整合] 連結。
顯示在 [應用程式整合] 頁面上的 ACS URI 對您的服務命名空間而言是唯一的。
在此練習中,建議您保持開啟這個畫面,以快速執行剩餘的步驟。
步驟 7 - 建立 ASP.NET 信賴憑證者應用程式
本節說明如何建立您最終想與 ACS 整合的 ASP.Net 信賴憑證者應用程式。
建立 ASP.NET 信賴憑證者應用程式
-
若要執行 Visual Studio 2010,請按一下 [開始],再按 [執行],鍵入下列文字,然後按 [輸入 :
devenv.exe] -
在 Visual Studio 中,按一下 [檔案],然後按一下 [新專案]。
-
在 [新專案] 視窗中,選取 [Visual Basic] 或 [Visual C#] 範本,然後選取 [ASP.NET MVC 2 Web 應用程式]。
-
在 [名稱] 中,鍵入下列文字,然後按一下 [確定]:
TestApp -
在 [建立單元測試專案] 中,選取 [否,不要建立單元測試專案],然後按一下 [確定]。
-
在 [方案總管] 中的 [TestApp] 上按一下滑鼠右鍵,然後選取 [內容]。
-
在 [TestApp 屬性] 視窗中,選取 [Web] 索引標籤,在 [使用 Visual Studio 開發伺服器] 下,按一下 [特定連接埠],然後將值改為 7777。
-
若要執行與偵錯您剛剛建立的應用程式,請按 F5。如果找不到錯誤,則您的伺服器會呈現一個空的 MVC 專案。
保持開啟 Visual Studio 2010,以便完成下一個步驟。
步驟 8 – 設定 ACS 與您的 ASP.NET 信賴憑證者應用程式之間的信任
本節說明如何整合 ACS 與您在上一個步驟建立的 ASP.NET 信賴憑證者應用程式。
設定 ASP.NET 信賴憑證者應用程式與 ACS 之間的信任
-
在 Visual Studio 2010 中,在 TestApp 的 [方案總管] 中的 [TestApp] 上按一下滑鼠右鍵,然後選取 [新增 STS 參照]。
-
在 [同盟公用程式] 精靈中,執行下列步驟:
-
在 [歡迎使用同盟公用程式精靈] 頁面上,在 [應用程式 URI] 中,輸入應用程式的 URI,然後按一下 [下一步]。在此示範中,應用程式的 URI 是 http://localhost:7777/。
附註結尾的斜線很重要,因為它符合您在 ACS 管理入口網站為您的信賴憑證者應用程式輸入的值。如需相關資訊,請參閱步驟 4 – 新增信賴憑證者應用程式。 -
畫面上會顯示警示:ID 1007:不是在安全 https 連線上主控此應用程式。您想要繼續嗎?在此示範中,請按一下 [是]。
附註在生產環境中,這個關於使用 SSL 的警示是有效的,因此不應該忽略它。 -
在 [安全性權杖服務] 頁面上,選取 [使用現有的 STS],輸入由 ACS 發佈的 WS-同盟中繼資料 URL,然後按一下 [下一步]。
附註您可以在 ACS 管理入口網站的 [應用程式整合] 頁面上找到 WS-同盟中繼資料 URL 的值。如需相關資訊,請參閱步驟 6 - 檢閱應用程式整合資訊。 -
在 [STS 簽署憑證鏈結驗證錯誤] 頁面上,按一下 [下一步]。
-
在 [安全性權杖加密] 頁面上,按一下 [下一步]。
-
在 [提供的宣告] 頁面上,按一下 [下一步]。
-
在 [摘要] 頁面上,按一下 [完成]。
當您順利完成執行 [同盟公用程式] 精靈時,它會加入對 Microsoft.IdentityModel.dll 組驗的參照,並將值寫入 Web.config 檔案,以在您的 ASP.NET MVC 2 Web 應用程式 (TestApp) 中設定 Windows Identity Foundation。
-
在 [歡迎使用同盟公用程式精靈] 頁面上,在 [應用程式 URI] 中,輸入應用程式的 URI,然後按一下 [下一步]。在此示範中,應用程式的 URI 是 http://localhost:7777/。
-
開啟 Web.config 並尋找主要 system.web 元件。外觀應如下所示:
<system.web> <authorization> <deny users="?" /> </authorization>修改 Web.config 以啟用要求驗證,方法是在主要 system.web 元件下新增下列程式碼:
<!--set this value--> <httpRuntime requestValidationMode="2.0"/>執行更新之後,以上程式碼片段外觀應如下所示:
<system.web> <!--set this value--> <httpRuntime requestValidationMode="2.0"/> <authorization> <deny users="?" /> </authorization>
步驟 9 – 測試 ACS 與您的 ASP.NET 信賴憑證者應用程式之間的整合
本節說明如何測試在您的信賴憑證者應用程式與 ACS 之間的整合。
若要測試 ASP.NET 信賴憑證者應用程式與 ACS 之間的整合
-
保持開啟 Visual Studio 2010,按 F5 開始偵錯您的 ASP.NET 信賴憑證者應用程式。
如果找不到錯誤,您的瀏覽器不會開啟預設的 MVC 應用程式,反而會被重新導向由 ACS 主控的 [主領域搜索] 頁面,並請您選擇一個身分識別提供者。
-
請選取 [Google]。
瀏覽器接下來會載入 Google 登入頁面。
-
輸入您的測試 Google 認證,並接受 Google 網站上顯示的同意 UI。
接下來,瀏覽器會公佈回 ACS,ACS 簽發權杖,然後將權杖公佈到您的 MVC 站台。
重要事項