本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

在 SharePoint 2013 中使用 AD FS 設定 SAML 式宣告驗證

 

適用版本:SharePoint Foundation 2013, SharePoint Server 2013

上次修改主題的時間:2016-12-16

摘要:了解如何使用Active Directory Federation Services 第2.0 版 (AD FS) 設定安全性聲明標記語言 (SAML) 宣告驗證。

本文中的程序說明如何設定 AD FS,作為 SharePoint 2013 Web 應用程式的身分識別提供者 Security Token Service (IP-STS)。在此設定中,AD FS 發出包含宣告的 SAML 安全性權杖,讓用戶端電腦可以存取使用宣告式驗證的 Web 應用程式。您可以使用 AD FS 以外的其他身分識別提供者,但該身分識別提供者必須支援 WS-同盟標準。

如需為何使用 SAML 驗證的資訊,請參閱<在 SharePoint 2013 中規劃使用者驗證方法>。

AD FS 可與 Windows Server 2012、Windows Server 2008 或 Windows Server 2008 R2 作業系統搭配使用,建置同盟身分識別管理解決方案,將分散式身分識別、驗證以及授權服務,延伸到跨組織以及跨平台界限的 Web 應用程式。部署 AD FS,即可將組織現有的身分識別管理功能擴及至網際網路。

如需標準測試實驗室中所設定這些程序的版本,請參閱<測試實驗室指南:使用 SharePoint Server 2013 示範 SAML 式宣告驗證>。

操作前,請先熟悉下列文章中的概念:

注意事項 附註:
因為 SharePoint 2013 在 Internet Information Services (IIS) 中以網站形式運作,所以管理員與使用者均依賴瀏覽器提供的協助工具功能。SharePoint 2013 支援所支援瀏覽器的協助工具功能。如需詳細資訊,請參閱下列資源:

