如何:使用 ACS 建立我的第一個宣告感知 ASP.NET 應用程式
更新日期:2015 年 6 月 19 日
適用對象:Azure
重要
ACS 命名空間可以將其 Google 身分識別提供者組態從 OpenID 2.0 移轉至 OpenID Connect。 移轉必須在 2015 年 6 月 1 日之前完成。 如需詳細指引,請參閱將 ACS 命名空間移轉至 Google OpenID 連線。 在執行移轉前,本教學課程可以使用其他身分識別提供者 (例如 Facebook) 來完成。
套用至
- Microsoft Azure Active Directory 存取控制服務 (也稱為「存取控制服務」或 ACS)
概觀
本主題描述整合 ACS 與 ASP.NET 信賴憑證者應用程式的案例。 藉由整合 Web 應用程式與 ACS,您可以將驗證和授權的功能納入程式碼中。 換句話說,ACS 會提供向 Web 應用程式驗證和授權使用者的機制。
在此練習案例中,ACS 會將具有 Google 身分識別的使用者驗證為測試 ASP.NET 信賴憑證者應用程式。
整合 ACS 與 ASP.NET 信賴憑證者應用程式的步驟
重要
執行下列步驟之前,請確定您的系統符合 ACS 必要條件中摘要的所有 .NET Framework 和平臺需求。
若要整合 ACS 與 ASP.NET 信賴憑證者應用程式,請完成下列步驟:
步驟 1 - 建立 Access Control 命名空間
步驟 2 – 啟動 ACS 管理入口網站
步驟 3 – 新增身分識別提供者
步驟 4 – 新增信賴憑證者應用程式
步驟 5 - 建立規則
步驟 6 - 檢閱應用程式整合資訊
步驟 7 - 建立 ASP.NET 信賴憑證者應用程式
步驟 8 – 設定 ACS 與您的 ASP.NET 信賴憑證者應用程式之間的信任
步驟 9 – 測試 ACS 與您的 ASP.NET 信賴憑證者應用程式之間的整合
步驟 1 - 建立 Access Control 命名空間
如需如何建立存取控制命名空間的詳細指示,請參閱如何:建立存取控制命名空間。
步驟 2 – 啟動 ACS 管理入口網站
ACS 管理入口網站可讓您藉由新增識別提供者、設定信賴憑證者應用程式、定義規則和規則群組,以及建立信賴憑證者應用程式信任的認證,來設定您的存取控制命名空間。
啟動 ACS 管理入口網站
移至Microsoft Azure管理入口網站 (https://manage.WindowsAzure.com) 登入,然後按一下 [Active Directory]。 (疑難排解提示: 「Active Directory」專案遺失或無法使用)
若要管理存取控制命名空間,請選取該命名空間,然後按一下 [管理]。 (或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。
步驟 3 – 新增身分識別提供者
本節說明如何新增身分識別提供者,以搭配使用您的信賴憑證者應用程式進行驗證。 如需識別提供者的詳細資訊,請參閱 識別提供者。
新增身分識別提供者
在 ACS 管理入口網站中,按一下左側樹狀目錄中的 [識別提供者],或按一下[消費者入門] 區段底下的 [識別提供者] 連結。
在 [身分識別提供者] 頁面上,按一下 [新增],選取 [Google] 作為身分識別提供者,然後按一下 [下一步]。
[新增 Google 身分識別提供者] 頁面會提示您輸入登入連結文字 (預設值是 Google) 和一個影像 URL。 此 URL 指向一個影像檔案,以作為此身分識別提供者的登入連結。 編輯這些欄位是選擇性的。 在此練習中,請勿編輯它們,按一下 [儲存] 。
步驟 4 – 新增信賴憑證者應用程式
本節說明如何新增與設定信賴憑證者應用程式。 如需信賴憑證者應用程式的詳細資訊,請參閱 信賴憑證者應用程式。
設定信賴憑證者應用程式
在 ACS 管理入口網站中,按一下左側樹狀目錄中的 [信賴憑證者應用程式],或按一下[消費者入門] 區段底下的 [信賴憑證者應用程式] 連結。
在 [信賴憑證者應用程式] 頁面上,按一下 [新增]。
在 [新增信賴憑證者應用程式] 頁面上,執行下列動作:
在 [名稱]中,輸入信賴憑證者應用程式的名稱。 在此練習中,請鍵入 TestApp。
在 [模式] 中,選取 [手動輸入設定]。
在 [領域] 中,輸入 ACS 所簽發之安全性權杖所套用的 URI。 在此練習中,輸入 https://localhost:7777/ 。
在 [ 傳回 URL] 中,輸入 ACS 傳回安全性權杖的 URL。 在此練習中,輸入 https://localhost:7777/ 。
在 [錯誤 URL] (選擇性) 中,輸入 ACS 在登入期間發生錯誤時可以張貼至的 URL。 在此練習中,將此欄位保留空白。
在 [權杖格式] 中,選取 ACS 在發行安全性權杖給此信賴憑證者應用程式時要使用的權杖格式。 在此練習中,請選取 [SAML 2.0]。 如需權杖和權杖格式的詳細資訊,請參閱信賴憑證者應用程式中的ACS 支援權杖格式和「權杖格式」。
在 [權杖加密原則] 中,選取 ACS 針對此信賴憑證者應用程式所發行之權杖的加密原則。 在此練習中,請接受 [無] 的預設值。 如需權杖加密原則的詳細資訊,請參閱 信賴憑證者應用程式中的。
在 [權杖存留時間 (秒)] 中,指定 ACS 簽發的安全性權杖要保持有效的時間量。 在此練習中,請接受預設值 [600]。 如需詳細資訊,請參閱 信賴憑證者應用程式中的「權杖存留期」。
在 [身分識別提供者] 中,選擇要搭配這個信賴憑證者應用程式一起使用的身分識別提供者。 在此練習中,接受已核取的預設值 (Google和Windows Live ID) 。
在 [規則群組] 中,請選擇這個信賴憑證者應用程式處理宣告時要使用的規則群組。 在此練習中,請接受預設勾選的 [建立新規則群組]。 如需規則群組的詳細資訊,請參閱 規則群組和規則。
在 [權杖簽署設定]區段中,選取是否要使用存取控制命名空間的憑證或與此應用程式特定的自訂憑證簽署 SAML 權杖。 在此練習中,請接受預設值 [使用服務命名空間憑證 (標準)]。 如需權杖簽署的詳細資訊,請參閱 信賴憑證者應用程式中的。
按一下 [檔案] 。
步驟 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,請按一下[開始],按一下 [執行],輸入下列文字,然後按Enter:
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 為 https://localhost:7777/ 。
注意
尾端斜線很重要,因為它符合您在 ACS 管理入口網站中為信賴憑證者應用程式輸入的值。 如需詳細資訊,請參閱步驟 4 – 新增信賴憑證者應用程式。
出現警告: 識別碼 1007:應用程式未裝載于安全 HTTPs 連線上。您要繼續嗎? 在此示範中,按一下 [ 是]。
注意
在生產環境中,這個關於使用 SSL 的警示是有效的,因此不應該忽略它。
在 [ 安全性權杖服務 ] 頁面上,選取 [使用現有的 STS],輸入 ACS 發佈的WS-Federation中繼資料 URL,然後按 [ 下一步]。
注意
您可以在 ACS 管理入口網站的 [ 應用程式整合 ] 頁面上找到 [WS-Federation中繼資料 URL] 的值。 如需詳細資訊,請參閱步驟 6 - 檢閱應用程式整合資訊。
在 [STS 簽署憑證鏈結驗證錯誤] 頁面上,按一下 [下一步]。
在 [安全性權杖加密] 頁面上,按一下 [下一步]。
在 [提供的宣告] 頁面上,按一下 [下一步]。
在 [摘要] 頁面上,按一下 [完成]。
當您順利完成執行 [同盟公用程式] 精靈時,它會加入對 Microsoft.IdentityModel.dll 組驗的參照,並將值寫入 Web.config 檔案,以在您的 ASP.NET MVC 2 Web 應用程式 (TestApp) 中設定 Windows Identity Foundation。
開啟 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 網站。