匯出 (0) 列印
全部展開

程式碼範例:OAuth 2.0 驗證憑證

發佈時間: 2011年5月

更新日期: 2014年2月

適用於: 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)。此範例的程式碼位於存取控制服務範例與文件 (http://go.microsoft.com/fwlink/?LinkId=213167) 套件的 OAuth2 資料夾中。

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

  1. Windows Azure 首頁 (http://go.microsoft.com/fwlink/?LinkId=130560) 上建立帳戶,並建立存取控制服務命名空間。

  2. Visual Studio 2010 (任何版本)

如需詳細資訊,請參閱 ACS 先決條件 (http://go.microsoft.com/fwlink/?LinkId=221065)。

此範例所需的 ACS 設定,可使用 ACS 管理入口網站或 ACS 管理服務來執行。此主題將說明這兩種選項。

  1. 選項 1:使用 ACS 管理入口網站來設定範例

  2. 選項 2:使用 ACS 管理服務來設定範例

  1. 開啟瀏覽器並瀏覽至 Windows Azure 首頁 (http://go.microsoft.com/fwlink/?LinkId=130560),然後登入。瀏覽至 [服務匯流排、存取控制與快取] 區段,以設定您的 ACS 服務命名空間。建立命名空間後,請加以選取,然後按一下位於頁面頂端的 [管理] > [存取控制服務]。這會在新視窗中啟動頁面。

  2. 若要對 ACS 註冊您的應用程式,請按一下主要頁面上的 [信賴憑證者應用程式] 連結,選取 [新增],然後在表單中輸入下列資訊:

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

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

    • 在 [權杖格式] 欄位中,選取 [SWT]。

    • 按一下 [產生] 以建立新的金鑰。

    • 在 [到期日] 欄位中,為金鑰輸入適當的到期日。到達此日期後,金鑰即失去效用。

  3. 按一下 [儲存],然後瀏覽至主要頁面。

  4. 完成信賴憑證者的註冊後,即應建立規則來決定 ACS 將會對您的應用程式發出的宣告。在此範例中我們將建立一項規則,以授與任何由 ACS 所產生的要傳遞的宣告。若要建立此規則,請瀏覽至主要入口網站頁面,選取 [規則群組],然後選取 [OAuth2 RP 的預設規則群組]。使用下列設定新增規則:

    • 在 [宣告簽發者] 區段中,選取 [存取控制服務]

    • 在 [輸入宣告類型] 區段中,選取 [任何]

    • 在 [輸入宣告值] 區段中,選取 [任何]

    • 在 [輸出宣告類型] 區段中,選取 [傳遞輸入宣告類型]

    • 在 [輸出宣告值] 區段中,選取 [傳遞輸入宣告值]。

  5. 相較於網站範例,此範例依賴 ACS 所管理的認證。若要為要使用的用戶端應用程式設定新的用戶端憑證,請選取位於主要入口網站頁面上的 [服務識別] 連結。按一下 [新增] 連結,然後鍵入名稱。新增 [X.509 憑證] 的 [認證類型],然後瀏覽至此範例之 [憑證] 資料夾中的 ACS2ClientCertificate.cer 檔案。按一下 [儲存],然後返回主要入口網站頁面。

  6. 在 ACS 此時完成設定後,開啟 Visual Studio。

Visual Studio 範例解決方案中,具有會使用 ACS 管理服務與 [一般] 類別庫中所定義之一般協助程式的主控台應用程式 ConfigureSample。此應用程式可讓您設定適用於此範例的 ACS 服務命名空間。

  1. 使用您服務命名空間的相關資訊更新 [一般] 類別庫。開啟 SamplesConfiguration.cs,然後輸入下列項目:

    • ServiceNamespace - 這是用於 ACS 的命名空間

    • ManagementServiceIdentityName - 這是管理服務帳戶的名稱

    • ManagementServiceIdentityKey - 這是與管理服務帳戶相關聯的密碼

    • AcsHostUrl - 這是 ACS 的主機名稱

  2. 在 Visual Studio 中執行 ConfigureSample 應用程式。這會設定 ACS 以執行此範例。

  3. ConfigureSample 應用程式完成時,會將產生的信賴憑證者簽署金鑰輸出至主控台。請將此金鑰複製到剪貼簿。

  1. 在 Visual Studio 中開啟範例。除了 ConfigureSampleCommon 以外,解決方案還包含兩個專案:ProtectedResourceWebAppClient

  2. 請在 Common\SamplesConfiguration.cs 中輸入您的服務命名空間詳細資料 (若您尚未輸入)。如需詳細資訊,請參閱前述選項 2:透過 ACS 管理服務進行設定的步驟 1。Client 專案也會使用此檔案。

  3. ProtectedResourceWebApp 專案中開啟 web.config 檔案。

  4. 在適當的 AppSettings 元素中輸入您的權杖簽署金鑰。若您已使用管理服務設定了 ACS,這會是您複製到剪貼簿上的值。若要取得權杖簽署金鑰,請參閱入口網站的 [憑證與金鑰] 區域。以下程式碼片段顯示 web.config 檔案的這個區域:

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. 若要執行範例,請啟動 ProtectedResourceWebApp。畫面上會出現網頁瀏覽器,但文字方塊會是空的,因為網頁瀏覽器未經驗證。

  6. 執行 Client。主控台視窗中會顯示 HTML。請注意,HTML 會指出使用者已經過驗證,並顯示來自 ACS 的宣告。

社群新增項目

新增
顯示:
© 2014 Microsoft