本文件已封存並已停止維護。

作法:使用 ACS 建立我的第一個宣告感知 ASP.NET 應用程式

發佈時間: 2011年4月

更新日期: 2015年6月

適用於: Azure

Important重要事項
ACS 命名空間可以將其 Google 身分識別提供者組態從 OpenID 2.0 移轉至 OpenID Connect。必須在 2015 年 6 月 1 日前完成移轉。如需詳細指示,請參閱將 ACS 命名空間移轉到 Google OpenID Connect。在執行移轉前,本教學課程可以使用其他身分識別提供者 (例如 Facebook) 來完成。

  • Microsoft Azure Active Directory 存取控制服務 (也稱為「存取控制服務」或 ACS)

此主題說明整合 ACS 與 ASP.NET 信賴憑證者應用程式的案例。藉由整合您的 Web 應用程式與 ACS,您可以從您的程式碼中計入驗證與授權的功能因素。換句話說,ACS 提供機制讓您驗證與授權您的 Web 應用程式使用者。

在這個練習案例中,ACS 會使用 Google身分識別來驗證想要進入測試 ASP.NET 信賴憑證者應用程式的使用者。

如需有關如何建立 存取控制命名空間 的詳細指示,請參閱作法:建立存取控制命名空間

ACS 管理入口網站可讓您藉由新增身分識別提供者、設定信賴憑證者應用程式、定義規則與規則群組,以及建立您的信賴憑證者信任的認證來設定您的 存取控制命名空間。

  1. 移至 Microsoft Azure 管理入口網站 (https://manage.WindowsAzure.com),登入後按一下 [Active Directory]。(疑難排解提示:"Active Directory" 項目遺失或無法使用)

  2. 若要管理存取控制命名空間,請選取該命名空間,然後按一下 [管理]。(或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。

本節說明如何新增身分識別提供者,以搭配使用您的信賴憑證者應用程式進行驗證。如需身分識別提供者的詳細資訊,請參閱身分識別提供者

  1. 在 ACS 管理入口網站中,請在左邊的樹狀目錄中按一下 [身分識別提供者],或按一下 [開始使用] 區段下的 [身分識別提供者] 連結。

  2. 在 [身分識別提供者] 頁面上,按一下 [新增],選取 [Google] 作為身分識別提供者,然後按一下 [下一步]。

  3. [新增 Google 身分識別提供者] 頁面會提示您輸入登入連結文字 (預設值是 Google) 和一個影像 URL。此 URL 指向一個影像檔案,以作為此身分識別提供者的登入連結。編輯這些欄位是選擇性的。在此練習中,請勿編輯它們,按一下 [儲存] 。

本節說明如何新增與設定信賴憑證者應用程式。如需信賴憑證者應用程式的詳細資訊,請參閱信賴憑證者應用程式

  1. 在 ACS 管理入口網站中,請在左邊的樹狀目錄中按一下 [賴憑證者應用程式],或按一下 [開始使用] 區段下的 [信賴憑證者應用程式] 連結。

  2. 在 [信賴憑證者應用程式] 頁面上,按一下 [新增]。

  3. 在 [新增信賴憑證者應用程式] 頁面上,執行下列動作:

    • 在 [名稱]中,輸入信賴憑證者應用程式的名稱。在此練習中,請鍵入 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 權杖。在此練習中,請接受預設值 [使用服務命名空間憑證 (標準)]。如需權杖簽署的詳細資訊,請參閱信賴憑證者應用程式中的<權杖簽署>。

  4. Haga clic en Guardar.

本節說明如何定義規則來決定如何從身分識別提供者將宣告傳送到您的信賴憑證者應用程式。如需規則與規則群組的詳細資訊,請參閱規則群組和規則

  1. 在 [ACS 管理入口網站首頁] 中,請在左邊的樹狀目錄中按一下 [規則群組],或按一下 [開始使用] 區段下的 [規則群組] 連結。

  2. 在 [規則群組] 頁面上,按一下 [TestApp 的預設規則群組] (因為您已將您的信賴憑證者應用程式命名為 TestApp)。

  3. 在 [編輯規則群組] 頁面上,按一下 [產生]。

  4. [產生規則:TestApp 的預設規則群組] 頁面上,接受預設選取的身分識別提供者 (在此練習中為 [Google] 和 Windows Live ID]),然後按一下 [產生] 按鈕。

  5. 在 [編輯規則群組] 頁面上,按一下 [儲存]。

您可以在 ACS 管理入口網站上 [應用程式整合] 頁面找到所有關於修改您的信賴憑證者應用程式,以搭配 ACS 使用所需的資訊與程式碼。

  • 在 [ACS 管理入口網站首頁] 中,請在左邊的樹狀目錄中按一下 [應用程式整合],或按一下 [開始使用] 區段下的 [應用程式整合] 連結。

    顯示在 [應用程式整合] 頁面上的 ACS URI 對您的 存取控制命名空間 而言是唯一的。

    在此練習中,建議您保持開啟這個畫面,以快速執行剩餘的步驟。

本節說明如何建立您最終想與 ACS 整合的 ASP.Net 信賴憑證者應用程式。

  1. 若要執行 Visual Studio 2010,請按一下 [開始],再按 [執行],鍵入下列文字,然後按 [輸入]:
    devenv.exe

  2. 在 Visual Studio 中,按一下 [檔案],然後按一下 [新專案]。

  3. 在 [新專案] 視窗中,選取 [Visual Basic] 或 [Visual C#] 範本,然後選取 [ASP.NET MVC 2 Web 應用程式]。

  4. 在 [名稱] 中輸入下列文字,然後按一下 [確定]:
    TestApp

  5. 在 [建立單元測試專案] 中,選取 [否,不要建立單元測試專案],然後按一下 [確定]。

  6. 在 [方案總管] 中的 [TestApp] 上按一下滑鼠右鍵,然後選取 [內容]。

  7. 在 [TestApp 屬性] 視窗中,選取 [Web] 索引標籤,在 [使用 Visual Studio 開發伺服器] 下,按一下 [特定連接埠],然後將值改為 7777

  8. 若要執行與偵錯您剛剛建立的應用程式,請按 F5。如果找不到錯誤,則您的伺服器會呈現一個空的 MVC 專案。

    保持開啟 Visual Studio 2010,以便完成下一個步驟。

本節說明如何整合 ACS 與您在上一個步驟建立的 ASP.NET 信賴憑證者應用程式。

  1. 在 Visual Studio 2010 中,在 TestApp 的 [方案總管] 中的 [TestApp] 上按一下滑鼠右鍵,然後選取 [新增 STS 參照]。

  2. 在 [同盟公用程式] 精靈中,執行下列步驟:

    1. 在 [歡迎使用同盟公用程式精靈] 頁面上,在 [應用程式 URI] 中,輸入應用程式的 URI,然後按一下 [下一步]。在此示範中,應用程式的 URI 是 http://localhost:7777/

      note附註
      結尾的斜線很重要,因為它符合您在 ACS 管理入口網站為您的信賴憑證者應用程式輸入的值。如需詳細資訊,請參閱 步驟 4 – 新增信賴憑證者應用程式

    2. 畫面上會顯示警示:ID 1007:不是在安全 https 連線上主控此應用程式。您想要繼續嗎?在此示範中,請按一下 [是]。

      note附註
      在生產環境中,這個關於使用 SSL 的警示是有效的,因此不應該忽略它。

    3. 在 [安全性權杖服務] 頁面上,選取 [使用現有的 STS],輸入由 ACS 發佈的 WS-同盟中繼資料 URL,然後按一下 [下一步]。

      note附註
      您可以在 ACS 管理入口網站的 [應用程式整合] 頁面上找到 WS-同盟中繼資料 URL 的值。如需詳細資訊,請參閱步驟 6 - 檢閱應用程式整合資訊

    4. 在 [STS 簽署憑證鏈結驗證錯誤] 頁面上,按一下 [下一步]。

    5. 在 [安全性權杖加密] 頁面上,按一下 [下一步]。

    6. 在 [提供的宣告] 頁面上,按一下 [下一步]。

    7. [摘要] 頁面上,按一下 [完成]

    當您順利完成執行 [同盟公用程式] 精靈時,它會加入對 Microsoft.IdentityModel.dll 組驗的參照,並將值寫入 Web.config 檔案,以在您的 ASP.NET MVC 2 Web 應用程式 (TestApp) 中設定 Windows Identity Foundation。

  3. 開啟 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>
    

本節說明如何測試在您的信賴憑證者應用程式與 ACS 之間的整合。

  1. 保持開啟 Visual Studio 2010,按 F5 開始偵錯您的 ASP.NET 信賴憑證者應用程式。

    如果找不到錯誤,您的瀏覽器不會開啟預設的 MVC 應用程式,反而會被重新導向由 ACS 主控的 [主領域搜索] 頁面,並請您選擇一個身分識別提供者。

  2. 請選取 [Google]。

    瀏覽器接下來會載入 Google 登入頁面。

  3. 輸入您的測試 Google 認證,並接受 Google 網站上顯示的同意 UI。

    接下來,瀏覽器會公佈回 ACS,ACS 簽發權杖,然後將權杖公佈到您的 MVC 站台。

另請參閱

概念

ACS 的作法

顯示: