程式碼範例:OAuth 2.0 憑證驗證
更新日期:2015 年 6 月 19 日
適用對象:Azure
此範例說明如何使用 OAuth 2.0 通訊協定來呈現 X.509 憑證簽署的 SAML 權杖,以向Microsoft Azure Active Directory 存取控制 (進行驗證,也稱為存取控制服務或 ACS) 。 此憑證對應于 ACS 上設定的 ServiceIdentity,而 ACS 會發出具有 ServiceIdentity 之 nameidentifier 宣告的 SWT。 此 SWT 可用來對 OAuth 2.0 保護的資源進行驗證。 此範例符合 OAuth 2.0 通訊協定 (Draft 13)。 此範例的程式碼位於Microsoft Azure Active Directory 存取控制 (ACS) 程式碼範例套件的 OAuth2 (C#\OAuth) 2 子目錄中。
必要條件
若要執行此範例,您將需要:
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 註冊您的應用程式,請按一下 [信賴憑證者應用程式],按一下 [ 新增],然後在表單中輸入下列資訊:
在 [名稱] 欄位中,輸入 OAuth2 RP。
在 [ 領域] 欄位中,輸入 https://oauth2relyingparty/
在 [權杖格式] 欄位中,選取 [SWT]。
按一下 [產生] 以建立新的金鑰。
在 [到期日] 欄位中,為金鑰輸入適當的到期日。 到達此日期後,金鑰即失去效用。
按一下 [檔案] 。
註冊信賴憑證者之後,現在就可以建立規則,以判斷 ACS 將發出給應用程式的宣告。 在此範例中,我們將建立規則,以授與 ACS 傳遞所產生的任何宣告。
若要建立此規則,請按一下 [規則群組],然後按一下 [OAuth2 RP 的預設規則群組]。 使用下列設定來新增規則:
在 [宣告簽發者] 區段中,選取 [存取控制服務]
在 [輸入宣告類型] 區段中,選取 [任何]
在 [輸入宣告值] 區段中,選取 [任何]
在 [輸出宣告類型] 區段中,選取 [傳遞輸入宣告類型]
在 [輸出宣告值] 區段中,選取 [傳遞輸入宣告值]。
此範例依賴 ACS 管理的認證。
若要設定用戶端應用程式的新用戶端憑證,請依序按一下 [服務識別身分] 和 [新增],然後輸入名稱。 新增 [X.509 憑證] 的 [認證類型],然後瀏覽至此範例之 [憑證] 資料夾中的 ACS2ClientCertificate.cer 檔案。 按一下 [檔案] 。
現在已設定 ACS,請開啟 Visual Studio。
選項 2:使用 ACS 管理服務設定範例
Visual Studio範例解決方案有一個名為ConfigureSample的主控台應用程式,其使用 ACS 管理服務和 Common 類別庫中定義的常見協助程式。 此應用程式可用來設定您的存取控制命名空間,以搭配此範例使用。
使用 ACS 管理服務設定範例
使用存取控制命名空間的相關資訊更新Common類別庫。 開啟 SamplesConfiguration.cs,然後輸入下列項目:
ServiceNamespace - 這是您存取控制命名空間的名稱
ManagementServiceIdentityName - 這是管理服務帳戶的名稱
ManagementServiceIdentityKey - 這是與管理服務帳戶相關聯的密碼
AcsHostUrl - 這是 ACS 的主機名稱
在 Visual Studio 中執行ConfigureSample應用程式。 這會將 ACS 設定為執行此範例。
ConfigureSample 應用程式完成時,會將產生的信賴憑證者簽署金鑰輸出至主控台。 請將此金鑰複製到剪貼簿。
執行範例
執行範例
在 Visual Studio 中開啟範例。 除了 ConfigureSample 和 Common之外,方案還包含兩個專案: ProtectedResourceWebApp 和 Client。
如果您尚未這麼做,請在Common\SamplesConfiguration.cs中輸入存取控制命名空間詳細資料。 如需詳細資訊,請參閱上述 選項 2 的步驟 1:透過 ACS 管理服務進行 設定。 Client 專案也會使用此檔案。
在 ProtectedResourceWebApp 專案中開啟 web.config 檔案。
在適當的 AppSettings 元素中輸入您的權杖簽署金鑰。 如果您使用管理服務來設定 ACS,這是您複製到剪貼簿的值。 若要取得權杖簽署金鑰,請在 ACS 入口網站中,按一下 [ 憑證和金鑰]。 以下程式碼片段顯示 web.config 檔案的這個區段:
<appSettings> <add key="SigningKey" value="...Copy Signing Key..."/> </appSettings>
若要執行範例,請啟動 ProtectedResourceWebApp。 畫面上會出現網頁瀏覽器,但文字方塊會是空的,因為網頁瀏覽器未經驗證。
執行 Client。 主控台視窗中會顯示 HTML。 請注意,HTML 表示使用者已驗證,並顯示 ACS 的宣告。