本文件已封存並已停止維護。

作法:使用 ACS 建立我的第一個宣告感知 ASP.NET 服務

發佈時間: 2011年4月

更新日期: 2015年6月

適用於: Azure

  • Microsoft Azure Active Directory 存取控制服務 (也稱為「存取控制服務」或 ACS)

note附註
此主題與舊式技術有關。若要建立 XML 網站服務與 XML 網站服務用戶端,請參閱 http://go.microsoft.com/fwlink/?LinkID=220304

此主題說明如何整合一個簡單的 ASP.NET Web 服務與 ACS。藉由整合您的 Web 服務與 ACS,您可以從您的程式碼中計入驗證與授權的功能因素。ACS 提供機制讓您驗證與授權您的 Web 服務用戶端。如需詳細資訊,請參閱<Web 服務與 ACS>。

在 Web 服務案例中,假設有位 Web 服務用戶端沒有瀏覽器的存取權,但卻能自發性地行動 (不需要使用者參與)。此外,在 Web 服務案例中,用戶端可以使用服務身分識別或企業身分識別來取得 Web 服務的存取權。在此主題中描述的練習中,用戶端是使用在 ACS 中設定的服務身分識別認證類型獲得範例 ASP.NET Web 服務的存取權。

為了執行此主題中的步驟,您必須下載一個 ASP.NET 服務範例。如需詳細資訊,請參閱程式碼範例:ASP.NET Web 服務

ACS 管理入口網站可讓您藉由新增身分識別提供者、設定信賴憑證者應用程式、定義規則與規則群組,以及建立您的信賴憑證者信任的認證來設定您的 存取控制命名空間。

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

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

本節說明如何新增信賴憑證者應用程式。如需信賴憑證者應用程式的詳細資訊,請參閱信賴憑證者應用程式

  1. 在 ACS 管理入口網站中,請在左邊的樹狀目錄中按一下 [賴憑證者應用程式],或按一下 [開始使用] 區段下的 [信賴憑證者應用程式] 連結。

  2. 在 [信賴憑證者應用程式] 頁面上,按一下 [新增]。

  3. 在 [新增信賴憑證者應用程式] 頁面上,執行下列動作:

    • 在 [名稱]中,輸入信賴憑證者應用程式的名稱。在這個練習中,請鍵入 ASPNET Simple Service

    • 在 [模式] 中,選取 [手動輸入設定]。

    • 在 [領域] 中,鍵入 ACS 簽發的安全性權杖適用的 URI。在此練習中,請鍵入 http://localhost:8000/Service

    • 在 [傳回 URL] 中,鍵入 ACS 要將安全性權杖傳回的 URL。在此練習中,請鍵入 http://localhost:8000/Service

    • 在 [錯誤 URL (選用)] 中,輸入如果在登入期間發生錯誤,ACS 可以發佈到的 URL。

    • 在 [權杖格式] 中,選取當 ACS 簽發安全性權杖給這個信賴憑證者應用程式時,要使用的權杖格式。在此練習中,請選取 [SWT]。如需權杖與權杖格式的詳細資訊,請參閱在 ACS 中支援的權杖格式信賴憑證者應用程式中的<權杖格式>。

    • 在 [權杖存留時間 (秒)] 中,指定 ACS 簽發的安全性權杖要保持有效的時間量。在此練習中,請接受預設值 [600]。如需權杖存留期的詳細資訊,請參閱信賴憑證者應用程式中的<權杖加密原則>。

    • 在 [身分識別提供者] 中,您可以選擇要搭配這個信賴憑證者應用程式一起使用的身分識別提供者。

      但是,在這個練習中,沒有使用任何身分識別提供者,而且用戶端是使用服務身分識別取得 Web 服務的存取權,因此請務必清除 [Windows Live ID] 旁的核取方塊。

      如需服務身分識別的詳細資訊,請參閱服務身分識別

    • 在 [規則群組] 中,請選擇這個信賴憑證者應用程式處理宣告時要使用的規則群組。在此練習中,請接受預設勾選的 [建立新規則群組]。如需有關規則群組的詳細資訊,請參閱規則群組和規則

    • 在 [權杖簽署設定] 下的 [權杖簽署金鑰] 中,按一下 [產生] 按鈕,以產生此信賴憑證者適用的 256 位元對稱金鑰。

  4. 按一下 [儲存]

