簡介
本文檔介紹如何為訪客門戶安全宣告標籤語言(SAML)配置思科身份服務引擎(ISE)版本2.1單點登入(SSO)功能。
必要條件
需求
思科建議您瞭解以下主題:
- 思科身分識別服務引擎訪客服務。
- 有關SAML SSO的基本知識。
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- 思科身分識別服務引擎版本2.1
- 從Ping身份作為SAML身份提供程式(IdP)的PingFederate 8.1.3.0伺服器
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
流量概覽
SAML是基於XML的標準,用於在安全域之間交換身份驗證和授權資料。
SAML規範定義了三個角色:主體(訪客使用者)、身份提供程式[IdP](IPing Federate伺服器)和服務提供程式[SP](ISE)。
在典型的SAML SSO流中,SP請求並從IdP獲取身份宣告。基於此結果,ISE可以執行策略決策,因為IdP可以包括ISE可以使用的可配置屬性(即與AD對象關聯的組和電子郵件地址)。
此使用案例的預期流程
- 無線LAN控制器(WLC)或存取交換器設定為典型中央Web驗證(CWA)流程。
提示:在文章底部的「Related Information(相關資訊)」部分中查詢CWA流的配置示例。
2.客戶端連線且會話通過ISE進行身份驗證。網路存取裝置(NAD)套用ISE(url-redirect-acl和url-redirect)返回的重新導向屬性值對(AVP)。
3.客戶端開啟瀏覽器,生成HTTP或HTTPS流量,然後重定向到ISE的訪客門戶。
4.一旦進入門戶,客戶端將能夠輸入先前分配的訪客憑證(發起人建立)並自行設定新的訪客帳戶或使用其AD憑證登入(員工登入),這將通過SAML提供單點登入功能。
5.使用者選擇「員工登入」選項後,ISE會根據IdP驗證是否存在與此客戶端瀏覽器會話關聯的活動斷言。如果沒有活動會話,IdP將強制使用者登入。在此步驟中,系統將提示使用者直接在IdP門戶中輸入AD憑證。
6. IdP通過LDAP對使用者進行身份驗證,並建立一個新的斷言,該斷言將在可配置的時間內保持活動狀態。
注意:預設情況下,Ping聯盟應用Session Timeout為60分鐘(這意味著如果在初始身份驗證後60分鐘內沒有來自ISE的SSO登入請求,會話將被刪除),Session Max Timeout為480分鐘(即使IdP已收到來自此使用者的ISE的常數SSO登入請求,會話將在8小時後過期)。
只要斷言會話仍處於活動狀態,員工在使用訪客門戶時將體驗SSO。一旦會話超時,IdP將強制實施新的使用者身份驗證。
設定
本節討論將ISE與Ping Federate整合的配置步驟,以及如何為訪客門戶啟用瀏覽器SSO。
注意:雖然對訪客使用者進行身份驗證時存在各種選項和可能性,但本文檔中並未介紹所有組合。但是,本示例將為您提供必要的資訊,以便瞭解如何將該示例修改為要實現的精確配置。
步驟1.準備ISE以使用外部SAML身份提供程式
- 在Cisco ISE上,選擇Administration > Identity Management > External Identity Sources > SAML Id Provider。
- 按一下「Add」。
- 在General頁籤下,輸入Id Provider Name。按一下「Save」。 本節中的其餘配置取決於後續步驟中需要從IdP匯入的後設資料。
步驟2.將訪客門戶配置為使用外部身份提供程式
- 選擇Work Centers > Guest Access > Configure > Guest Portals。
- 建立新門戶並選擇Self-Registered Guest Portal。
注意:這不是使用者體驗的主要門戶,而是與IdP互動以驗證會話狀態的子門戶。此門戶稱為SSOSubPortal。
3.展開Portal Settings,然後選擇PingFederate以進行身份驗證方法。
4.在身份源序列中,選擇先前定義的外部SAML IdP(PingFederate)。
5.展開Acceptable Use Policy(AUP)和Post-Login Banner Page Settings部分,並禁用這兩部分。
門戶流為:
6.儲存更改。
7.返回訪客門戶,並使用Self-Registered Guest Portal 選項建立一個新門戶。
注意:這將是對客戶端可見的主門戶。主門戶將使用SSOSubportal作為ISE和IdP之間的介面。 此門戶稱為PrimaryPortal。
8. 展開Login Page Settings,然後選擇先前在「允許使用以下身份提供者訪客門戶進行登入」下建立的SOSubPortal。
9.展開Acceptable Use Policy AUP和Post-login Banner Page Settings並取消選中。
此時,入口流必須如下所示:
10.選擇Portal Customization > Pages > Login。現在,您必須具有自定義可選登入選項(圖示、文本等)的選項。
注意:請注意,在右側,門戶預覽下會顯示其他登入選項。
11.按一下Save。
現在,兩個門戶都會顯示在Guest Portal List下。
步驟3.配置PingFederate以充當ISE訪客門戶的身份提供程式
- 在ISE中,選擇Administration > Identity Management > External identity Sources > SAML Id Providers > PingFederate,然後點選Service Provider Info。
- 在Export Service Provider Info下,按一下Export。
3. 儲存並解壓產生的zip檔案。此處包含的XML檔案用於在後續步驟中的PingFederate中建立配置檔案。
註:從現在起,本文檔將介紹PingFederate配置。對於發起人門戶、MyDevices和BYOD門戶等多個解決方案,此配置是相同的。(本文未涵蓋這些解決方案)。
4.開啟PingFederate管理員門戶(通常為https://ip:9999/pingfederate/app)。
5.在「IdP配置」選項卡>「SP連接」部分下,選擇新建。
6.在Connection Type下,單擊Next。
7.在Connection Options下,單擊Next。
8.在Import Metadata下,按一下File單選按鈕,按一下Selected file並選擇以前從ISE匯出的XML檔案。
9.在後設資料摘要下,按一下下一步。
10.在「一般資訊」頁面的「連線名稱」下,輸入名稱(例如ISEGuestWebAuth),然後按一下下一步。
11.在瀏覽器SSO下,按一下配置瀏覽器SSO,在SAML配置檔案下選中選項並按一下下一步。
12.在Assertion lifetime上按一下Next。
13.在Assertion Creation中,按一下Configure Assertion Creation。
14.在身份對映下,選擇標準,然後按一下下一步。
15.在「屬性合約」>「擴展合約」中,輸入屬性mail和memberOf,然後按一下add。按「Next」(下一步)。
通過配置此選項,身份提供程式可以將Active Directory提供的MemberOf和Email屬性傳遞到ISE,ISE以後可以在策略決策期間將此屬性用作條件。
16.在Authentication Source Mapping下,按一下Map New Adapter Instance。
17.在「介面卡例項」上選擇「HTML表單介面卡」。按一下下一步
18.在Mapping methods下,向下選擇第二個選項,然後按一下Next。
19.在「屬性源和使用者查詢」上,按一下Add Attribute Source框。
20.在Data Store下輸入說明,然後從Active Data Store中選擇LDAP連線例項,並定義此目錄服務的型別。如果尚未配置Data Store,請按一下Manage Data Stores以新增新例項。
21.在LDAP Directory Search下,定義域中LDAP使用者查詢的Base DN,然後按一下Next。
注意:這一點很重要,因為它將在LDAP使用者查詢期間定義基本DN。錯誤定義的Base DN將導致在LDAP架構中找不到Object Not found。
22.在LDAP Filter下新增字串sAMAccountName=${username},然後單擊Next。
23.在Attribute Contract Fulfillment下,選擇給定的選項,然後按一下Next。
24.在摘要部分驗證配置,然後按一下完成。
25.返回Attribute Sources & User lookup,按一下Next。
26.在Failsafe Attribute Source下,按一下Next。
27.在Attribute Contract Fulfillment下,選擇這些選項,然後按一下Next。
28.驗證「摘要」部分中的配置,然後按一下完成。
29.返回Authentication Source Mapping,按一下Next。
30.在Summary頁面下驗證配置後,按一下Done。
31.返回Assertion Creation,按一下Next。
32.在Protocol Settings下,按一下Configure Protocol Settings。此時必須已填充兩個條目。按「Next」(下一步)。
33.在SLO服務URL下,按一下下一步。
34.在允許的SAML繫結上,取消選中選項ARTIFACT和SOAP,然後按一下下一步。
35.在「簽名策略」下,按一下下一步。
36.在「加密策略」下,按一下下一步。
37.檢視「摘要」頁中的配置,然後按一下完成。
38.返回Browser SSO > Protocol settings,按一下Next,驗證配置,然後按一下Done。
39.出現瀏覽器SSO頁籤。按「Next」(下一步)。
40.在Credentials下,按一下Configure Credentials,然後選擇在IdP與ISE通訊期間使用的簽名證書,並選中Include the certificate in the signature選項。然後點選下一步。
註意:如果沒有配置證書,請點選Manage Certificates並按照提示生成自簽名證書,用於對ISE通訊的IdP進行簽名。
41.驗證摘要頁面下的配置,然後按一下完成。
42.返回憑證頁籤,按一下下一步。
43. 在Activation & Summary下,選擇Connection Status ACTIVE,驗證其餘配置,然後按一下Done。
步驟4.將IdP後設資料匯入ISE外部SAML IdP提供程式配置檔案
- 在PingFederate管理控制檯下,選擇Server Configuration > Administrative Functions > Metadata Export。 如果伺服器已配置為多個角色(IdP和SP),請選擇I is the Identity Provider(IdP)選項。按「Next」(下一步)。
- 在元資料模式下,選擇「手動選擇要包括在後設資料中的資訊」。按「Next」(下一步)。
3.在Protocol下按一下Next。
4.在屬性合約上按一下下一步。
5.在Signing Key下,選擇之前在連線配置檔案中配置的證書。按「Next」(下一步)。
6.在Metadata Signing下,選擇簽名證書,並選中Include this certificate's public key in the key info element。按「Next」(下一步)。
7. 在XML加密證書下,按一下下一步。
注意:在此強制加密的選項由網路管理員決定。
8.在Summary部分下,按一下Export。儲存生成的後設資料檔案,然後按一下完成。
9.在ISE下,選擇Administration > Identity Management > External Identity Sources > SAML Id Providers > PingFederate。
10.按一下Identity Provider Config > Browse,然後繼續匯入從PingFederate後設資料匯出操作儲存的後設資料。
11.在Group Membership Attribute下選擇Groups頁籤,然後按一下Add
在Name in Assertion下,新增從LADP身份驗證檢索memberOf屬性時IdP必須返回的可分辨名稱。 在這種情況下,配置的組連結到TOR的發起人組,並且此組的DN如下:
新增DN和「ISE中的名稱」說明後,按一下OK。
12.選擇Attributes頁籤,然後按一下Add。
在此步驟中,新增從IdP傳遞的SAML令牌中包含的屬性「mail」(根據LDAP上的Ping查詢),該令牌必須包含該對象的電子郵件屬性。
注意:步驟11和12確保ISE通過IdP登入操作接收AD對象Email和MemberOf屬性。
驗證
- 使用門戶測試URL或遵循CWA流程啟動訪客門戶。使用者可以選擇輸入訪客憑證、建立自己的帳戶和員工登入。
2.按一下Employee Login。由於沒有活動會話,使用者將被重定向到IdP登入門戶。
3.輸入AD憑證,然後按一下登入。
4. IdP登入螢幕會將使用者重定向到「訪客門戶成功」頁面。
5.此時,每次使用者返回訪客門戶並選擇「Employee Login」時,只要會話在IdP中仍然處於活動狀態,就會允許他們進入網路。
疑難排解
任何SAML身份驗證問題將記錄在ise-psc.log下。Administration > Logging > Debug log Configuration > Select the node issued > Set SAML component to debug level下有一個專用元件(SAML)。
您可以通過CLI訪問ISE並輸入命令show logging application ise-psc.log tail並監控SAML事件,也可以下載ise-psc.log以在Operations > Troubleshoot > Download Logs > Select the ISE node > Debug Logs頁籤>按一下ise-psc.log下載日誌。
2016-06-27 16:15:39,366 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAMLUtils::isOracle() - checking whether IDP URL
indicates that its OAM. IDP URL: https://10.36.147.1:9031/idp/sso.saml2
2016-06-27 16:15:39,366 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SPProviderId for PingFederate is: http://CiscoISE
/5b4c0780-2da2-11e6-a5e2-005056a15f11
2016-06-27 16:15:39,366 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- ResponseValidationContext:
IdP URI: PingFederate
SP URI: http://CiscoISE/5b4c0780-2da2-11e6-a5e2-005056a15f11
Assertion Consumer URL: https://10.36.157.210:8443/portal/SSOLoginResponse.action
Request Id: _5b4c0780-2da2-11e6-a5e2-005056a15f11_DELIMITERportalId_EQUALS5b4c0780-2da2-11e6-a5e2-005056a15f11_SEMIportalSessionId_EQUALS309f733a-99d0-4c83-8
b99-2ef6b76c1d4b_SEMI_DELIMITER10.36.157.210
Client Address: 10.0.25.62
Load Balancer: null
2016-06-27 16:15:39,366 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.BaseSignatureValidator -::::- Determine the signing certificate
2016-06-27 16:15:39,366 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.BaseSignatureValidator -::::- Validate signature to SAML standard with cert:CN=10.36.147.1, OU=TAC, O=Cisco, L=RTP, C=US serial:1465409531352
2016-06-27 16:15:39,367 DEBUG [http-bio-10.36.157.210-8443-exec-3][] org.opensaml.xml.signature.SignatureValidator -::::- Creating XMLSignature object
2016-06-27 16:15:39,367 DEBUG [http-bio-10.36.157.210-8443-exec-3][] org.opensaml.xml.signature.SignatureValidator -::::- Validating signature with signature algorithm URI: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.SAMLSignatureValidator -::::- Assertion signature validated succesfully
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.WebSSOResponseValidator -::::- Validating response
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.WebSSOResponseValidator -::::- Validating assertion
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.AssertionValidator -::::- Assertion issuer succesfully validated
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.AssertionValidator -::::- Subject succesfully validated
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.validators.AssertionValidator -::::- Conditions succesfully validated
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- SAML Response: validation succeeded for guest
IDPResponse
:
IdP ID: PingFederate
Subject: guest
SAML Status Code:urn:oasis:names:tc:SAML:2.0:status:Success
SAML Success:true
SAML Status Message:null
SAML email:guest@example
SAML Exception:null
2016-06-27 16:15:39,368 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- AuthenticatePortalUser - about to call authenticateSAMLUser messageCode:null subject:guest
2016-06-27 16:15:39,375 DEBUG [http-bio-10.36.157.210-8443-exec-3][] cpm.saml.framework.impl.SAMLFacadeImpl -::::- Authenticate SAML User - result:PASSED
相關資訊