本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔描述常見身份服務引擎(ISE)終端安全評估服務問題:「AnyConnect ISE終端安全評估模組顯示合規性……」
本文檔描述常見身份服務引擎(ISE)終端安全評估服務問題 — AnyConnect ISE終端安全評估模組在ISE上的會話狀態為掛起時顯示合規性。
雖然症狀始終相同,但是此問題的根源有多種。
通常,對此類問題進行故障排除會非常耗時,從而造成嚴重影響。
本檔案將說明:
如需稍後介紹的概念的更詳細說明,請參閱:
此問題通常表現為瀏覽器中沒有網路訪問或持續重定向到ISE客戶端調配門戶,同時AnyConnect ISE終端安全評估模組將終端安全評估狀態顯示為Compliant。
典型的終端使用者體驗:
通常,在此問題的初始分類中,ISE管理員執行Radius Live日誌調查以確保有一個實際身份驗證到達ISE。
在此階段發現的第一個症狀表示終端和ISE之間的狀態不匹配,如在即時日誌中或Radius身份驗證報告終端上次成功身份驗證顯示Pending狀態狀態。
典型的ISE管理員體驗:
附註:c.和d。當出現所述問題時,不會總是出現在即時日誌中。狀態狀態為Compliant的會話事件更常見於由陳舊或幻像會話引起的場景(本文檔後面部分對此進行了說明)。
此問題通常出現在兩個有問題的場景中,並且每個場景都有多個根本原因。場景:
在這種情況下,我們通常處理PSN會話快取中的過時或幻像會話。
AnyConnect中的ISE終端安全評估模組具有觸發發現進程的有限數量的事件。在身份驗證或重新身份驗證期間,可能未檢測到這些事件。
為了更好地瞭解問題,請調查所需的ISE會話管理邏輯和AnyConnect發現流程。
在ISE部署中,有兩個人員負責會話管理流程:PSN和監控節點(MNT)。
要正確排除故障並確定此問題,請務必瞭解兩個角色上的會話管理理論。
如本圖所述,MNT節點根據來自PSN的經過身份驗證的系統日誌消息建立季節。
以後可以通過系統日誌更新會話狀態以記帳。
MNT上的會話刪除在3種情況下發生:
1.未計帳開始的會話在建立後約60分鐘內刪除:每5分鐘執行一個cron作業以檢查會話狀態和進行清理。
2.已終止的會話在被同一個cron作業處理了記帳停止後約15分鐘刪除。
3.每次執行時相同的cron都會刪除已處於「已啟動」狀態超過5天(120小時)的會話。已啟動狀態表示MNT節點已處理身份驗證和計費,以啟動會話的系統日誌。
來自PSN的系統日誌消息示例:
當runtime-aaa元件啟用到DEBUG時,這些消息將記錄到prrt-server.log中。粗體部分可用於構造搜尋正規表示式。
通過身份驗證:
AcsLogs,2020-04-07 10:07:29,202,DEBUG,0x7fa0ada91700,cntx=0000629480,sesn=skuchere-ise26-1/375283310/10872,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-07 22:53:24.288 +02:00 0000423024 5200 NOTICE Passed-Authentication: Authentication succeeded, ConfigVersionId=87, Device IP Address=10.62.148.108, DestinationIPAddress=192.168.43.26, DestinationPort=1812, UserName=bob@example.com, Protocol=Radius, RequestLatency=45, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Service-Type=Framed, Framed-IP-Address=192.168.255.205, Framed-MTU=1472, State=37CPMSessionID=0A3E946C00000073559C0123\;42SessionID=skuchere-ise26-1/375283310/10872\;, Calling-Station-ID=00-50-56-B6-0B-C6, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, EAP-Key-Name=, cisco-av-pair=service-type=Framed, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, cisco-av-pair=client-iif-id=526638260, NetworkDeviceProfileName=Cisco, NetworkDeviceProfileId=b0699505-3150-4215-a80e-6753d45bf56c, IsThirdPartyDeviceFlow=false, RadiusFlowType=Wired802_1x, AcsSessionID=skuchere-ise26-1/375283310/10872, AuthenticationIdentityStore=EXAMPLE, AuthenticationMethod=MSCHAPV2, SelectedAccessService=Default Network Access, SelectedAuthorizationProfiles=PermitAccess, IsMachineAuthentication=false, IdentityGroup=Endpoint Identity Groups:Profiled:Workstation, Step=11001, Step=11017, Step=15049, Step=15008, Step=15048, Step=15048, Step=15048, Step=11507, Step=12500, Step=12625, Step=11006, Step=11001, Step=11018, Step=12301, Step=12300, Step=12625, Step=11006, Step=11001, Step=11018, Step=12302, Step=12318, Step=12800, Step=12805, Step=12806, Step=12807, Step=12808, Step=12810, Step=12811, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12318, Step=12812, Step=12813, Step=12804, Step=12801, Step=12802, Step=12816, Step=12310, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12313, Step=11521, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=11522, Step=11806, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=11808, Step=15041, Step=22072, Step=15013, Step=24210, Step=24216, Step=15013, Step=24430, Step=24325, Step=24313, Step=24319, Step=24323, Step=24343, Step=24402, Step=22037, Step=11824, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=11810, Step=11814, Step=11519, Step=12314, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=24715, Step=15036, Step=24209, Step=24211, Step=24432, Step=24325, Step=24313, Step=24319, Step=24323, Step=24355, Step=24416, Step=15048, Step=15016, Step=22081, Step=22080, Step=12306, Step=11503, Step=11002, SelectedAuthenticationIdentityStores=Internal Users, SelectedAuthenticationIdentityStores=All_AD_Join_Points, SelectedAuthenticationIdentityStores=Guest Users, AuthenticationStatus=AuthenticationPassed, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, IdentityPolicyMatchedRule=Dot1X, AuthorizationPolicyMatchedRule=Compliant-Wired, EapTunnel=PEAP, EapAuthentication=EAP-MSCHAPv2, CPMSessionID=0A3E946C00000073559C0123, EndPointMACAddress=00-50-56-B6-0B-C6, PostureAssessmentStatus=NotApplicable, EndPointMatchedProfile=Microsoft-Workstation, ISEPolicySetName=Default, IdentitySelectionMatchedRule=Dot1X, AD-User-Resolved-Identities=bob@example.com, AD-User-Candidate-Identities=bob@example.com, AD-User-Join-Point=EXAMPLE.COM, StepData=4= Radius.NAS-IP-Address, StepData=5= Cisco-VPN3000.CVPN3000/ASA/PIX7x-Tunnel-Group-Name, StepData=6= DEVICE.Device Type, StepData=77=All_User_ID_Stores, StepData=78=Internal Users, StepData=81=All_AD_Join_Points, StepData=82=All_AD_Join_Points, StepData=83=bob@example.com, StepData=84=example.com, StepData=85=example.com, StepData=87=bob@example.com, StepData=88=All_AD_Join_Points, StepData=109=EXAMPLE, StepData=110=bob@example.com, StepData=111=example.com, StepData=112=example.com, StepData=114=example.com, StepData=115=EXAMPLE, StepData=116= EXAMPLE.ExternalGroups, AD-User-Resolved-DNs=CN=bob\,CN=Users\,DC=example\,DC=com, AD-User-DNS-Domain=example.com, AD-Groups-Names=example.com/Users/Domain Users, AD-User-NetBios-Name=EXAMPLE, IsMachineIdentity=false, UserAccountControl=66048, AD-User-SamAccount-Name=bob, AD-User-Qualified-Name=bob@example.com, allowEasyWiredSession=false, TLSCipher=ECDHE-RSA-AES256-GCM-SHA384, TLSVersion=TLSv1.2, DTLSSupport=Unknown, HostIdentityGroup=Endpoint Identity Groups:Profiled:Workstation, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ExternalGroups=S-1-5-21-875452798-754861120-3039794717-513, IdentityAccessRestricted=false, PostureStatus=Compliant, Response={Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/10872; EAP-Key-Name=19:5e:8c:e9:13:0c:89:23:78:49:ad:2b:d4:31:63:51:27:81:db:e2:61:b1:51:36:6d:11:10:41:ce:3b:aa:cc:c6:66:4e:7c:92:f8:83:c5:06:84:ac:95:4c:5b:f1:b2:37:a2:f5:04:4e:9e:4d:08:79:55:b7:4d:9a:41:f5:b2:0a; MS-MPPE-Send-Key=****; MS-MPPE-Recv-Key=****; LicenseTypes=65541; },],MessageFormatter.cpp:107
記帳開始:
AcsLogs,2020-04-07 10:07:30,202,DEBUG,0x7fa0ad68d700,cntx=0000561096,sesn=skuchere-ise26-1/375283310/10211,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-07 10:07:30.857 +02:00 0000382874 3000 NOTICE Radius-Accounting: RADIUS Accounting start request, ConfigVersionId=87, Device IP Address=10.62.148.108, UserName=bob@example.com, RequestLatency=7, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Framed-IP-Address=192.168.255.205, Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/10210, Called-Station-ID=00-E1-6D-D1-4F-05, Calling-Station-ID=00-50-56-B6-0B-C6, Acct-Status-Type=Start, Acct-Delay-Time=0, Acct-Session-Id=00000041, Acct-Authentic=Remote, Event-Timestamp=1586279242, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, AcsSessionID=skuchere-ise26-1/375283310/10211, SelectedAccessService=Default Network Access, Step=11004, Step=11017, Step=15049, Step=15008, Step=15048, Step=22083, Step=11005, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, CPMSessionID=0A3E946C00000073559C0123, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ],MessageFormatter.cpp:107
中期會計更新:
AcsLogs,2020-04-07 22:57:48,642,DEBUG,0x7fa0adb92700,cntx=0000629843,sesn=skuchere-ise26-1/375283310/10877,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-07 22:57:48.650 +02:00 0000423268 3002 NOTICE Radius-Accounting: RADIUS Accounting watchdog update, ConfigVersionId=87, Device IP Address=10.62.148.108, UserName=bob@example.com, RequestLatency=8, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Framed-IP-Address=192.168.255.205, Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/10872, Called-Station-ID=00-E1-6D-D1-4F-05, Calling-Station-ID=00-50-56-B6-0B-C6, Acct-Status-Type=Interim-Update, Acct-Delay-Time=0, Acct-Input-Octets=2293926, Acct-Output-Octets=0, Acct-Session-Id=00000041, Acct-Authentic=Remote, Acct-Input-Packets=15785, Acct-Output-Packets=0, Event-Timestamp=1586325462, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, AcsSessionID=skuchere-ise26-1/375283310/10877, SelectedAccessService=Default Network Access, Step=11004, Step=11017, Step=15049, Step=15008, Step=22085, Step=11005, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, CPMSessionID=0A3E946C00000073559C0123, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ],MessageFormatter.cpp:107
記帳停止:
AcsLogs,2020-04-08 11:43:22,356,DEBUG,0x7fa0ad68d700,cntx=0000696242,sesn=skuchere-ise26-1/375283310/11515,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-08 11:43:22.368 +02:00 0000463071 3001 NOTICE Radius-Accounting: RADIUS Accounting stop request, ConfigVersionId=88, Device IP Address=10.62.148.108, UserName=bob@example.com, RequestLatency=12, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Framed-IP-Address=192.168.255.205, Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/11503, Called-Station-ID=00-E1-6D-D1-4F-05, Calling-Station-ID=00-50-56-B6-0B-C6, Acct-Status-Type=Stop, Acct-Delay-Time=0, Acct-Input-Octets=4147916, Acct-Output-Octets=0, Acct-Session-Id=00000041, Acct-Authentic=Remote, Acct-Session-Time=92157, Acct-Input-Packets=29120, Acct-Output-Packets=0, Acct-Terminate-Cause=Lost Carrier, Event-Timestamp=1586371399, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, Framed-IPv6-Address=2001:10::100, Framed-IPv6-Address=2001:10::101, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, AcsSessionID=skuchere-ise26-1/375283310/11515, SelectedAccessService=Default Network Access, Step=11004, Step=11017, Step=15049, Step=15008, Step=22084, Step=11005, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, CPMSessionID=0A3E946C00000073559C0123, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ],MessageFormatter.cpp:107
PSN會話快取是一個記憶體資料庫,用於儲存特定PSN的所有活動會話。會話快取始終是節點的本地快取。
ISE中沒有一種機制可以執行從一個節點到另一個節點的完整會話狀態複製。
對於每個活動會話ID,PSN儲存身份驗證/授權階段收集的所有屬性(例如,內部/外部使用者組、網路訪問裝置(NAD)屬性、證書屬性等)。 PSN使用這些屬性來選擇不同的策略型別(如身份驗證、授權、客戶端調配和狀態)。
重新啟動節點(或節點上的服務)後,會話快取將被完全刪除。
當前會話處理邏輯在兩個場景中在會話快取中建立一個新條目。現有會話的稍後詳細資訊可以從來自NAD的記帳消息更新。
在會話刪除方面,PSN將實現以下邏輯:
在ISE部署中,未執行實際身份驗證的PSN已處理現有會話的記帳停止:
陳舊會話示例:
1.在PSN上對會話ABC成功進行身份驗證。
2. PSN在會話快取中建立條目。
3.進行狀態評估。
4.會話標籤為Compliant。
5.授權更改(COA)(由狀況狀態更改觸發)導致終端重新身份驗證以應用下一個訪問級別。
6.會話ABC的記帳停止將到達PSN2。
之後,ABC在PSN1上被卡在陳舊狀態,因為此PSN上沒有處理會計停止消息以將其刪除。
如果部署未遇到大量身份驗證嘗試,則會長時間刪除會話。
在以下情況下,過時會話將顯示在PSN會話快取中:
負載平衡器(LB)環境中過時會話的示例:
1.會話ABC的初始身份驗證由PSN 1執行。
2.此身份驗證會在負載平衡器上啟動粘性計時器。
3. PSN 1在本地快取中為會話ABC建立條目。
4.已傳遞身份驗證的系統日誌消息已傳輸到MNT節點。
5.會話ABC的條目建立到MNT會話目錄中,狀態為Authenticated。
6.會話ABC的記帳開始消息位於PSN 1上。
7.會話ABC的會話快取條目會使用Accounting-Start中的資訊更新。
8. Accounting-Start的系統日誌消息被傳輸到MNT節點。
9.會話狀態更新為Started。
10.負載均衡器上的粘性計時器過期。
11.會話ABC的記帳停止由負載平衡器轉發到PSN 2。
12.用於記帳停止的系統日誌消息由PSN 2轉發到MNT。
13.會話ABC在MNT上標籤為終止。
幻像會話是指當記帳臨時更新到達未對此特定會話執行身份驗證的PSN時的場景。在此方案中,在PSN會話快取中建立一個新條目。
如果PSN沒有收到此會話的記帳停止消息,則不會刪除該條目,除非PSN達到活動會話的限制。
虛擬會話示例:
1.在PSN1上為會話ABC執行與過時會話示例中所述相同的步驟。
2.會話ABC在PSN1會話快取中的狀態為Compliant。
3.會話ABC的會計臨時更新觸發PSN2。
4.會話ABC的會話條目在PSN2上建立。由於會話條目是根據會計消息建立的,因此其屬性數量有限。例如,狀態狀態不可用於會話ABC。還缺少使用者組和其他授權特定屬性等內容。
在以下情況下,虛擬會話出現在PSN會話快取中:
以下是在通向PSN1的網路路徑上出現臨時問題的情景的虛擬會話示例:
1.會話ABC的初始身份驗證由PSN執行。
2. PSN1在本地快取中為會話ABC建立條目。
3.將已通過的身份驗證的系統日誌消息傳輸到MNT節點。
4.在TimesTen DB中建立會話ABC的條目,其狀態為Authenticated。
5.會話ABC的記帳開始消息位於PSN 1上。
6.會話ABC的會話快取條目會使用Accounting-Start中的資訊更新。
7. Accounting-Start的系統日誌消息被傳輸到MNT節點。
8.會話狀態更新為Started。
9.將會話ABC的臨時會計更新轉發到PSN2。
10. PSN2在本地快取中為會話ABC建立條目。
11.將會話ABC的記賬停止轉發到PSN1。
12.會話ABC的條目將從PSN1上的會話快取中刪除。
13.用於記帳停止的系統日誌消息由PSN 1轉發到MNT。
14.會話ABC在MNT上標籤為已終止。
這說明了為長壽VPN連線建立的虛擬會話場景:
1. PSN1上的初始身份驗證。
2.會話ABC在會話快取中建立。
3.記帳會啟動PSN處理的消息。
4.新IP地址分配給虛擬專用網路(VPN)介面卡。
5.包含IP地址資訊的臨時會計更新位於PSN上。
6.將IP地址資訊新增到會話快取中。
7.對PSN1進行狀態評估。
8.狀態狀態在會話中更新。
9. ISE執行COA推送;這將觸發要分配的新訪問級別。
10.網路路徑發生中斷,導致PSN1無法訪問。
11.在臨時更新間隔過期後,ASA/FTD檢測到無法訪問PSN1。
12. PSN2提供了中期會計更新。
13.虛擬會話在PSN2會話快取中建立。
如果PSN1之後變得可訪問(14),則所有後續的記帳消息都在這裡轉發(15,16),這將在PSN2會話快取中保留會話ABC一段未定義的時間。
要瞭解陳舊會話和虛擬會話如何中斷狀態,您可以檢視AnyConnect ISE狀態模組發現流程:
階段1發現:
在此階段,ISE終端安全評估模組執行4個同時探測以定位對終端執行身份驗證的PSN。
首先,圖中的3個探測是基於重定向的(預設GW IP)。發現主機IP(如果已定義)和enroll.cisco.com IP;當重定向的URL取自NAD本身時,這些探測器始終將代理指向正確的PSN。
將探查號4傳送到ConnectionData.xml檔案中顯示的所有主伺服器。該檔案在第一次成功執行狀態嘗試後建立。如果客戶端在PSN之間遷移,則可以稍後更新檔案內容。
在Windows系統上,檔案位置為C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\ISE Posture\。
由於所有階段1探測都同時執行,因此僅當所有其他3個探測失敗或ISE終端安全評估模組在5秒內無法與重定向URL中返回的PSN建立正確通訊時,才會使用探測器4的結果。
當探測器4位於PSN上時,它包含在終端上發現的有效IP和MAC地址清單。PSN使用此資料在本地快取中查詢此終結點的會話。
如果PSN的端點有一個陳舊或幻像會話,則可能導致在客戶端稍後顯示錯誤的狀態狀態。
當代理獲得探測4的多個應答時(ConnectionData.xml可以包含多個主PSN),將始終使用最快的應答。
階段2發現:
所有階段2發現探測都無重定向,這意味著每個探測都會觸發目標PSN上的會話查詢。
如果PSN無法在本地會話快取中找到會話,則必須執行MNT查詢(僅基於MAC地址)以查詢會話所有者並將所有者名稱返回給代理。
由於所有探測都會觸發會話查詢,因此階段2的發現可能更容易受到由於過時或幻像會話而導致的問題。
如果PSN進入第2階段,會話快取中存在的發現探測將為同一端點建立一個過時或幻像條目。這會導致錯誤的安全狀態返回給終端使用者。
此示例顯示了當PSN保留過時會話或虛擬會話時如何執行安全狀態:
附註:僅當所有基於重定向的發現探測失敗或實施非重定向狀態時,才會出現此問題。
1. ISE終端安全評估模組發出的任何查詢我的會話探測器(Find my session probe)。
2. PSN在會話快取中執行會話查詢。如果要找到該會話,則會發生陳舊或幻像會話問題。
3. PSN運行客戶端調配策略選擇。如果缺乏身份驗證/授權屬性的虛擬會話以及客戶配置的所有策略都非常具體(例如,為特定Active Directory組建立策略),則PSN無法分配正確的客戶端調配策略。錯誤消息中可能會顯示這種情況:「Bypassing AnyConnect scan your network is not configured to use Cisco NAC Agent(繞過AnyConnect掃描您的網路未配置為使用Cisco NAC代理)」。
4.對於幻像會話場景,ISE終端安全評估模組將繼續執行初始終端安全評估請求。此請求包含關於終結點上檢測到的所有安全和修補程式管理產品的資訊。
5. PSN使用來自請求和會話屬性的資訊來匹配正確的狀態策略。由於幻像會話此時缺少屬性,因此沒有要匹配的策略。在這種情況下,PSN會回復到其符合的端點。當終端安全評估策略不匹配時,這是預設ISE行為。
附註:當存在可從虛擬會話屬性中選擇的通用策略時,我們繼續執行步驟6。
6. PSN將選定的狀態策略返回給代理。
附註:如果未選擇任何策略,PSN將返回相容狀態。
7.代理會將每個策略/需求的狀態返回為「已通過」或「失敗」。
8.對ISE進行報告評估,會話狀態更改為合規。
附註:如果出現由虛擬會話引起的終端安全評估問題,ISE管理員可能會注意到一些失敗的終端安全評估COA。在這種情況下,會從錯誤的PSN和錯誤的會話ID執行COA請求。
ISE終端安全評估模組用於監控終端上有限數量的事件以觸發發現流程。
觸發發現的事件:
ISE終端安全評估模組未檢測到新的dot1x身份驗證、PC解鎖和IP地址更改。
在這些情況下,ISE終端安全評估模組無法檢測新的身份驗證或重新身份驗證嘗試:
此圖說明由原始PSN中斷導致的不同PSN上的重新身份驗證示例。具有負載平衡器的情況看起來非常相似。
在負載均衡器的情況下,由於粘性計時器過期,重新認證被定向到不同的PSN。
1. PSN1上的初始身份驗證
2.在PSN1會話快取中建立會話ABC。
3.使用PSN1執行狀態評估。
4.會話ABS安全評估狀態將移至「合規」。
5. COA由狀況狀態更改觸發,導致終端重新身份驗證以應用下一個訪問級別。
6. PSN1變為不可用。
7.會話ABC的重新身份驗證命中PSN2。
8.由於這是PSN2的新會話,因此會話的狀態將變為Pending。
PSN將初始狀態分配給會話:
附註:狀態機只描述狀態狀態的初始選擇。根據從ISE終端安全評估模組收到的報告評估,最初標籤為Unknown的每個會話隨後會變為Compliant或Non-Compliant。
這種情況可能發生在兩種最常見的情形中:
新的會話ID可以在其它某些角落場景中生成。例如,在某些情況下,無線漫遊可能是導致此問題的原因。
這裡的主要問題是,ISE PSN始終將新會話置於posture Pending狀態,除非配置了終端安全評估租用。安全狀態租期將在本文檔的後續部分進行說明。
確定AnyConnect處於重定向狀態時是否顯示合規性是由過期/幻像會話引起的。我們需要在終端處於有問題的狀態時訪問它。
1.按一下AnyConnect使用者介面中的齒輪圖示
2.在新視窗中,定位至「系統掃描」>「統計資訊」
在此,請注意以下兩個因素:
此演示顯示了問題識別所需步驟的記錄:
上例用於將失效或幻像會話的問題與未啟動的發現進程的問題區分開來。
同時,我們需要確定觸發問題的實際會話,以便更好地瞭解它究竟如何變成陳舊或幻像會話問題。
雖然在某些情況下無法避免陳舊和幻像會話,但我們需要確保實施最佳實踐,以便在環境中不建立陳舊/幻像會話。
分析從重現問題的終端獲取的DART捆綁包。
為此,需要以管理員身份啟動DART捆綁工具並執行日誌清除。
收集DART捆綁包後,將其取消存檔,並集中處理Cisco AnyConnect ISE終端安全評估模組資料夾中的AnyConnect_ISEPosture.txt檔案。此檔案包含所有與發現相關的事件。
1.開始故障排除並確定發現重啟的所有時刻。要搜尋的關鍵字是Restarting Discovery或HTTP Discovery。在此處導航到問題時刻發生的帶有發現重新啟動的行:
2.發現重新啟動後有多行,其中有一行包含 — Probing no MNT stage targets。這是第1階段發現開始的一個指標:
建議以不同顏色突出顯示從ConnectionData.xml(身份驗證狀態目標)獲取的所有具有相同顏色的基於重定向的探測器和先前連線的PSN。
通常PSN FQDN非常相似,很難發現差異。
3.讀取日誌檔案,檢視每個單次探測的結果。以下是失敗探測的顯示示例:
4.在檔案內第1階段或第2階段的發現重新啟動後,您會看到來自一個或多個PSN的成功回覆:
5.在幾行之後,有一行帶有關鍵字MSG_NS_SWISS_NEW_SESSION。
此行包含PSN在查詢會話後選擇的實際會話ID。
使用此會話ID對ISE進行進一步調查,以確定此會話如何變成陳舊/幻像:
在clientwebapp元件啟用到DEBUG的guest.log中,可以看到使用過時/幻像會話進行回覆的PSN。
PSN從ISE終端安全評估代理獲取請求。這是來自AnyConnect的請求,因為User-Agent值:
cisco.cpm.client.posture.PostureStatusServlet -::- Got http request from 192.168.255.228 user agent is: Mozilla/4.0 (compatible; WINDOWS; 1.2.1.6.1.48; AnyConnect Posture Agent v.4.6.03049)
cisco.cpm.client.posture.PostureStatusServlet -::- mac_list from http request ==> C0:4A:00:1F:6B:39
cisco.cpm.client.posture.PostureStatusServlet -::- iplist from http request ==> 192.168.255.228
cisco.cpm.client.posture.PostureStatusServlet -::- Session id from http request - req.getParameter(sessionId) ==> null
請求包含IP地址和MAC地址的陣列。在此特定示例中,每個陣列僅包含一個值。
日誌顯示來自請求的會話ID為null,這表示這是來自非重定向型探測的請求。
稍後,您可以看到如何使用陣列的值來定位會話ID:
cpm.client.provisioning.utils.ProvisioningUtil -::- the input ipAddress from the list currently processed in the for loop ==> 192.168.255.228
cpm.client.provisioning.utils.ProvisioningUtil -::- the ipAddress that matched the http request remote address ==> 192.168.255.228
cpm.client.provisioning.utils.ProvisioningUtil -::- the clientMac from the macarray list for the for loop index matching the ipAddress list index ==> C0-4A-00-1F-6B-39
cisco.cpm.client.posture.PostureStatusServlet -::- Found Client IP matching the remote IP 192.168.255.228, corresponding mac address C0-4A-00-1F-6B-39
cpm.client.provisioning.utils.ProvisioningUtil -::- Session = 0a3e949c000000495c216240
在包含關鍵字Sent http response的行之後,您可以檢視實際回覆中的內容:
cisco.cpm.client.posture.PostureStatusServlet -::- Sent an http response to 192.168.255.228 with X-ISE-PDP=clemea19-ise1.demo.local.
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-PDP value is clemea19-ise1.demo.local
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-POSTURE value is /auth/perfigo_validate.jsp
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-POSTURE_PORT value is 8443
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_PORT value is 8443
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-GUESTFLOW value is false
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_CONFIG_URL value is https://clemea19-ise1.demo.local:8443/auth/anyconnect?uuid=f62337c2-7f2e-4b7f-a89a-3508d761173c
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_CONFIG_URI value is /auth/anyconnect?uuid=f62337c2-7f2e-4b7f-a89a-3508d761173c
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_URL value is https://clemea19-ise1.demo.local:8443/auth/provisioning/download/066ac0d6-2df9-4a2c-a129-fabf1ace36aa
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_URI value is /auth/provisioning/download/066ac0d6-2df9-4a2c-a129-fabf1ace36aa
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_VER value is 4.6.3049.0
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-STATUS_PATH value is /auth/status
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-BACKUP_SERVERS value is clemea19-ise2.demo.local
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-SessionId value is 0a3e949c000000495c216240
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-PostureDomain value is posture_domain
cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-POSTURE_STATUS value is Unknown
知道過期/幻像會話的ID後,可以調查Radius記帳報告,以便更好地瞭解導致此會話過期/幻像的原因:
以下是一個報告範例,其中顯示如何在ciscolive-ise2上留下陳舊的會話:
在這裡,與上一問題相同的邏輯同樣適用。唯一的區別是您需要關注最新的掃描開始時間。對於此類問題,上次掃描的時間戳位於過去某個位置。
一般情況下,當終端使用者發現問題時,會看到一段時間前發生的掃描。在ISE Radius Live日誌中,會看到有問題的終端最近的身份驗證嘗試。
此演示顯示了問題識別所需步驟的記錄:
這裡的方法非常類似於高級故障排除Stale/Phantom Session部分。主要的故障排除要素是DART捆綁調查。
在DART捆綁包中,您可以搜尋發現重新啟動(如前一個問題中所示),並確認報告問題時沒有發現重新啟動。
在ISE端,關注Radius Live Logs/ Radius身份驗證報告,以確認PSN之間存在故障轉移或NAD已生成新的會話ID。
過去,ISE沒有可以解決本文檔中描述問題的功能,因此唯一的方法是依靠在網路和ISE端實施的一組最佳實踐,將風險降至最低。
儘可能始終實施基於重定向的終端安全評估
對此建議的一個常見反駁是使用者體驗不佳;在作業系統或瀏覽器中可看到彈出視窗。這表示當後台的AnyConnect ISE終端安全評估模組執行評估流程時進行重定向。
作為解決方案,可以僅重定向ISE終端安全評估模組發現探測並選擇性地允許所有其他流量。
此範例顯示重新導向ACL,其設計為僅將HTTP要求重新導向到探索主機(此範例中為10.1.1.1)和enroll.cisco.com(172.16.1.80):
ip access-list extended REDIRECT-DH-ENROLL
permit tcp any host 10.1.1.1 eq www
permit tcp any host 172.16.1.80
deny ip any any
為了保持可接受的安全級別,此類重定向ACL可以與ISE分配的DACL結合使用。
掛起狀態僅允許連線到終端經過身份驗證的PSN
此方法對不支援url重定向的環境(例如第三方NAD的實施)很有用。
作為解決方案,實施多個PosturePending授權策略(每個PSN一個)。 每個策略都需要包含進行身份驗證的PSN名稱作為條件之一。
在分配給每個策略的授權配置檔案中,必須阻止對所有PSN的訪問(進行身份驗證的節點除外)。
為2個節點部署建立授權策略:
1. PSN1的狀態掛起策略
2.用作策略中條件的PSN1名稱。
3.具有ACL的授權配置檔案,阻止對除PSN1以外的所有PSN的訪問。
4. PSN2的狀態掛起策略。
5.用作策略中條件的PSN2名稱。
6.具有ACL的授權配置檔案,阻止對除PSN2以外的所有PSN的訪問。
7.安全狀態「合規」授權策略。
圖中說明了此方法的運作方式:
1.身份驗證命中PSN1。
2.由於配置了授權策略,PSN1會分配阻止對PSN1以外的所有其他節點進行訪問的授權配置檔案。
3. AnyConnect ISE終端安全評估模組重新啟動發現過程。
4.NAD阻止對PSN2的探測,就像之前分配的ACL一樣。
5.在NAD上分配的ACL允許探測到PSN1。
負載平衡器最佳實踐
Posture Over VPN使用案例
此示例顯示為20小時配置的臨時記帳更新間隔。這不會阻止初始臨時更新,該更新攜帶分配給終端的IP地址。
aaa-server ISE protocol radius
interim-accounting-update periodic 20
group-policy SSL-VPN attributes
vpn-idle-timeout 1200
vpn-session-timeout 1200
啟用狀態租用
這是ISE上的一個功能,該功能將終端標籤為符合的一個定義的時間段(1-365天)。 終端安全狀態租用值是終端屬性,這意味著它是ISE DB儲存的。
在ISE部署中的所有節點上複製包括狀態租賃的所有終端屬性。
當PSN獲得終端安全評估的新會話時,可以利用租用立即將該會話標籤為Compliant。
要做出此決定,PSN使用3個值。這些值為:
1.在ISE設定中為終端安全評估租賃定義的天數:導航到Administration > System > Posture > General Settings:
2. PostureExpiry屬性的值是包含Epoch時間戳的實際終端屬性。在ISE管理員啟用終端安全評估租約之後,在終端首次成功進行終端安全評估嘗試時初始填充PostureExpiry值。
稍後,此值在租約到期後進行的下一次成功狀態嘗試時更新。
開啟其中一個姿勢端點時,您可在Context Visibility > Endpoints中看到PostureExpiry:
此值可以轉換為人類可讀的時間戳,例如,此處 — https://www.epochconverter.com/
3.發生新身份驗證時的PSN系統時間
當終端安全評估租約的身份驗證到達PSN時,它使用PostureExpiry和系統日期獲取上次成功安全評估檢查所經過的天數。
如果結果值在設定中定義的狀態租用間隔內,則會話將獲得Compliant狀態。
如果結果值大於租用值,則會話將獲得Unknown狀態。
這將觸發再次執行安全評估並且可儲存新的PostureExpiry值。
此圖說明發生故障轉移時的過程:
1.對PSN1進行初始身份驗證。
2.會話ABC在會話快取中建立。
3.進行狀態評估。
4.會話狀態更改為「合規」
5. COA由狀況狀態更改觸發,導致終端重新身份驗證以應用下一個訪問級別。
6. PostureExpiry值儲存在終端中。
7.端點資料在部署中複製。
8.下一個身份驗證命中PSN2。
9. PSN2檢查終端是否處於有效的終端安全評估租約中。
11.會話會以Compliant的形式新增到會話快取中。
12.由於有效租約,會話建立時安全狀態為Compliant。
重新驗證實施
始終通過RADIUS-Request(在Maintain Connectivity During Reauthentication中選擇)從ISE推送重新身份驗證計時器。此設定確保NAD在重新身份驗證時保持相同的會話ID。
.
具有負載平衡器的環境
可以實施相同的一組最佳實踐(在過時/幻像會話部分中說明)。
不同的子網可用於掛起狀態和合規狀態
當網路設計提供使用不同子網Pending和Compliant狀態的機會時,此方法可保證每次狀態更改都會導致預設網關更改。
與重新身份驗證計時器相同的時間間隔內使用的狀態評估
可以使用等於重新驗證計時器的時間間隔啟用狀態評估。在這種情況下,當原始PSN變得不可用時,PRA故障將重新啟動發現過程。
作為ISE 2.6的補丁6已實施的增強功能(如思科錯誤ID CSCvi35647中所述)的一部分,該補丁6具有一項新功能,可實現在ISE部署中的所有節點間共用會話狀態狀態。
此增強功能已整合到未來版本中:ISE 2.7補丁2和ISE 3.0。
此新功能基於ISE 2.6中引入的輕量級會話目錄(LSD)機制。在較新版本中,此功能已重新命名為輕量級資料分發(LDD)Radius會話目錄。 預設情況下啟用輕型資料分發,並允許在ISE節點之間共用有限的會話上下文。在PSN之間不存在完整會話上下文複製,每個會話僅共用有限數量的屬性。
當部署中的一個節點必須確定當前會話所有者時,輕會話目錄就無需執行對MNT的資源昂貴API呼叫。
通常,COA流啟動時需要查詢所有者。使用LDD,每個PSN可以從本地Radius會話目錄快取中找到會話的實際所有者。
此功能包含以下元素:
此快取存在於每個ISE節點上,並儲存ISE部署中顯示的所有活動會話。每個會話在快取中的屬性數量有限。
以下是每個作業階段的Radius作業階段目錄中儲存的屬性範例:
在ISE部署中的每個節點上都形成了發佈者、相關隊列和使用者交換。這確保在所有ISE節點之間形成全網狀拓撲。
Radius作業階段目錄在此處表示發佈者。當PSN處理新的成功身份驗證時,會在PSN會話快取中建立新會話。
對於此會話,將一組有限的屬性放入Radius會話目錄中。
附註:常規RabbitMQ術語和體系結構不在本文檔範圍之內。
圖中解釋了COA流如何與RSD快取配合:
1.對PSN1進行初始身份驗證。
2.會話ABC在會話快取中建立。
3.將所需的屬性儲存到RSD中。
4.通過RabbitMQ與所有其他ISE節點共用會話。
5.在所有ISE節點的RSD快取中建立會話。
6.新的配置檔案資料到達PSN2。
7.重新歸檔端點,並且(在需要COA執行PSN2的更改的情況下)繼續執行下一步。
8.將內部API呼叫提交到RSD快取以執行COA。
9.來自RSD快取的資料用於準備代理COA消息。它從一個ISE節點轉到另一個ISE節點,並包含目標節點可用於向NAD發回CAO請求的所有詳細資訊。COA消息首先在內部傳輸到PRRT運行時(ISE內的實際AAA伺服器)。
10. PSN2向PSN1傳送COA消息。
11. PSN1向NAD傳送COA消息。
要在ISE上排除通過LDD的通訊故障,請將Light Session Director元件啟用為DEBUG:
以下是在lsd.log檔案中為原始PSN上的會話建立和發佈傳送調試消息的示例:
DEBUG [pool-45-thread-6][] cisco.cpm.lsd.service.LSDRedisClient -::::- Mapping Session ID 0a3e9498000008e05e071990 to session {"sessionID":"0a3e9498000008e05e071990","endpointMAC":"C0-4A-00-1F-6B-39","callingStationId":"c0-4a-00-1f-6b-39","ipv6AdressLst":[],"psnIP":"192.168.43.26","deviceIP":"192.168.255.102","destinationIP":"192.168.43.26","nasIP":"192.168.255.102","auditSessionID":"0a3e9498000008e05e071990","acctSessionID":"5e07197b/c0:4a:00:1f:6b:39/2299","timeStamp":1577523495,"status":"Started","id":"614f6c44-6c78-4289-b9fd-b352ff012ca4"}
DEBUG [PrRTEvents-Executor-2][] cisco.cpm.lsd.service.LSDNetAccessEventListener -::::- Publishing session update for session 0a3e9498000008e05e071990
DEBUG [PrRTEvents-Executor-2][] cisco.cpm.lsd.service.SessionPublisher -::::- Forwarding session 07a26b4b-ea13-438b-99b5-0bbadc9d8bac to batch manager
在所有其他ISE節點上,您可以看到會話的使用方式:
[pool-35-thread-38][] cisco.cpm.lsd.service.SessionConsumer -::::- Consumer is processing : sessionID:[0a3e9498000008e05e071990] status:[Started] id:[614f6c44-6c78-4289-b9fd-b352ff012ca4] auditSessionID:[0a3e9498000008e05e071990] accountingSessionID:[5e07197b/c0:4a:00:1f:6b:39/2299] endpointMAC:[C0-4A-00-1F-6B-39] callingStationId: [c0-4a-00-1f-6b-39] endpointIP:[null], IPv6 : [[]], psnIP:[192.168.43.26] deviceIP:[192.168.255.102] destinationIP:[192.168.43.26] nasIP:[192.168.255.102] nasIPv6:[null] timeStamp:[1577523495]
狀態狀態共用可解決以下問題:根本原因是在不同PSN上處於陳舊/幻像會話或重新身份驗證狀態,並且未觸發發現重新啟動。
只要會話符合要求,此資訊就會放到會話RSD中,以後它就可以由部署中的每個PSN使用。
還有一些其它角點的情況是所述特徵無法解決的。例如,當NAD在同一個PSN上使用不同的會話ID運行重新身份驗證時的場景。
可使用本文檔中所述的最佳實踐處理此類情景。
下圖顯示了用於測試狀態共用狀態的拓撲:
要建立陳舊會話,最初必須在skuchere-ise26-1上執行身份驗證。然後,必須重新配置NAD以將記帳傳送到skuchere-ise26-3。
將一條記帳消息轉發到錯誤的PSN後,必須再次重新配置NAD以將記帳傳送回skuchere-ise26-1。
圖中顯示了一個會計報告,它證明了在skuchere-ise26-3上存在幻像會話:
1. skuchere-ise26-1處理的Accounting-Start消息。
2. Skuchere-ise處理的同一會話的臨時會計更新26-3。
3.稍後在skuchere-ise26-1上完成會話。
一段時間後,終端再次連線到網路,但重定向不再有效。在PSN的guest.log - skuchere-ise26-3中,您可以看到以下日誌消息,並且在DEBUG中啟用了client-webapp元件:
2020-04-08 13:30:48,217 DEBUG [https-jsse-nio-192.168.43.226-8443-exec-4][] cisco.cpm.client.posture.Util -::- Local session 0A3E946C0000007D5B679296 is stale. Newer session for 00-50-56-B6-0B-C6 is 0A3E946C000000805B7C43A3. Owned by skuchere-ise26-1.example.com
當PSN檢測到它保留終結點的陳舊/幻像會話時,它不會回覆ISE終端安全評估模組,這允許我們從發生最新身份驗證的PSN獲取正確答案。
作為會話查詢時陳舊/幻像會話問題的解決方案,PSN會檢查RSD中是否存在該終端的任何新會話。
如果RSD包含的會話ID與本地會話快取中的PSN不同,則假定會話(出現在會話快取中)已過時。
為了重現此場景,在分配給合規狀態端點的授權配置檔案中啟用一個短的重新身份驗證計時器。
之後,NAD重新配置為將身份驗證和記帳傳送到另一個PSN(skuchere-ise26-3)。
重新驗證計時器到期後,同一會話將在不同的PSN上未經驗證。
圖中顯示身份驗證報告,其中顯示從skuchere-ise26-1到skuchere-ise26-3的同一會話的故障切換:
1.在skuchere-ise26-1上進行身份驗證,分配具有重定向的授權配置檔案。
2.成功進行狀態評估後的COA。
3.分配符合狀態的授權配置檔案時的下一個身份驗證。
4.身份驗證到達不同的PSN,但它仍然獲取合規狀態的授權配置檔案。
在ise-psc.log中故障切換後,會話在新PSN上處於相容狀態,其中epm-pip和nsf-session元件已啟用到DEBUG:
2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.SessionCache -::::- Looking up session 0A3E946C000000896011D045 for attribute Session Session.PostureStatus
2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.api.ExecutionContext -::::- Execution context has session id 0A3E946C000000896011D045
2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.PIPManager -::::- Returning a PIP com.cisco.cpm.nsf.session.impl.SessionPIP for type SESSION and flow null
2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.api.ExecutionContext -::::- Execution context has session id 0A3E946C000000896011D045
2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.SessionCache -::::- Looking up session 0A3E946C000000896011D045
2020-04-09 11:06:42,176 DEBUG [SessionLifecycleNotifier][] cpm.nsf.session.internal.LRUAgingAlogrithm -::::- Accessed session 0A3E946C000000896011D045
2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.SessionCache -::::- Returning for session 0A3E946C000000896011D045 data Attrs: {SavedUserNames=[bob@example.com], Acs.LastStepTime=1586423202174, Acs.AD-User-Qualified-Name=bob@example.com, Acs.AD-User-Resolved-DNs=CN=bob,CN=Users,DC=example,DC=com, Acs.StepData=[110=EXAMPLE, 111=bob@example.com, 112=example.com, 113=example.com, 115=example.com, 116=EXAMPLE], Acs.AD-Log-Id=[1585911138/4778, 1585911138/4779], __IntIdGrps__=[Ljava.lang.String;@6d3c29b5, IdentityGroup.Description=[Ljava.lang.String;@3fca88fb, EXAMPLE.ExternalGroups=S-1-5-21-875452798-754861120-3039794717-513, Acs.AD-Groups-Names=example.com/Users/Domain Users, Acs.AuthenCPMSessionID=0A3E946C000000896011D045, Acs.IsMachineAuthentication=false, InternalEndpoint.IdentityGroup=[Ljava.lang.String;@6daf4c5, IDStoreUserQueryCache=[EXAMPLE#bob@example.com], Acs.CurrentIDStoreName=EXAMPLE, Acs.AD-User-Join-Point=EXAMPLE.COM, Acs.Step=[24432, 24325, 24313, 24319, 24323, 24355, 24416], Acs.CustomerMessageDuplicator=, Network Access.WasMachineAuthenticated=false, IdentityGroup.Name=[Ljava.lang.String;@570ab37a, Acs.StepDataStart=110, Acs.AD-User-DNS-Domain=example.com, Network Access.AuthenticationMethod=4, Acs.AD-User-Resolved-Identities=bob@example.com, InternalUser.IdentityGroup=[Ljava.lang.String;@51a6caed, Acs.AuthenticationMethod=4, Acs.AD-User-NetBios-Name=EXAMPLE, Normalised Radius.RadiusFlowType=0, Network Access.AuthenticationIdentityStore=EXAMPLE, EXAMPLE.IdentityAccessRestricted=false, Acs.AD-User-SamAccount-Name=bob}
IndexValues: {}
2020-04-09 11:06:42,177 DEBUG [Thread-7979][] cisco.cpm.posture.pip.PostureStatusPIP -::::- set postureStatus based on posture LSD dictionary: Compliant
2020-04-09 11:06:42,177 DEBUG [Thread-7979][] cisco.cpm.posture.pip.PostureStatusPIP -::::- PostureStatusPIP for mac 00-50-56-B6-0B-C6 - Attribute Session.PostureStatus value is Compliant
通過在姿勢狀態選擇過程中新增額外邏輯解決了原始問題。
此圖顯示了已更改的內容(以紅色突出顯示的更改):
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
31-May-2023
|
重新認證 |
1.0 |
22-Apr-2020
|
初始版本 |