規則會決定如何將來自身分識別提供者或 ACS (如果 ACS 是宣告簽發者的話) 傳送到信賴憑證者應用程式。如需規則與規則群組的詳細資訊,請參閱規則群組和規則

  1. 在 [ACS 管理入口網站首頁] 中,請在左邊的樹狀目錄中按一下 [規則群組],或按一下 [開始使用] 區段下的 [規則群組] 連結。

  2. 在 [規則群組] 頁面上,按一下 [ASPNET Simple Service 的預設規則群組] (因為您已將您的信賴憑證者應用程式命名為 ASPNET Simple Service)。

  3. [編輯規則群組] 頁面上,按一下 [加入]

  4. 在 [新增宣告規則] 頁面上,執行下列動作:

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

    • 在 [如果] 區段中的 [輸入宣告類型] 下,保留 [任何] 的預設選項。

    • 在 [如果] 區段中的 [輸入宣告值] 下,保留 [任何] 的預設選項。

    • 在 [則] 區段中的 [輸出宣告類型] 下,選取 [輸入類型],再選取類型 [動作],因為這是您在這個練習中使用的 ASP.NET Web 服務範例程式碼requiredClaimType = “action” 中所指定的宣告類型。您可以在 acs\WebServices\ASPNETSimpleService\Service 下的範例程式碼 Default.aspx.cs 中找到此字串。

    • 在 [則] 區段中的 [輸出宣告值] 下,選取 [輸入值],再選取類型 [回復],因為這是您在這個練習中使用的 ASP.NET Web 服務範例程式碼requiredClaimValue = “reverse” 中所指定的宣告類型。您可以在 acs\WebServices\ASPNETSimpleService\Service 下的範例程式碼 Default.aspx.cs 中找到此字串。

    • 按一下 [儲存]

  5. 在 [編輯規則群組] 頁面上,按一下 [儲存]。

在此主題中說明的練習中,用戶端使用向 ACS 註冊且受其管理的使用者名稱和密碼 (亦即 ACS 服務身分識別) 向 ACS 要求由 ACS 簽發的簡易 Web 權杖 (SWT)。本節說明如何設定 ACS 服務身分識別,或設定由 ACS 主控的認證,讓用戶端可以用於向 ACS 要求權杖。如需詳細資訊,請參閱服務身分識別。在這個練習中,將服務身分識別名稱設為 acssample (ASP.NET 服務用戶端向 ACS 要求權杖時使用此值作為使用者名稱),並將密碼設為 pass@word1

  1. ACS 管理入口網站首頁上,按一下左邊樹狀目錄中的 [服務身分識別]。

  2. 在 [服務身分識別] 頁面上,按一下 [新增]。

  3. 在 [新增服務身分識別] 頁面上,執行下列動作,然後按一下 [儲存]:

    1. 在 [名稱] 中,鍵入 acssample

    2. 在 [類型] 中,選取 [密碼]。

    3. 在 [密碼] 中,鍵入 pass@word1

    4. 保留 [生效日期] 與 [到期日] 的預設值不變。

  4. 在 [編輯服務身分識別] 頁面上,按一下 [儲存]。

本節說明如何整合 ACS 與您的範例 ASP.NET 服務。如需詳細資訊,請參閱程式碼範例:ASP.NET Web 服務

  1. 在您下載的範例中尋找 ASPNETSimpleService.sln,並在 Visual Studio® 2010 中開啟它。

  2. 在 Visual Studio 2010 中的 [方案總管] 中,在 [方案 ‘ASPNETSimpleService’] 下按兩下 [web.config]。

  3. web.config 中,輸入您在上述步驟中於 ACS 設定的 存取控制命名空間 名稱和權杖簽署金鑰。若要檢視權杖簽署金鑰,請按一下 ACS 管理入口網站中的 [憑證與金鑰]。

    以下程式碼片段顯示您需要更新的 web.config 檔案元素。

    <appSettings>
        <add key="AccessControlHostName" value="accesscontrol.windows.net"/>
        <add key="AccessControlNamespace" value="...enter your 存取控制命名空間 name..."/>
        <add key="IssuerSigningKey" value="...enter your signing key..."/>
      </appSettings>
    
  4. 儲存已更新的 web.config 檔案。

  5. 在 Visual Studio 2010 中的 [方案總管] 中,在 [方案 ‘ASPNETSimpleService’] 下按兩下 app.config 檔案。

  6. app.config 檔案中,輸入您在上述步驟中於 ACS 設定之服務身分識別的 存取控制命名空間 名稱以及使用者名稱與密碼。若要檢視使用者名稱與密碼,請按一下 ACS 管理入口網站中的 [服務身分識別]。

    以下程式碼片段顯示您需要變更的 app.config 檔案元素。

    <appSettings>
        <add key="AccessControlHostName" value="accesscontrol.windows.net"/>
        <add key="AccessControlNamespace" value="...enter your 存取控制命名空間 name..."/>
        <add key="WrapPassword" value="...update to your password..."/>
        <add key="WrapUsername" value="...update to your username..."/>
        <add key="ServiceAddress" value="http://localhost:8000/Service/Default.aspx" />
      </appSettings>
    
  7. 儲存已更新的 app.config 檔案。

本節說明如何測試您的 ASP.NET Web 服務與 ACS 之間的整合。

  1. 若要在 Visual Studio 2010 中執行 ASP.NET 服務,請按 F5。

  2. 若要執行 ASP.NET Wb 服務用戶端,請在 [方案總管] 中的 [用戶端] 按一下滑鼠右鍵,然後選取 [偵錯],再選取 [啟動新例項]。

    畫面上會開啟一個命命列視窗,其中含有下列訊息:輸入要回復的字串,然後按 <ENTER 鍵>

  3. 輸入任何字串,例如 hello world!,然後按 Enter 鍵。

    如果您的輸入是 hello world!,則您應該會在主控台應用程式上看見下列回應:!dlrow olleh

另請參閱

概念

ACS 的作法

顯示: