設定使用 SAML 安全性憑證的驗證 (SharePoint Server 2010)
適用版本: SharePoint Foundation 2010, SharePoint Server 2010
上次修改主題的時間: 2016-11-30
本文中的程序說明如何使用 Microsoft SharePoint Server 2010 宣告式 Web 應用程式的安全性聲明標記語言 (SAML) 安全性憑證,設定驗證。
SAML 登入一般用於企業聯盟的情況。例如,存取業務合作夥伴。SAML 登入也會部署於存取內部使用者,而其帳戶所在的網域不屬於含有 SharePoint Server 2010 的樹系。
在您使用 SharePoint Server 2010 宣告式 Web 應用程式的 SAML 安全性憑證設定驗證之前,必須設定執行 Active Directory Federation Services (AD FS) 2.0 的伺服器。如需設定伺服器以執行 AD FS 2.0 的相關資訊,請參閱<AD FS 2.0 Deployment Guide>。
本文內容:
使用 Windows PowerShell 設定身分識別提供者 STS (IP-STS) Web 應用程式
設定信賴憑證者 STS (RP-STS) Web 應用程式
使用 Windows PowerShell 建立 IP-STS 與 RP-STS 之間的信任關係
使用 Windows PowerShell 匯出信任的 IP-STS 憑證
使用 Windows PowerShell 定義宣告對應的唯一識別碼
建立新的 SharePoint Web 應用程式並將其設定為使用 SAML 登入
使用 Windows PowerShell 設定身分識別提供者 STS (IP-STS) Web 應用程式
若要使用 Windows PowerShell 設定採用 SharePoint 宣告式 Web 應用程式,請執行下列程序。
使用 Windows PowerShell 設定身分識別提供者 STS (IP-STS) Web 應用程式
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
從 Windows PowerShell 命令提示字元處,建立 x509Certificate2 物件,如下範例所示:
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("path to cert file")
建立信任驗證提供者所要使用的宣告類型對應,如下範例所示:
New-SPClaimTypeMapping "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
先建立
realm
參數的值,再建立信任的登入提供者,如下範例所示:$realm = "urn:" + $env:ComputerName + ":domain-int"
建立指向 Security Token Service Web 應用程式的
signinurl
參數值,如下範例所示:$signinurl = "https://test-2/FederationPassive/"
使用與宣告對應 (
$map1.InputClaimType
) 相同的IdentifierClaim
值,建立信任的登入提供者,如下範例所示:$ap = New-SPTrustedIdentityTokenIssuer -Name "WIF" -Description "Windows® Identity Foundation" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map1[,$map2..] -SignInUrl $signinurl -IdentifierClaim $map1.InputClaimType
先建立目前使用者的應用程式集區帳戶值,然後再建立 Web 應用程式,如下範例所示:
$account = "DOMAIN\" + $env:UserName
注意
此應用程式集區帳戶必須是受管理帳戶。若要建立受管理帳戶,請使用
New-SPManagedAccount
。建立 Web 應用程式 URL (
$webappurl = "https://" + $env:ComputerName
) 的值,如下範例所示:$wa = New-SPWebApplication -name "Claims WIF" -SecureSocketsLayer -ApplicationPool "SharePoint SSL" -ApplicationPoolAccount $account -Url $webappurl -Port 443 -AuthenticationProvider $ap
先建立宣告物件,然後再建立網站,如下範例所示:
$claim = New-SPClaimsPrincipal -TrustedIdentityTokenIssuerr $ap -Identity $env:UserName
建立網站,如下範例所示:
$site = New-SPSite $webappurl -OwnerAlias $claim.ToEncodedString() -template "STS#0"
設定信賴憑證者 STS (RP-STS) Web 應用程式
本節中的程序可用以設定信賴憑證者 STS Web 應用程式。
設定信賴憑證者 STS (RP-STS) Web 應用程式
開啟 Active Directory Federation Services (AD FS) 2.0 管理主控台。
在左窗格中,展開 [原則],然後選取 [信賴憑證者]。
在右窗格中,按一下 [新增信賴憑證者]。隨即會開啟 Active Directory Federation Services (AD FS) 2.0 設定精靈。
在精靈的第一頁中,按一下 [開始]。
選取 [手動輸入信賴憑證者設定],然後按 [下一步]。
輸入信賴憑證者名稱,然後按 [下一步]。
確認已選取 [Active Directory Federation Services (AD FS) 2.0 伺服器設定檔],然後按 [下一步]。
不要使用加密憑證。按 [下一步]。
選取 [啟用採用網頁瀏覽器的識別身分同盟支援]。
輸入 Web 應用程式 URL 的名稱,並在名稱後加上 /_trust/ (例如:https://servername/_trust/)。按 [下一步]。
輸入識別碼的名稱 (例如:urn:COMPUTERNAME:Geneva),然後按一下 [新增]。按 [下一步]。
在 [摘要] 頁面上,按 [下一步],然後按一下 [關閉]。規則編輯器管理主控台會隨即開啟。請使用此主控台設定 LDAP Web 應用程式對 SharePoint 的宣告對應。
在左窗格中,展開 [新增規則],然後選取 [預先定義的規則]。
選取 [從 LDAP 屬性存放區建立宣告]。
在右窗格中,從 [屬性存放區] 下拉式清單中選取 [企業 Active Directory 使用者帳戶存放區]。
從 [LDAP 屬性] 下選取 [sAMAccountName]。
從 [連出的宣告類型] 下選取 [電子郵件地址]。
在左窗格中,按一下 [儲存]。
使用 Windows PowerShell 建立與身分識別提供者 STS (IP-STS) 的信任關係
本節中的程序可用以建立與 IP-STS 的信任關係。
使用 Windows PowerShell 建立與 IP-STS 的信任關係
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
從 Windows PowerShell 命令提示字元處,建立信任關係,如下範例所示:
$waurl = "https://" + $env:ComputerName $title = "SAML-Claims"
使用 Windows PowerShell 匯出信任的 IP-STS 憑證
本節中的程序可用以匯出要與之建立信任關係的 IP-STS 之憑證,然後將憑證複製至 Microsoft SharePoint Server 2010 可以存取的位置。
使用 Windows PowerShell 匯出信任的 IP-STS 憑證
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
從 Windows PowerShell 命令提示字元處,匯出信任的 IP-STS 憑證,如下範例所示:
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("c:\geneva.cer")
使用 Windows PowerShell 定義宣告對應的唯一識別碼
本節中的程序可用以定義電子郵件地址,以作為宣告對應的唯一識別碼。因為只有 STS 的擁有人知道權杖中對每位使用者而言一律是唯一的值,所以信任的 STS 之管理員需要提供此資訊。請注意,信任的 STS 之管理員可以建立 URI 以代表電子郵件地址。
使用 Windows PowerShell 定義宣告對應的唯一識別碼
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
從 Windows PowerShell 命令提示字元處,建立對應,如下範例所示:
$map = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
建立新的驗證提供者
本節中的程序可用以建立 Web 應用程式使用的新驗證提供者。
使用 Windows PowerShell 建立新的驗證提供者
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
從 Windows PowerShell 命令提示字元處,建立新的驗證提供者 (如下範例所示)。請注意,realm 是信任的 STS 用以識別特定 SharePoint 伺服器陣列的參數。
$realm = "urn:" + $env:ComputerName + ":Geneva" $ap = New-SPTrustedIdentityTokenIssuer -Name "Geneva" -Description "Geneva" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map -SignInUrl "https:// test-2/FederationPassive/" -IdentifierClaim "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
建立新的 SharePoint Web 應用程式並將其設定為使用 SAML 登入
在此步驟中,將要建立並設定 Web 應用程式。
使用 Windows PowerShell 建立新的 SharePoint Web 應用程式,並將其設定為使用 SAML 登入
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
從 Windows PowerShell 命令提示字元處,建立新的 SharePoint Web 應用程式,並將其設定為使用 SAML 登入。請注意,您必須將 "Web 應用程式 Url" 及 "網域\管理員" 取代為有效值。
$wa = New-SPWebApplication -Name "SAML Sign-In" -SecureSocketsLayer -ApplicationPool "SAML Sign-In" -ApplicationPoolAccount "domain\admin" - Url "WebAppUrl" -Port 443 -AuthenticationProvider $ap
注意
您可以啟用 SSL,因為使用 SAML 登入,所以 Cookie 會用作為使用者的單一登入票證。如此可讓管理員在憑證期間將存取權授與 SharePoint 資源,而不需要重新驗證使用者。如果沒有 SSL,則惡意的使用者將可以輕易地駭取這些 Cookie,並用以模擬原始使用者。
當您完成這些程序時,請建立 SharePoint 網站,並指定擁有人。如需建立 SharePoint 網站的相關資訊,請參閱<建立網站集合 (SharePoint Server 2010)>。