共用方式為


程式碼範例:ASP.NET 具有同盟登出的 MVC 4

更新日期:2015 年 6 月 19 日

適用對象:Azure

此範例說明如何將Microsoft Azure Active Directory 存取控制 (也稱為 存取控制 Service 或 ACS) 與 ASP.NET MVC 4 應用程式整合。 ACS 整合能為 ASP.NET MVC 4 應用程式中支援的身分識別提供者啟用單一登入和單一登出功能。

此範例的程式碼位於 MICROSOFT AZURE ACTIVE DIRECTORY 存取控制 (ACS) 程式碼範例套件的ASPNETSimpleMVC4 (C#\Websites\ASPNETSimpleMVC4) 子目錄中。

如需 ACS 中單一登出功能的詳細資訊,請參閱 單一登出

必要條件

若要執行此範例,您將需要:

如需詳細資訊,請參閱 ACS 必要條件

設定範例

您可以使用 ACS 管理入口網站或 ACS 管理服務來設定此範例。 此主題將說明這兩種選項。

  • 選項 1:使用 ACS 管理入口網站

  • 選項 2:使用 ACS 管理服務

選項 1:使用 ACS 管理入口網站

使用 ACS 管理入口網站設定範例

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

  2. 若要建立存取控制命名空間,請依序按一下 [新增][應用程式服務][存取控制][快速建立]。 (或是先按一下 [新增] 再按一下 [存取控制命名空間])。

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

    即會開啟 ACS 管理入口網站。

  4. 若要允許使用者使用其 GoogleYahoo! 身分識別登入您的應用程式,請按一下 [ 識別提供者],按一下 [ 新增 ],然後新增 GoogleYahoo!

    如需指示,請參閱 Google 作為 ACS 身分識別提供者Yahoo! 作為 ACS 識別提供者。 預設會新增 (Microsoft 帳戶) Windows即時識別碼,因此無法刪除。

  5. 若要向 ACS 註冊您的應用程式,請按一下 [ 信賴憑證者應用程式],按一下 [ 新增],在表單中輸入下列資訊,然後按一下 [ 儲存]。

    • 在 [名稱] 欄位中,輸入 ASPNETMVC4Sample

    • 在 [ 領域] 欄位中,輸入 https://localhost:65000/

    • 在 [ 傳回 URL] 欄位中,輸入 https://localhost:65000/

    • 在 [ 錯誤 URL] 欄位中,輸入 https://localhost:65000/Error

    • 在 [權杖格式] 欄位中,選取 [SAML 2.0]

    • 在 [權杖簽署] 欄位中,選取 [使用服務命名空間憑證 (標準)]

    如需 [新增信賴憑證者應用程式] 頁面上欄位和值的相關資訊,請參閱 信賴憑證者應用程式

  6. 若要建立規則群組,以便將身分識別提供者發出的所有宣告傳送至信賴憑證者應用程式,請依序按一下 [規則群組]、[ACS Simple MVC4 範例的預設規則群組] 和 [產生],然後按一下 [儲存]

    ACS 入口網站的 [規則群組] 區段會建立規則,以判斷 ACS 傳送至您的應用程式的宣告。 藉由選取所有產生的規則,您可以設定 ACS 將識別提供者簽發的所有宣告傳送給信賴憑證者應用程式。

範例現在已設定並準備好在 Visual Studio 2012 中執行。

選項 2:使用 ACS 管理服務

Visual Studio範例解決方案有一個名為ConfigureSample的主控台應用程式,其使用 ACS 管理服務和 Common 類別庫中定義的常見協助程式。 您可以使用此應用程式來設定存取控制命名空間,以便與此範例搭配使用。

使用 ACS 管理服務設定範例

  1. 若要設定範例,請開啟 SamplesConfiguration.cs (acs\Management\ManagementService\Common)。 將 Common 類別庫中SamplesConfiguration類別中的預留位置取代為 存取控制 命名空間的相關資訊。 您可以在 ACS 管理入口網站中找到資訊。

    若要流覽至 ACS 管理入口網站:請移至Microsoft Azure管理入口網站 (https://manage.WindowsAzure.com) ,登入,然後按一下 [Active Directory]。 (疑難排解提示:「Active Directory」專案遺失或無法使用) 若要管理存取控制命名空間,請選取命名空間,然後按一下 [管理]。 (或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。

    • ServiceNamespace - 輸入存取控制命名空間的名稱。

    • ManagementServiceIdentityName - 輸入 ACS 管理服務帳戶的名稱。 預設值為 ManagementClient

      若要尋找管理服務帳戶名稱,請在 ACS 管理入口網站中,按一下 [ 管理服務]。 [管理服務帳戶] 之下會依名稱列出帳戶。

    • ManagementServiceIdentityKey - 輸入管理服務帳戶的密碼。

      若要尋找管理服務帳戶密碼,請在 ACS 管理入口網站中,按一下 [ 管理服務]。 按一下管理服務帳戶的名稱,然後在 [認證] 下方按一下 [密碼]。 密碼會出現在 [密碼] 欄位中。 若要複製密碼,請按一下 [顯示密碼]

  2. 在 Visual Studio 中執行ConfigureSample應用程式。 應用程式會使用 SamplesConfiguration.cs 中的資料來設定 ACS 來執行範例。

執行範例

執行範例

  1. 在 Visual Studio 2012 中,開啟範例ASPNETSimpleMVC4.sln (C#\Websites\ASPNETSimpleMVC4\) 的解決方案檔。

  2. 以滑鼠右鍵按一下專案,然後從內容功能表中選取 [識別和存取]

  3. 選取 [使用 Azure 存取控制服務]

  4. 按一下 [選取一或多個提供者] 旁邊的 [設定]

  5. 輸入您的存取控制命名空間和管理服務帳戶密碼。

  6. 從清單中選取一或多個身分識別提供者。

    您在 ACS 入口網站或 ACS 管理服務中設定範例時所新增的識別提供者。

    您的信賴憑證者應用程式現已設定成使用 ACS。

  7. 按 F5 執行應用程式。 您的瀏覽器會導向至 [ACS 首頁領域探索] 頁面。

  8. 按一下 [Google]。 您的瀏覽器會被重新導向至 Google 登入頁面。

  9. 輸入 Google 帳戶的認證,並拒絕使用者同意表單。

您的瀏覽器將重新導向至 https://localhost:65000/。 請注意,您的 Google 使用者名稱會出現在頁面的左上角。 這表示您已登入信賴憑證者應用程式。若要登出信賴憑證者應用程式,請按一下 [登出] 連結。 請注意,您不再是已驗證狀態。

另請參閱

概念

如何:建立存取控制命名空間
ACS 管理服務