您必須安裝並設定執行AD FS 2.0的伺服器。如需詳細資訊,請參閱AD FS 2.0 部署指南 (https://go.microsoft.com/fwlink/p/?LinkId=191723)。

此階段包含下列程序:

  1. 將 AD FS 設定為信賴憑證者

  2. 設定宣告規則

  3. 匯出權杖簽署憑證

請使用本節中的程序設定信賴憑證者。信賴憑證者可定義 AD FS 如何辨識信賴憑證者應用程式並對其發行宣告。

將 AD FS 設定為信賴憑證者
  1. 確認執行此程序的使用者帳戶是本機電腦上的管理員群組的成員。如需帳戶以及群組的成員資格的其他資訊,請參閱瞭解本機使用者與群組

  2. 在 AD FS 伺服器上開啟 Active Directory Federation Services (AD FS) 2.0 管理主控台。

  3. 在瀏覽窗格中,展開 [信任關係],然後按兩下 [信賴憑證者信任] 資料夾。

  4. 在右窗格中,按一下 [新增信賴憑證者信任]。

    Active Directory Federation Services (AD FS) 2.0 設定精靈會隨即開啟。

  5. 在「歡迎使用新增憑證者信任精靈」頁面上,按 [開始]。

  6. 選取 [手動輸入信賴憑證者資料],然後按 [下一步]。

  7. 輸入信賴憑證者名稱,然後按 [下一步]。

  8. 確認已選取 [Active Directory Federation Services (AD FS) 2.0 設定檔],然後按 [下一步]。

  9. 不要使用加密憑證。按 [下一步]。

  10. 按一下以選取 [啟用 WS-同盟被動式通訊協定支援] 核取方塊。

  11. 在 [WS-同盟被動式通訊協定 URL] 欄位中,輸入 Web 應用程式 URL 的名稱,並在名稱後加上 /_trust/ (例如:https:// app1.contoso.com/_trust/)。按 [下一步]。

    注意事項 附註:
    URL 名稱必須使用安全通訊端層 (SSL)。
  12. 輸入信賴憑證者信任識別碼的名稱 (例如:urn:sharepoint:contoso),然後按一下 [新增]。按 [下一步]。請注意,若您在階段 3 設定新 SPTrustedIdentityTokenIssuer,此值將為領域值。

  13. 選取 [允許所有使用者存取此信賴憑證者]。按 [下一步]。

  14. 在「準備新增信任」頁面上,不需要執行任何動作,按 [下一步]。

  15. 在「完成」頁面上,按一下 [關閉]。 規則編輯器管理主控台會隨即開啟。請使用此主控台與下一個程序設定所選目錄來源對 SharePoint 2013 的宣告對應。

使用此步驟中的程序,將輕量型目錄存取通訊協定 (LDAP) 屬性值傳送為宣告,並指定屬性將如何對應連出的宣告類型。

設定宣告規則
  1. 確認執行此程序的使用者帳戶是本機電腦上的管理員群組的成員。如需帳戶和群組的成員資格的其他資訊,請參閱預設本機群組

  2. 在 [發行轉換規則] 索引標籤上,按一下 [新增規則]。

  3. 在「選取規則範本」頁面上,選取 [傳送 LDAP 屬性為宣告]。按 [下一步]。

  4. 在「設定規則」頁面上的 [宣告規則名稱] 欄位中輸入宣告規則的名稱。

  5. 從 [屬性存放區] 下拉式清單中,選取 [Active Directory]。

  6. 在 [對應 LDAP 屬性到連出的宣告類型] 區段的 [LDAP 屬性] 下,選取 [電子郵件地址]。

  7. 從 [連出的宣告類型] 下選取 [電子郵件地址]。

  8. 在 [LDAP 屬性] 下選取 [使用者主體名稱]。

  9. 從 [連出的宣告類型] 下選取 [UPN]。

  10. 按一下 [完成],然後按一下 [確定]。

使用本節中的程序,匯出要與之建立信任關係的 AD FS 伺服器權杖簽署憑證,然後將憑證複製到 SharePoint 2013 可以存取的位置。

匯出權杖簽署憑證
  1. 確認執行此程序的使用者帳戶為本機電腦上的管理員群組的成員。如需帳戶和群組的成員資格的其他資訊,請參閱預設本機群組

  2. 在 AD FS 伺服器上開啟 Active Directory Federation Services (AD FS) 2.0 管理主控台。

  3. 在瀏覽窗格中,展開 [服務],然後按一下 [憑證] 資料夾。

  4. 在 [權杖簽署] 下,按一下 [主要] 欄中所指示的主要權杖憑證。

  5. 在右窗格中,按一下 [檢視憑證連結]。此時會顯示憑證的內容。

  6. 按一下 [詳細資料] 索引標籤。

  7. 按一下 [複製到檔案]。此時會啟動 [憑證匯出精靈]。

  8. 在「歡迎使用憑證匯出精靈」頁面上,按 [下一步]。

  9. 在「匯出私密金鑰」頁面上,按一下 [否,不要匯出私密金鑰],然後按 [下一步]。

  10. 在「匯出檔案格式」頁面中,選取 [DER 編碼二位元 X.509 (.CER)],然後按 [下一步]。

  11. 在「要匯出的檔案」頁面上,輸入要匯出的檔案名稱和位置,然後按 [下一步]。例如,輸入 C:\ADFS.cer

  12. 在「完成憑證匯出精靈」頁面上,按一下 [完成]。

此階段包含下列程序:

  1. 匯出多個父憑證

  2. 使用 Windows PowerShell 匯入權杖簽署憑證

  3. 使用 Windows PowerShell 定義宣告對應的唯一識別碼

  4. 建立新的驗證提供者

若要完成 AD FS 伺服器的設定,請將 .CER 檔案複製到執行 AD FS 的電腦上。

權杖簽署憑證的鏈結中可能有一或多個父憑證。如果有的話,該鏈結中的每個憑證皆必須新增到信任的根授權單位的 SharePoint 2013 清單中。

要判斷是否存在一或多個父憑證,請依照下列步驟操作。

注意事項 附註:
請重複這些步驟,直到所有憑證都匯出到根授權憑證為止。
匯出多個父憑證
  1. 確認執行此程序的使用者帳戶為本機電腦上的管理員群組的成員。如需帳戶和群組的成員資格的其他資訊,查看預設的本機群組的http://go.microsoft.com/fwlink/p/?LinkId=780864&clcid=0x409

  2. 開啟 Active Directory Federation Services (AD FS) 2.0 管理主控台。

  3. 在瀏覽窗格中,展開 [服務],然後按一下 [憑證] 資料夾。

  4. 在 [權杖簽署] 下,按一下 [主要] 欄中所指示的主要權杖憑證。

  5. 在右窗格中,按一下 [檢視憑證連結]。此時會顯示憑證的內容。

  6. 按一下 [憑證] 索引標籤。會顯示鏈結中的其他憑證。

  7. 按一下 [詳細資料] 索引標籤。

  8. 按一下 [複製到檔案]。此時會啟動 [憑證匯出精靈]。

  9. 在「歡迎使用憑證匯出精靈」頁面上,按 [下一步]。

  10. 在「匯出私密金鑰」頁面上,按一下 [否,不要匯出私密金鑰],然後按 [下一步]。

  11. 在「匯出檔案格式」頁面中,選取 [DER 編碼二位元 X.509 (.CER)],然後按 [下一步]。

  12. 在「要匯出的檔案」頁面上,輸入要匯出的檔案名稱和位置,然後按 [下一步]。例如,輸入 C:\adfsParent.cer

  13. 在「完成憑證匯出精靈」頁面上,按一下 [完成]。

依照本節中的步驟,將權杖簽署憑證匯入到位於 SharePoint Server 上信任的根授權單位清單。您必須對鏈結中的每個權杖簽署憑證重複此步驟,直到達成匯入到根憑證授權單位為止。

使用 Windows PowerShell 匯入權杖簽署憑證
  1. 確認您具備下列成員身分:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 待更新之所有資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 Windows PowerShell Cmdlet 之所在伺服器上的管理員群組。

    • 新增超越上述最低要求的必要成員資格。

    管理員可以使用 Add-SPShellAdmin Cmdlet 來授與使用 SharePoint 2013 產品 Cmdlet 的權限。

    注意事項 附註:
    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 Windows PowerShell 權限的其他資訊,請參閱<Add-SPShellAdmin>。
  2. 啟動 SharePoint 2013 管理命令介面。

    • 若為 Windows Server 2008 R2:

      • 在 SharePoint 2013 環境中的 [開始] 功能表上,依序按一下 [所有程式]、[Microsoft SharePoint 2013 產品]、[SharePoint 2013 管理命令介面]。

    • 若為 Windows Server 2012:

      • 在 SharePoint 2013 環境的 [開始] 畫面上,按一下 [SharePoint 2013 管理命令介面]。

        若 [SharePoint 2013 管理命令介面] 不在 [開始] 畫面上:

      • 以滑鼠右鍵按一下 [電腦]、[所有應用程式],然後按一下 [SharePoint 2013 管理命令介面]。

    如需如何與Windows Server 2012互動的詳細資訊,請參閱 <的 Windows Server 2012 R2 和 Windows Server 2012 一般管理工作與導覽

  3. 從 Windows PowerShell 命令提示字元處,匯入權杖簽署憑證的父憑證 (也就是根授權憑證),如下列語法所示:

    $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("<PathToParentCert>")
    
    New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root
    
  4. 從 Windows PowerShell 命令提示字元處,匯入從 AD FS 伺服器中複製的權杖簽署憑證,如下列語法所示:

    $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("<PathToSigningCert>")
    
    New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert
    

如需 New-SPTrustedRootAuthority Cmdlet 的詳細資訊,請參閱<New-SPTrustedRootAuthority

使用本節中的程序來定義宣告對應的唯一識別碼。一般而言,此資訊的形式是電子郵件地址,而信任的 STS 管理員必須提供此資訊,因為只有 STS 的擁有者知道宣告類型對每位使用者永遠是唯一的。

使用 Windows PowerShell 定義宣告對應的唯一識別碼
  1. 從 Windows PowerShell 命令提示字元處,建立電子郵件地址宣告對應,如下列語法所示:

    $emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    
  2. 從 Windows PowerShell 命令提示字元處,建立 UPN 宣告對應,如下列語法所示:

    $upnClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -SameAsIncoming
    
  3. 從 Windows PowerShell 命令提示字元處,建立角色宣告對應,如下列語法所示:

    $roleClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
    

    此宣告對應可用來執行伺服器對伺服器驗證。如需詳細資訊,請參閱<在 SharePoint 2013 中規劃伺服器對伺服器的驗證>。

  4. 從 Windows PowerShell 命令提示字元處,建立主要 SID 宣告對應,如下列語法所示:

    $sidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" -IncomingClaimTypeDisplayName "SID" -SameAsIncoming
    

    此宣告對應可用來執行伺服器對伺服器驗證。

如需 New-SPClaimTypeMapping Cmdlet 的詳細資訊,請參閱<New-SPClaimTypeMapping

使用本節中的程序建立新的 SPTrustedIdentityTokenIssuer。

使用 Windows PowerShell 建立新的驗證提供者
  1. 從 Windows PowerShell 命令提示字元處,建立新的驗證提供者,如下列語法所示。

    注意事項 附註:
    $realm 變數是在 AD FS 中設定的信賴憑證者信任識別碼,而 $cert 變數則是<使用 Windows PowerShell 匯入權杖簽署憑證>小節中所使用的一個變數。SignInUrl 參數適用 AD FS 伺服器。
    $realm = "urn:sharepoint:<WebAppName>"
    
    $signInURL = "https://<YourADFSServerName>/adfs/ls"
    
    $ap = New-SPTrustedIdentityTokenIssuer -Name <ProviderName> -Description <ProviderDescription> -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $emailClaimMap,$upnClaimMap,$roleClaimMap,$sidClaimMap -SignInUrl $signInURL -IdentifierClaim $emailClaimmap.InputClaimType
    

    在 ClaimsMappings 清單中加入 $roleClaimMap 和 $sidClaimMap,以便執行伺服器對伺服器驗證。

如需 New-SPTrustedIdentityTokenIssuer Cmdlet 的詳細資訊,請參閱<New-SPTrustedIdentityTokenIssuer

此階段包含下列程序:

  1. 將現有 Web 應用程式與 AD FS 身分識別提供者建立關聯

  2. 利用 AD FS 身分識別提供者建立新 Web 應用程式

  3. 啟用權杖重新執行保護

要設定現有 Web 應用程式以使用 SAML 登入,則必須變更宣告驗證類型區段中的信任的身分識別提供者。

設定現有 Web 應用程式以使用 AD FS 身分識別提供者
  1. 確認執行此程序的使用者帳戶為 SharePoint 伺服器陣列管理員群組的成員。

  2. 在管理中心的首頁上按一下 [應用程式管理]。

  3. 在 [應用程式管理] 頁面上,按一下 [Web 應用程式] 區段中的 [管理 Web 應用程式]。

  4. 按一下適當的 Web 應用程式。

  5. 在功能區上,按一下 [驗證提供者]。

  6. 在 [區域] 下,按一下區域的名稱。例如,預設。

  7. 在「編輯驗證」頁面的 [宣告驗證類型] 區段中,選取 [信任的身分識別提供者],然後按一下 SAML 提供者的名稱 (New-SPTrustedIdentityTokenIssuer 命令中的 <提供者名稱>)。按一下 [確定]。

  8. 接下來,您必須為此 web 應用程式啟用 SSL。您可依新增"https://"版的 web 應用程式的 URL 的備用存取對應與然後 https 繫結Internet Information Services (IIS) Manager 主控台中設定網站來這麼做。如需如何設定 SSL 用於 IIS 的詳細資訊,請參閱如何在 IIS 7.0 上設定 SSL

若要建立新的 Web 應用程式以使用 SAML 登入,就必須針對 AD FS 信任的身分識別提供者設定宣告驗證。請參閱<在 SharePoint 2013 中建立宣告式 Web 應用程式>,並執行下列操作:

  • 在 [新的 Web 應用程式] 對話方塊的 [安全性設定] 區段中,對於 [使用 Secure Sockets Layer (SSL) ] 選取 [是]。

    如需如何設定 SSL 用於IIS資訊,請參閱如何在 IIS 7.0 上設定 SSL

  • 在 [新的 Web 應用程式] 對話方塊的 [宣告驗證類型] 區段中,選取 [信任的身分識別提供者],然後按一下 SAML 提供者的名稱 (New-SPTrustedIdentityTokenIssuer 命令中的 <提供者名稱>)。

若要允許使用者以電子郵件地址作為其 SAML 型身分識別進行驗證 (如具有 -IdentifierClaim $emailClaimmap.InputClaimType 參數的 New-SPTrustedIdentityTokenIssuer command 命令所指定),您必須將其具有適當權限的電子郵件地址新增至 Web 應用程式。

使用下列程序,針對以電子郵件地址為基礎的權限設定 Web 應用程式。

針對以電子郵件地址為基礎的權限設定 Web 應用程式
  1. 在管理中心的首頁上按一下 [應用程式管理]。

  2. 在「應用程式管理」頁面上,按一下 [Web 應用程式] 區段中的 [管理 Web 應用程式]。

  3. 按一下適當的 Web 應用程式,然後按一下 [使用者原則]。

  4. 在 [Web 應用程式的原則] 中按一下 [新增使用者]。

  5. 在 [新增使用者] 對話方塊中,按一下 [區域] 中的適當區域,然後按 [下一步]。

  6. 在 [新增使用者] 對話方塊中,按一下 [使用者] 方塊右下角的 [瀏覽] 圖示。

  7. 在 [選擇人員與群組] 對話方塊中,在 [搜尋] 中輸入使用者帳戶的電子郵件地址,然後按一下 [搜尋] 圖示。

  8. 在搜尋結果中,按一下 AD FS 身分識別提供者名稱之下的 [電子郵件地址],按一下 [顯示名稱] 之下的使用者電子郵件地址,按一下 [新增],然後按一下 [確定]。

  9. 在 [權限] 中,按一下權限的適當層級。

  10. 對於具有相同權限層級之使用者的其他電子郵件地址,重複步驟 6 到 9。

  11. 按一下 [完成],然後按一下 [確定]。

若要提供其他安全性SharePoint 2013為使用 SAML 型宣告驗證的 web 應用程式,您可以使用Windows Identity Foundation (WIF)權杖重新執行偵測功能。權杖重新執行保護可避免攻擊者嘗試攔截並使用使用者的安全性權杖。如需詳細資訊,請參閱How To: 啟用權杖重新執行偵測

使用本節中的程序,在設定為 SAML 宣告驗證的SharePoint Web 應用程式上啟用重新執行偵測。

啟用重新執行保護
  1. 在執行 SharePoint 2013 的伺服器上,開啟 Internet Information Services (IIS) Manager 嵌入式管理單元。

  2. 在 Internet Information Services (IIS) 管理員的主控台樹狀目錄中,在 Web 應用程式的對應網站名稱上按一下滑鼠右鍵,然後按一下 [瀏覽]。

  3. 在資料夾視窗中,按兩下 [Web.Config] 檔案。

  4. 在 [<設定>] 區段中,找到 [<microsoft.identityModel>] 區段。

  5. 在 [<microsoft.identityModel>] 區段中,將以下內容新增為新區段:

    <service>
        <tokenReplayDetection enabled="true" capacity="<NumberOfTokensToBeCached>" expirationPeriod="<TokenCacheExpiration>">
    </service>
    

    新增內容:

    • <NumberOfTokensToBeCached> 是權杖重新執行偵測快取中儲存的權杖數。

    • <TokenCacheExpiration> 是權杖從重新執行偵測快取中移除後經過的時間,格式為 <時>:<分>:<秒>。

  6. 將您所做的變更儲存至 Web.Config 檔案。

負載平衡器後執行SharePoint 2013之伺服器陣列時,啟用權杖重新執行偵測需要負載平衡器中的工作階段親和性即使SharePoint 2013 web 應用程式不需要它。若要避免工作階段相似性需求,請使用ACS 安全性指導方針資訊。

https://technet.microsoft.com/zh-tw/library/jj219546.aspx
顯示: