本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹OpenAM身份提供程式(IdP)上啟用單一登入(SSO)的配置。
Cisco IdS部署模式
產品 | 部署 |
UCCX | 共住者 |
PCCE | 與CUIC(思科統一情報中心)和LD(即時資料)共存 |
UCCE | 與CUIC和LD共駐以進行2k部署。 獨立式,適用於4k和12k部署。 |
思科建議您瞭解以下主題:
附註:本文檔引用有關思科身份識別服務(IdS)和身份提供方(IdP)的配置。文檔在螢幕截圖和示例中引用UCCX,但是配置與思科身份識別服務(UCCX/UCCE/PCCE)和IdP相似。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
Shibboeth是一個開放原始碼專案,它提供單點登入功能,允許站點以隱私保護的方式對受保護線上資源的單獨訪問做出明智的授權決策。它支援安全斷言標籤語言(SAML2)。 IdS是SAML2客戶端,應該支援Shibboeth,只需對IdS進行極少更改或不更改。在11.6中,IdS適用於使用Shibboleth IdP。
附註:本文檔引用Shibboleth 3.3.0版作為SSO資格認證的一部分
元件 | 詳細資料 |
Shibboeth版本 | v3.3.0 |
下載位置 | http://shibboleth.net/downloads/identity-provider/ |
安裝平台 | Ubuntu 14.0.4 java版本"1.8.0_121" |
輕量型目錄存取通訊協定(LDAP)版本 | Active Directory 2.0 |
Shibboleth Webserver | Apache Tomcat/8.5.12 |
請參閱Shiboleth安裝維基
https://wiki.shibboleth.net/confluence/display/IDP30/Installation
要將LDAP伺服器與shibboleth整合,需要在$shibboleth_home/conf/ldap.properties 中更新欄位,其中$shibboleth_home(預設為/opt/shibboleth-idp)是指安裝shibboleth時使用的安裝目錄。
欄位 | 預期值 | 說明 |
idp.authn.LDAP.trustCertificates | 用於載入信任錨點的資源,通常是${idp.home}/credentials中的本地檔案 其中idp.home是在setenv.sh中匯出為JAVA_OPTS的環境變數 |
%{idp.home}/credentials/ldap-server.crt |
idp.authn.LDAP.trustStore | 用於載入包含信任錨點的Java金鑰庫的資源,通常是位於%{idp.home}/credentials中的本地檔案 | %{idp.home}/credentials/ldap-server.truststore |
idp.authn.LDAP.returnAttributes | 需要返回的LDAPAattributes的逗號分隔清單。如果要返回所有屬性,請新增「*」。 |
* |
idp.authn.LDAP.baseDN | 需要執行LDAP搜尋的基本DN | CN=users,DC=cisco,DC=com |
idp.authn.LDAP.subtreeSearch | 是否遞迴搜尋 | true |
idp.authn.LDAP.userFilter | LDAP搜尋篩選器 | (sAMAccountName={user})* |
idp.authn.LDAP.bindDN | 執行搜尋時要繫結的DN | administrator@cisco.com |
idp.authn.LDAP.bindDNCredential | 執行搜尋時要繫結的密碼 | |
idp.authn.LDAP.dn格式 | 用於生成要進行身份驗證的使用者DN的格式字串 | %s@adfsserver.cisco.com (%s@domainname) |
idp.authn.LDAP.authenticator | 控制如何對LDAP進行身份驗證的工作流程 | bindSearchAuthenticator |
idp.authn.LDAP.ldapURL | LDAP目錄的連線URI |
如需詳細資訊,請參閱:
https://wiki.shibboleth.net/confluence/display/IDP30/LDAPAuthnConfiguration
#等待時間(毫秒) 對於 響應
#idp.authn.LDAP.responseTimeout = PT3S
## SSL配置,jvmTrust、certificateTrust或keyStoreTrust
#idp.authn.LDAP.sslConfig = certificateTrust
##如果使用上面的certificateTrust,請設定為受信任證書的路徑
idp.authn.LDAP.trustCertificates = %{idp.home}/credentials/ldap-server.crt
##如果使用上面的keyStoreTrust,請設定為truststore路徑
idp.authn.LDAP.trustStore = %{idp.home}/credentials/ldap-server.truststore
##身份驗證期間返回屬性
#idp.authn.LDAP.returnAttributes = userPrincipalName, sAMAccountName
idp.authn.LDAP.returnAttributes = *
## DN解析度屬性##
#搜尋DN解析,由anonSearchAuthenticator、bindSearchAuthenticator使用
# 對於 AD:CN=Users,DC=example,DC=org
idp.authn.LDAP.baseDN = CN=users,DC=cisco,DC=com
idp.authn.LDAP.subtreeSearch = true
*idp.authn.LDAP.userFilter =(sAMAccountName={user})*
#繫結搜尋配置
# 對於 AD:idp.authn.LDAP.bindDN=adminuser @domain .com
idp.authn.LDAP.bindDN =管理員 @cisco .com
idp.authn.LDAP.bindDNCredential =思科 @123
#格式DN解析,由directAuthenticator和adAuthenticator使用
# 對於 AD使用idp.authn.LDAP.dnFormat=%s @domain .com
#idp.authn.LDAP.dnFormat = %s @adfsserver .cisco.com
# LDAP屬性配置,請參閱attribute-resolver.xml
#附註, 此 很可能不適用於使用舊式V2解析器配置
idp.attribute.resolver.LDAP.ldapURL = %{idp.authn.LDAP.ldapURL}
idp.attribute.resolver.LDAP.connectTimeout = %{idp.authn.LDAP.connectTimeout:PT3S}
idp.attribute.resolver.LDAP.responseTimeout = %{idp.authn.LDAP.responseTimeout:PT3S}
idp.attribute.resolver.LDAP.baseDN = %{idp.authn.LDAP.baseDN:undefined}
idp.attribute.resolver.LDAP.bindDN = %{idp.authn.LDAP.bindDN:undefined}
idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined}
idp.attribute.resolver.LDAP.useStartTLS = %{idp.authn.LDAP.useStartTLS: true }
idp.attribute.resolver.LDAP.trustCertificates = %{idp.authn.LDAP.trustCertificates:undefined}
idp.attribute.resolver.LDAP.searchFilter =(sAMAccountName=$resolutionContext.principal)
|
為確保來自所有客戶端的請求都能到達,需要在「$shibboleth_home/conf/access-control.xml」中進行更改
<entry key="AccessByIPAddress">
<bean id="AccessByIPAddress" parent="shibboleth.IPRangeAccessControl"
p:allowedRanges="#{ {'127.0.0.1/32','0.0.0.0/0', '::1/128', '10.78.93.103/32'} }" />
</entry>
將'0.0.0.0/0'新增到允許的範圍。這允許來自任何ip範圍的請求。
要將Id配置為預設的SHA1,請開啟「$shibboleth_home/conf/idp.properties」並設定:
idp.signing.config = shibboeth.SigningConfiguration.SHA1
此配置也可更改:
idp.encryption.optional = true
如果將其設定為true,則當啟用時,找不到要使用的加密金鑰不會導致請求失敗。此h有助於進行「機會式」加密,即儘可能進行加密(在對等體的後設資料中發現要加密的相容金鑰),但會跳過加密。
在"$shibboleth_home/conf/attribute-resolver.xml"中新增AttributeDefinition以將sAMAccountName和userPrincipalName對映到SAML響應中的to uid和user_principal。
此外,新增帶有<DataConnector>標籤的LDAP聯結器設定。
註意:需要使用值「sAMAccountName userPrincipalName」指定ReturnAttributes。
註:如果與Active Directory(AD)整合,則必須使用LDAPProperty。
%{idp.attribute.resolver.LDAP.searchFilter}
sAMAccountName userPrincipalName
在"$shibboleth_home/conf/attribute-filter.xml"中合併更改
IdP後設資料在資料夾「$shibboleth_home/metadata」中可用。 idp-metadata.xml檔案可以通過應用程式程式設計介面(API)上載到IdS
PUT https://<idshost>:<idsport>/ids/v1/config/idpmetadata
其中disport不可配置實體,且值為"8553"
警告:Shibboeth後設資料可包含2個簽名證書、常規簽名證書和backchannel。導航到"$shibboleth_home/credentials"中的idp-backchannel.crt檔案以標識後台證書。如果後台證書在後設資料中可用,則應在上載到IdS之前從後設資料xml中刪除後台證書。這是因為IdS使用的Fedlet 12.0庫僅支援後設資料中的一個證書。如果有多個簽名證書可用,則Fedlet使用第一個可用證書。
我們需要使用$shibboleth_home/metadata-providers.xml中的條目配置後設資料提供程式。
<MetadataProvider id="smart-86" xsi:type="FilesystemMetadataProvider" metadataFile="/opt/shibboleth-idp/SP/sp.xml"/>
其中「id」屬性可以是任何唯一名稱。
此條目表示已使用給定ID註冊後設資料提供程式,並且後設資料在指定的檔案/opt/shibboleth-idp/SP/sp.xml中可用。
必須將IdS的Service Provider(SP)後設資料複製到條目中指定的後設資料檔案。
注意:可以通過GET https://<idshost>:<idsport>/ids/v1/config/spmetadata 檢索ID的SP後設資料,其中idsport不是可配置實體,其值為「8553」。
本文檔從SSO的IdP方面描述了要與思科身份服務整合的配置。有關詳細資訊,請參閱各個產品配置指南: