程式碼範例:ASP.NET Web 服務
更新日期:2015 年 6 月 19 日
適用對象:Azure
此範例說明如何將Microsoft Azure Active Directory 存取控制 (也稱為存取控制服務或 ACS) 整合到簡單的 Web 服務中。 此範例使用 ASP.NET 作為 Web 服務主機和命令列用戶端。 ASP.NET Web 服務需要 ACS 所簽發的 SWT 權杖。 用戶端會向 ACS 要求權杖,其中包含向 ACS 註冊的使用者名稱和密碼。 此範例的程式碼位於 Microsoft Azure Active Directory 存取控制 (ACS) 程式碼範例套件的ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) 子目錄中。
必要條件
若要執行此範例,您將需要:
若要在 Azure 首頁建立帳戶,並建立存取控制命名空間。
Visual Studio 2010 (任何版本)
如需詳細資訊,請參閱 ACS 必要 條件 (https://go.microsoft.com/fwlink/?LinkId=221065) 。
設定範例
您可以使用 ACS 管理入口網站或 ACS 管理服務來執行此範例所需的 ACS 組態。 此主題將說明這兩種選項。
選項 1:使用 ACS 管理入口網站設定範例
選項 2:使用 ACS 管理服務設定範例
選項 1:使用 ACS 管理入口網站設定範例
使用 ACS 管理入口網站設定範例
移至Microsoft Azure管理入口網站 (https://manage.WindowsAzure.com) 登入,然後按一下[Active Directory]。 (疑難排解提示: 「Active Directory」 專案遺失或無法使用)
若要建立存取控制命名空間,請依序按一下 [新增]、[應用程式服務]、[存取控制] 和 [快速建立]。 (或是先按一下 [新增] 再按一下 [存取控制命名空間])。
若要管理存取控制命名空間,請選取該命名空間,然後按一下 [管理]。 (或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。
此動作可開啟「存取控制服務」管理入口網站。
若要向 ACS 註冊您的應用程式,請按一下 [信賴憑證者應用程式],按一下 [ 新增],然後在表單中輸入下列資訊:
在 [名稱] 欄位中,輸入 [ASPNET Simple Service]。
在 [ 領域] 欄位中,輸入 https://localhost:8000/Service/
在 [ 傳回 URL] 欄位中,輸入 https://localhost:8000/Service/
從 [權杖格式] 下拉式清單方塊中,選取 [SWT]。
在 [權杖簽署金鑰] 欄位中按一下 [產生],以建立權杖簽署金鑰。 複製此金鑰,以供後續設定時使用。
在 [到期日] 欄位中,為金鑰輸入適當的到期日。 到達此日期後,金鑰即失去效用。
將其他欄位保留為預設值。
按一下 [儲存],然後按一下 [首頁] 回到存取控制服務管理入口網站的首頁。
註冊信賴憑證者之後,現在就可以建立規則,以判斷 ACS 將發出給應用程式的宣告。 在此範例中,我們將建立一項規則,將具有 [回復] 值的 [動作] 宣告授與任何已註冊的使用者名稱與密碼。 若要建立此規則,請按一下 [首頁] 回到存取控制服務管理入口網站的首頁,再按一下 [規則群組],然後按一下 [ASP.NET Simple Service 的預設規則群組]。 使用下列設定新增規則:
在 [宣告簽發者] 區段中,選取 [存取控制服務]。
在 [輸入宣告類型] 區段中,選取 [任何]。
在 [輸入宣告值] 區段中,選取 [任何]。
在 [輸出宣告類型] 區段中選取 [輸入類型],然後在欄位中輸入 [動作]。
在 [輸出宣告值] 區段中選取 [輸入值],然後在欄位中輸入 [回復]。
相較于網站範例,此範例依賴 ACS 管理的認證。 設定 ACS 的最後一個步驟是註冊要使用的用戶端應用程式的使用者名稱和密碼。 若要設定新的使用者名稱和密碼,請按一下 [首頁] 回到存取控制服務管理入口網站的首頁,再按一下 [服務身分識別],按一下 [新增],然後填寫表單。 在此範例中,使用者名稱請使用 acssample、[認證類型] 請使用 [密碼],密碼為 pass@word1。
按一下 [儲存],然後按一下 [首頁] 回到存取控制服務管理入口網站的首頁。
選項 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 應用程式。 這會將 ACS 設定為執行此範例。
ConfigureSample 應用程式完成時,會將產生的信賴憑證者簽署金鑰輸出至主控台。 請將此金鑰複製到剪貼簿。
執行範例
執行範例
在 Visual Studio 中開啟範例。 此解決方案包含兩個專案: 服務 與 用戶端。
如果您尚未這麼做,請在Common\SamplesConfiguration.cs中輸入存取控制命名空間詳細資料。 如需詳細資訊,請參閱 選項 2 的步驟 1:透過 ACS 管理服務進行設定。 Service 與 Client 專案也會使用此檔案。
在 Service 專案中開啟 web.config 檔案。 在適當的 AppSettings 元素中輸入您的權杖簽署金鑰。 如果您使用管理服務設定 ACS,這是您複製到剪貼簿的值。 若要取得權杖簽署金鑰,請參閱入口網站的 [憑證與金鑰] 區域。 以下程式碼片段顯示 Service web.config 檔案的這個區域。
<appSettings> <add key="IssuerSigningKey" value="...update to your signing key..."/> </appSettings>
在 Client 專案中開啟 app.config 檔案。 在適當的 AppSettings 元素中輸入您的使用者名稱與密碼。 若要取得您先前註冊的使用者名稱與密碼,請參閱入口網站的 [服務識別] 區域。 以下程式碼片段顯示 Client app.config 檔案的這個區域 (已適當地更新)。
<appSettings> <add key="OAuthUserName" value="acssample" /> <add key="OAuthPassword" value="pass@word1" /> <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" /> </appSettings>
若要執行範例,請先啟動服務,再啟動用戶端。 在用戶端上,輸入要回復的字串。 然後,用戶端主控台視窗應該會顯示輸出,指出它已從 ACS 收到權杖。