程式碼範例: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 中單一登出功能的詳細資訊,請參閱 單一登出。
必要條件
若要執行此範例,您將需要:
Azure 入口網站 () https://go.microsoft.com/fwlink/?LinkID=275081 和存取控制命名空間中的帳戶。 此範例會使用名為 acssamples 的存取控制命名空間。 您的命名空間名稱可能會不同。
如需建立存取控制命名空間的詳細資訊,請參閱如何:建立存取控制命名空間。
Visual Studio 2012
Visual Studio 2012 () https://msdn.microsoft.com/library/hh545418.aspx 的身分識別和存取工具
如需詳細資訊,請參閱 ACS 必要條件。
設定範例
您可以使用 ACS 管理入口網站或 ACS 管理服務來設定此範例。 此主題將說明這兩種選項。
選項 1:使用 ACS 管理入口網站
選項 2:使用 ACS 管理服務
選項 1:使用 ACS 管理入口網站
使用 ACS 管理入口網站設定範例
移至Microsoft Azure管理入口網站 (https://manage.WindowsAzure.com) 登入,然後按一下 [Active Directory]。 (疑難排解提示: 「Active Directory」專案遺失或無法使用)
若要建立存取控制命名空間,請依序按一下 [新增]、[應用程式服務]、[存取控制] 和 [快速建立]。 (或是先按一下 [新增] 再按一下 [存取控制命名空間])。
若要管理存取控制命名空間,請選取該命名空間,然後按一下 [管理]。 (或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。
即會開啟 ACS 管理入口網站。
若要允許使用者使用其 Google 或 Yahoo! 身分識別登入您的應用程式,請按一下 [ 識別提供者],按一下 [ 新增 ],然後新增 Google 和 Yahoo!。
如需指示,請參閱 Google 作為 ACS 身分識別提供者 和 Yahoo! 作為 ACS 識別提供者。 預設會新增 (Microsoft 帳戶) Windows即時識別碼,因此無法刪除。
若要向 ACS 註冊您的應用程式,請按一下 [ 信賴憑證者應用程式],按一下 [ 新增],在表單中輸入下列資訊,然後按一下 [ 儲存]。
在 [名稱] 欄位中,輸入 ASPNETMVC4Sample。
在 [ 領域] 欄位中,輸入 https://localhost:65000/
在 [ 傳回 URL] 欄位中,輸入 https://localhost:65000/
在 [ 錯誤 URL] 欄位中,輸入 https://localhost:65000/Error
在 [權杖格式] 欄位中,選取 [SAML 2.0]。
在 [權杖簽署] 欄位中,選取 [使用服務命名空間憑證 (標準)]。
如需 [新增信賴憑證者應用程式] 頁面上欄位和值的相關資訊,請參閱 信賴憑證者應用程式。
若要建立規則群組,以便將身分識別提供者發出的所有宣告傳送至信賴憑證者應用程式,請依序按一下 [規則群組]、[ACS Simple MVC4 範例的預設規則群組] 和 [產生],然後按一下 [儲存]。
ACS 入口網站的 [規則群組] 區段會建立規則,以判斷 ACS 傳送至您的應用程式的宣告。 藉由選取所有產生的規則,您可以設定 ACS 將識別提供者簽發的所有宣告傳送給信賴憑證者應用程式。
範例現在已設定並準備好在 Visual Studio 2012 中執行。
選項 2:使用 ACS 管理服務
Visual Studio範例解決方案有一個名為ConfigureSample的主控台應用程式,其使用 ACS 管理服務和 Common 類別庫中定義的常見協助程式。 您可以使用此應用程式來設定存取控制命名空間,以便與此範例搭配使用。
使用 ACS 管理服務設定範例
若要設定範例,請開啟 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 管理入口網站中,按一下 [ 管理服務]。 按一下管理服務帳戶的名稱,然後在 [認證] 下方按一下 [密碼]。 密碼會出現在 [密碼] 欄位中。 若要複製密碼,請按一下 [顯示密碼]。
在 Visual Studio 中執行ConfigureSample應用程式。 應用程式會使用 SamplesConfiguration.cs 中的資料來設定 ACS 來執行範例。
執行範例
執行範例
在 Visual Studio 2012 中,開啟範例ASPNETSimpleMVC4.sln (C#\Websites\ASPNETSimpleMVC4\) 的解決方案檔。
以滑鼠右鍵按一下專案,然後從內容功能表中選取 [識別和存取]。
選取 [使用 Azure 存取控制服務]。
按一下 [選取一或多個提供者] 旁邊的 [設定]。
輸入您的存取控制命名空間和管理服務帳戶密碼。
從清單中選取一或多個身分識別提供者。
您在 ACS 入口網站或 ACS 管理服務中設定範例時所新增的識別提供者。
您的信賴憑證者應用程式現已設定成使用 ACS。
按 F5 執行應用程式。 您的瀏覽器會導向至 [ACS 首頁領域探索] 頁面。
按一下 [Google]。 您的瀏覽器會被重新導向至 Google 登入頁面。
輸入 Google 帳戶的認證,並拒絕使用者同意表單。
您的瀏覽器將重新導向至 https://localhost:65000/。 請注意,您的 Google 使用者名稱會出現在頁面的左上角。 這表示您已登入信賴憑證者應用程式。若要登出信賴憑證者應用程式,請按一下 [登出] 連結。 請注意,您不再是已驗證狀態。