이 문서에서는 "AnyConnect ISE Posture Module show compliant..."와 같은 일반적인 ISE(Identity Service Engine) Posture Services 문제에 대해 설명합니다.
이 문서에서는 일반적인 ISE(Identity Service Engine) 상태 서비스 문제에 대해 설명합니다. "ISE의 세션 상태가 보류 중인 동안 AnyConnect ISE 상태 모듈이 규정 준수를 보여줍니다."
증상은 항상 동일하지만, 이 문제의 여러 가지 근본 원인이 있습니다. 이러한 문제의 트러블슈팅은 많은 시간이 소요되며, 이는 심각한 영향을 미칩니다.
이 문서에서는 다음 내용을 설명합니다.
나중에 설명하는 개념에 대한 자세한 설명은 사전 및 사후 2.2에 대한 ISE Posture Style Comparison을 참조하십시오
이 문제는 일반적으로 브라우저에서 ISE 클라이언트 프로비저닝 포털에 대한 네트워크 액세스 또는 지속적인 리디렉션이 없을 때 나타나며, 동시에 AnyConnect ISE Posture 모듈은 포스처 상태를 Compliant로 표시합니다.
일반적인 최종 사용자 환경:

이 문제를 처음 테스트할 때 ISE 관리자는 인증이 ISE에 도달하는지 확인하기 위해 Radius Live 로그를 조사하기 시작합니다. 이 단계에서 발견된 첫 번째 증상은 라이브 로그에서 엔드포인트와 ISE 간의 포스처 상태가 일치하지 않음을 나타냅니다. 또는 Radius 인증은 엔드 포인트에 대한 마지막 성공 적 인 인증을 보고 보류 중 상태 상태 입니다.
일반적인 ISE 관리 환경:

이 문제는 일반적으로 두 가지 문제가 있는 시나리오에서 나타나며, 각 시나리오는 여러 가지 근본 원인을 가지고 있습니다. 시나리오는 다음과 같습니다.
AnyConnect의 ISE Posture 모듈에는 검색 프로세스를 트리거하는 이벤트 수가 제한됩니다. 인증 또는 재인증 중에 이러한 이벤트가 탐지되지 않았을 수 있습니다.
문제를 더 잘 이해하려면 필요한 ISE 세션 관리 로직 및 AnyConnect 검색 프로세스를 조사하십시오.
ISE 구축에서는 세션 관리 프로세스를 담당하는 페르소나 2개가 있습니다. PSN 및 모니터링 노드(MNT). 문제를 제대로 해결하고 파악하려면 두 페르소나의 세션 관리 이론을 이해하는 것이 중요합니다.

이 이미지에 설명된 대로 MNT 노드는 PSN에서 오는 전달 인증 Syslog 메시지를 기반으로 시즌을 생성합니다. 세션 상태는 나중에 Syslog에서 어카운팅용으로 업데이트할 수 있습니다.
MNT에서 세션 제거는 다음 세 가지 시나리오에서 수행됩니다.
1. 계정 관리 시작이 없는 세션은 생성된 지 약 60분 후에 제거됩니다. 세션 상태를 확인하고 정리하기 위해 5분마다 실행된 cron 작업이 있습니다.
2. 동일한 cron 작업에 의해 계정 정지가 처리된 후 약 15분 후에 제거된 종료된 세션
3. 각 실행에서 동일한 cron이 5일(120시간) 이상 '시작됨' 상태의 세션을 제거합니다. 시작됨 상태는 MNT 노드가 인증과 어카운팅을 모두 처리하여 Syslog 세션을 시작함을 의미합니다.
참고: 이는 일반 MnT 정리 타이머이며, 벽 시계 삭제 시간이 보장되지 않습니다. 다음과 같은 경우 제거가 지연될 수 있습니다.
PSN의 Syslog 메시지 예:
런타임 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
Interim Accounting 업데이트:
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에는 한 노드에서 다른 노드로의 FULL 세션 상태 복제를 수행할 수 있는 메커니즘이 없습니다.
모든 활성 세션 ID에 대해 PSN은 인증/권한 부여 단계 중에 수집된 모든 특성(예: 내부/외부 사용자 그룹, NAD(Network Access Device) 특성, 인증서 특성 등)을 저장합니다. 이러한 특성은 PSN에서 Authentication, Authorization, Client Provisioning, Posture와 같은 여러 정책 유형을 선택하는 데 사용됩니다.
노드(또는 노드의 서비스)를 다시 시작하면 세션 캐시가 완전히 제거됩니다.

현재 세션 처리 로직은 두 가지 시나리오에서 세션 캐시에 새 항목을 생성합니다. NADs에서 오는 어카운팅 메시지에서 기존 세션의 세부 정보를 업데이트 할 수 있습니다.
ISE 구축에서 기존 세션에 대한 어카운팅 중지는 실제 인증을 수행하지 않은 PSN에 의해 처리되었습니다.
부실 세션의 예:

이 PSN에서 계정 관리 중지 메시지가 처리되지 않아 ABC가 PSN1에서 오래된 상태로 고정됩니다. 구축에서 인증 시도 횟수가 많지 않으면 세션이 제거됩니다.
오래된 세션은 다음 시나리오에서 PSN 세션 캐시에 나타납니다.
LB(로드 밸런서) 환경의 오래된 세션의 예:

팬텀 세션은 어카운팅 중간 업데이트가 PSN에 도달하고 해당 세션에 대한 인증을 수행하지 않은 시나리오입니다. 이 시나리오에서는 PSN 세션 캐시에 새 항목이 생성됩니다. PSN이 이 세션에 대한 계정 관리 중지 메시지를 수신하지 않는 경우, PSN이 활성 세션 제한에 도달하지 않으면 항목이 제거되지 않습니다.
팬텀 세션의 예:

팬텀 세션은 다음 시나리오에서 PSN 세션 캐시에 나타납니다.
다음 스크린샷은 PSN1으로 향하는 네트워크 경로에 일시적인 문제가 발생하는 팬텀 세션의 예입니다.

다음은 장기 지속 VPN 연결을 위해 생성된 팬텀 세션의 시나리오를 보여줍니다.

PSN1에 나중에(14) 액세스할 수 있게 되면 이후의 모든 어카운팅 메시지가 전달되며(15,16), PSN2 세션 캐시의 세션 ABC가 정의되지 않은 시간 동안 유지됩니다.
부실 세션과 팬텀 세션이 상태를 어떻게 해체하는지 알아보려면 AnyConnect ISE 상태 모듈 검색 프로세스를 검토할 수 있습니다.

1단계 검색:
이 단계에서 ISE Posture 모듈은 엔드포인트를 인증하는 PSN을 찾기 위해 4개의 동시 프로브를 실행합니다.
먼저 그림에서 3개의 프로브는 리디렉션 기반(기본 GW IP, 검색 호스트 IP(정의된 경우) 및 enroll.cisco.com IP)입니다. 이러한 프로브는 리디렉션된 URL을 NAD 자체에서 가져올 때 항상 상담원을 올바른 PSN으로 가리킵니다.
Probe 4는 ConnectionData.xml 파일에 표시된 모든 기본 서버로 전송됩니다. 이 파일은 첫 번째 성공적인 포스처 시도 후에 만들어집니다. 클라이언트가 PSN 간에 마이그레이션하는 경우 파일 내용을 나중에 업데이트할 수 있습니다.
Windows 시스템에서 파일 위치는 C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\ISE Posture\입니다.
모든 1단계 프로브가 동시에 실행되므로, 프로브 4의 결과는 다른 3개 프로브가 모두 실패하거나 ISE 포스처 모듈이 리디렉션 URL에서 5초 이내에 반환된 PSN과의 적절한 통신을 설정할 수 없는 경우에만 사용됩니다.
PSN에서 4개의 랜드를 프로브하면 엔드포인트에서 검색된 활성 IP 및 MAC 주소 목록이 포함됩니다. PSN은 이 데이터를 사용하여 로컬 캐시에서 이 엔드포인트에 대한 세션을 찾습니다. PSN에 엔드포인트에 대한 부실 또는 팬텀 세션이 있는 경우, 클라이언트 측에서 나중에 잘못된 상태 상태가 표시될 수 있습니다.
에이전트가 프로브 4에 대해 여러 개의 응답을 받는 경우(ConnectionData.xml에 둘 이상의 기본 PSN이 포함될 수 있음) 항상 가장 빠른 응답이 사용됩니다.
2단계 검색:
모든 2단계 검색 프로브는 리디렉션이 없으므로 모든 프로브가 대상 PSN에서 세션 조회를 트리거합니다. PSN이 로컬 세션 캐시에서 세션을 찾을 수 없는 경우 MNT 조회(MAC 주소 기반 전용)를 수행하여 세션 소유자를 찾고 소유자 이름을 에이전트에게 반환해야 합니다.
모든 프로브가 세션 조회를 트리거하므로 2단계 검색은 오래된 세션 또는 팬텀 세션의 결과로 인한 문제의 영향을 크게 받을 수 있습니다.
PSN이 2단계로 이동하면 세션 캐시에 있는 검색 프로브는 동일한 엔드포인트에 대해 부실 또는 팬텀 엔트리를 생성합니다. 최종 사용자에게 반환된 잘못된 상태 상태가 됩니다.
다음 예에서는 PSN이 오래된 세션 또는 팬텀 세션을 유지할 때 상태가 어떻게 나타나는지 보여 줍니다.

4. 팬텀 세션 시나리오의 경우, ISE 포스처 모듈은 초기 포스처 요청을 계속 진행합니다. 이 요청에는 엔드포인트에서 탐지된 모든 보안 및 패치 관리 제품에 대한 정보가 포함됩니다.
5. PSN은 요청 및 세션 특성의 정보를 사용하여 올바른 상태 정책과 일치시킵니다. 이 시점에서 팬텀 세션은 특성이 부족하며, 일치시킬 정책이 없습니다. 이 경우 PSN은 엔드포인트에 규정을 준수한다고 응답합니다. 포스처 정책이 일치하지 않을 경우 이는 기본 ISE 동작입니다.
6. PSN은 선택한 포스처 정책을 에이전트에게 다시 반환합니다.
7. 에이전트는 각 정책/요구 사항의 상태를 "통과" 또는 "실패"로 반환합니다.
8. ISE에서 보고서 평가가 수행되고 세션 상태가 Compliant로 변경됩니다.
ISE Posture 모듈은 엔드포인트에서 제한된 양의 이벤트를 모니터링하여 검색 프로세스를 트리거하도록 설계되었습니다.
검색을 트리거하는 이벤트:
ISE Posture 모듈은 다음 시나리오에서 새 인증 또는 재인증 시도를 탐지할 수 없습니다.
이 다이어그램은 원래 PSN의 중단으로 인해 발생한 다른 PSN에 대한 재인증 예를 보여줍니다. 로드 밸런서가 있는 시나리오도 비슷합니다. 로드 밸런서의 경우 재인증은 고착성 타이머 만료의 결과로 다른 PSN으로 전달됩니다.

초기 포스처 상태는 PSN에 의해 세션에 할당됩니다.

이는 다음과 같은 두 가지 일반적인 시나리오에서 발생할 수 있습니다.
리디렉션 상태에 있는 동안 AnyConnect가 규정준수를 표시하는지 여부를 확인하는 방법은 부실/팬텀 세션으로 인해 발생합니다. 문제가 있는 상태에서 엔드포인트에 대한 액세스 권한을 얻어야 합니다.
Investigate System Scan 세부 정보
1. AnyConnect UI에서 톱니바퀴 모양 아이콘을 클릭합니다.

2. 새 창에서 System Scan > Statistics로 이동합니다.

다음으로, 두 가지 중요한 요소에 주목하십시오.

데모에서는 문제 식별에 필요한 단계를 기록합니다.
앞의 예에서는 오래된 세션 또는 팬텀 세션의 문제와 시작되지 않은 검색 프로세스의 문제를 구분합니다. 동시에 문제를 유발한 실제 세션을 식별해야 부실 또는 팬텀 세션 문제가 되는 방식을 파악할 수 있습니다. 일부 시나리오에서는 부실 및 팬텀 세션을 피할 수 없지만, 환경에서 부실/팬텀 세션이 생성되지 않도록 모범 사례를 구현해야 합니다.
문제를 재현한 엔드포인트에서 가져온 DART 번들을 분석합니다.

4. 첫 번째 마법사 화면에서 다음을 클릭합니다.
5. 다음 마법사 화면에서 모든 로그 지우기를 클릭합니다.
6. 문제가 재현되면 여기에서 DART를 수집할 수 있습니다. Next(다음)를 클릭합니다.
DART 번들이 수집된 후 아카이브를 해제하고 Cisco AnyConnect ISE Posture Module 폴더에 있는 AnyConnect_ISPosture.txt 파일에 중점을 둡니다. 이 파일에는 모든 검색 관련 이벤트가 포함되어 있습니다.

1. 문제 해결을 시작하고 검색이 다시 시작되는 모든 순간을 확인합니다. 검색할 키워드는 검색 또는 HTTP 검색을 다시 시작하는 것입니다. 문제가 발생한 시점에 검색 재시작이 발생한 행으로 이동합니다.

2. 검색 재시작 후 여러 행에서 MNT 단계 대상을 검색하는 행(단계 1 검색 시작을 나타내는 지표)이 있습니다.

3. 동일한 색상의 모든 리디렉션 기반 프로브와 이전에 연결한 PSN을 ConnectionData.xml(Auth-Status 대상)에서 가져온 다른 색상으로 강조 표시하는 것이 좋습니다. 일반적으로 PSN FQDN은 유사하며 차이점을 찾아내기가 어려울 수 있습니다.
4. 로그 파일을 읽고 각 프로브의 결과를 확인합니다(실패한 프로브가 어떻게 표시되는지 보여주는 예입니다).

5. 1단계 또는 2단계의 검색이 다시 시작된 후 파일의 어느 부분에서 하나 이상의 PSN에서 성공적으로 회신된 것을 볼 수 있습니다.

5. 나중에 여러 행에서 MSG_NS_SWISS_NEW_SESSION 키워드가 포함된 행이 있습니다. 이 행에는 세션 조회의 결과로 PSN에서 선택한 실제 세션 ID가 포함됩니다. 이 세션 ID를 사용하여 ISE에 대한 추가 조사를 수행하여 세션이 부실/팬텀이 된 방법을 확인할 수 있습니다.

1. client-webapp 구성 요소가 DEBUG로 활성화된 guest.log에서 PSN이 Stale/Phantom 세션으로 응답합니다. 이를 확인할 수 있습니다.
2. PSN이 ISE 상태 에이전트로부터 요청을 수신합니다. User-Agent 값 때문에 AnyConnect에서 요청하는 것입니다.
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
3. 요청에 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
4. 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 계정 관리 보고서를 조사하여 세션이 부실/팬텀이 된 원인을 더 정확하게 파악할 수 있습니다.
2. 오래된 세션이 ciscolive-ise2에 남아 있는 방법을 보여 주는 보고서의 예입니다.

이전 문제에도 동일한 논리가 적용되지만 유일한 차이점은 Latest Scan Start Time(최신 스캔 시작 시간)에 초점을 맞춰야 한다는 것입니다. 이 유형의 문제에서 마지막 스캔의 타임스탬프는 과거입니다.
일반적으로 최종 사용자가 문제를 발견하면 스캔이 발생합니다. ISE Radius Live 로그에 있는 동안 문제가 되는 엔드포인트의 최근 인증 시도가 표시됩니다.
데모에서는 문제 식별에 필요한 단계를 기록합니다.
이 접근 방식은 Advanced Troubleshoot Stale/Phantom Session 섹션과 유사합니다. 주요 문제 해결 요소는 DART 번들 조사입니다.
DART 번들 내에서는 검색 재시작을 검색할 수 있습니다(이전 문제와 같이). 문제가 보고된 시점에 검색 재시작이 없었는지 확인할 수 있습니다.
ISE 측에서 Radius Live Logs/Radius 인증 보고서를 중점적으로 검토하여 PSN 간에 장애 조치가 발생했는지 또는 NAD에 의해 새 세션 ID가 생성되었는지 확인합니다.
지금까지 ISE에는 이 문서에 설명된 문제를 해결하는 기능이 없었으므로, 위험을 최소화하기 위해 네트워크와 ISE에 구현된 모범 사례 집합에 의존하는 것이 유일한 방법이었습니다.
가능한 경우 항상 리디렉션 기반 상태 구현
이 권장 사항에 대한 일반적인 반대 의견은 OS에 나타나는 사용자 환경이 나쁘다는 것입니다. 이는 백그라운드에서 AnyConnect ISE Posture 모듈이 평가 프로세스를 수행하는 동안 리디렉션을 나타냅니다.
이에 대한 해결책으로 ISE Posture 모듈 검색 프로브만 리디렉션하고 다른 모든 트래픽을 선택적으로 허용할 수 있습니다. 다음 예에서는 HTTP 요청만 검색 호스트(이 예에서는 10.1.1.1) 및 enroll.cisco.com(172.16.1.80)로 리디렉션하도록 설계된 리디렉션 ACL을 보여 줍니다.
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과 결합할 수 있습니다.
Pending State(보류 중 상태)는 엔드포인트가 인증된 PSN에 대해서만 연결을 허용합니다.
이 접근 방식은 URL 리디렉션이 지원되지 않는 환경(서드파티 NAD를 사용한 구현)에 유용합니다.
해결 방법으로 여러 Posture Pending 권한 부여 정책(PSN당 하나씩)을 구현합니다. 각 정책은 조건 중 하나로 인증이 수행된 PSN의 이름을 포함해야 합니다. 권한 부여 프로파일에서 인증이 발생한 노드를 제외한 모든 PSN을 차단해야 합니다.
두 노드에 대한 권한 부여 정책을 만듭니다.

다음 그림은 접근 방식의 작동 방식을 설명합니다.

로드 밸런서 모범 사례
accounting-interim 업데이트 간격이 vpn-session-timeout보다 크거나 같은지 확인합니다. 이렇게 하면 긴 VPN 세션 동안 PSN 간의 어카운팅 플랩이 최소화됩니다. 이 예에서는 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
상태 임대 사용
이는 엔드포인트를 정의된 기간(1-365일) 동안 규정 준수로 표시하는 ISE의 기능입니다. 포스처 리스 값은 ISE DB에 저장됨을 의미하는 엔드포인트 특성입니다. 상태 임대를 포함하는 모든 엔드포인트 특성은 ISE 구축의 모든 노드에 복제됩니다.
PSN이 엔드포인트에 대한 새 세션을 수신하면 포스처 리스를 사용하여 세션을 즉시 Compliant로 표시할 수 있습니다. 이 결정을 내리기 위해 PSN은 3개의 값을 사용하며 해당 값은 다음과 같습니다.

2. PostureExpiry 특성 값은 Epoch 타임스탬프를 포함하는 엔드포인트 특성입니다. PostureExpiry 값은 ISE 관리자가 포스처 임대를 활성화한 후 엔드포인트에 대해 처음으로 포스처 시도가 성공한 경우 처음에 채워집니다. 나중에 이 값은 임대 만료 후 다음 성공 적 인 상태 시도에 업데이트 됩니다. 포스처 엔드포인트 중 하나가 열린 동안 Context Visibility(상황 가시성) > Endpoints(엔드포인트)에서 PostureExpiry(포스처 만료)를 볼 수 있습니다.

3. 이 값은 사람이 읽을 수 있는 타임스탬프로 변환할 수 있습니다(예: 여기 - https://www.epochconverter.com/).

3. 상태 임대가 있는 엔드포인트에 대한 인증이 PSN에 도달하면 PostureExpiry 및 시스템 날짜를 사용하여 마지막으로 성공한 상태 확인에서 경과된 일 수를 검색합니다. 결과 값이 설정에 정의된 포스처 리스 간격 내에 있는 경우 세션은 Compliant 상태를 수신합니다. 결과 값이 리스 값보다 큰 경우 세션은 Unknown(알 수 없음) 상태를 수신합니다. 이렇게 하면 상태가 다시 실행되고 새 PostureExpiry 값이 저장될 수 있습니다.
이 다이어그램은 장애 조치가 수행되는 프로세스를 보여줍니다.

항상 RADIUS 요청을 사용하여 ISE에서 재인증 타이머를 푸시합니다. 이 타이머는 재인증 중 연결 유지 관리에서 선택됩니다. 이 설정은 NAD가 재인증 시 동일한 세션 ID를 유지하도록 합니다.

동일한 모범 사례(부실/팬텀 세션 섹션에서 설명)를 구현할 수 있습니다.
서로 다른 서브넷을 Pending(보류 중) 및 Compliant(준수) 상태에 사용할 수 있습니다.
네트워크 설계에서 Pending 및 Compliant 상태와 같은 다른 서브넷을 사용할 수 있는 기회를 제공하는 경우, 이 접근 방식은 상태 상태의 모든 변경이 Default Gateway(기본 게이트웨이) 변경으로 이어지도록 보장합니다.
재인증 타이머와 동일한 간격으로 사용되는 상태 평가
Posture Assessment는 재인증 타이머와 같은 간격으로 활성화할 수 있습니다. 원래 PSN을 사용할 수 없는 경우 PRA 장애가 검색 프로세스를 다시 시작합니다.
ISE 2.6에 대한 구현된 개선 사항(Cisco 버그 ID CSCvi35647) 패치 6의 일부로서, ISE 구축의 모든 노드에서 세션 포스처 상태 공유를 구현하는 새로운 기능이 있습니다.
이러한 향상된 기능은 ISE 2.7 패치 2 및 ISE 3.0의 향후 릴리스에 통합됩니다.
이 새 기능은 ISE 2.6에 도입된 LSD(Light Session Directory) 메커니즘을 기반으로 합니다. 최신 버전에서는 이 기능의 이름이 LDD(Light Data Distribution) Radius Session Directory로 바뀌었습니다. Light Data Distribution은 기본적으로 활성화되어 있으며 ISE 노드 간에 제한된 세션 컨텍스트를 공유할 수 있도록 합니다. PSN 간에는 전체 세션 컨텍스트 복제가 없으며 각 세션에 대해 공유되는 특성의 양이 제한됩니다.
Light Session Directory를 사용하면 구축의 노드 중 하나에서 현재 세션 소유자를 결정해야 할 때 MNT에 대해 값비싼 리소스 API 호출을 실행할 필요가 없습니다. COA 흐름이 시작되면 소유자 조회가 필요합니다. LDD를 사용하면 모든 PSN이 로컬 Radius 세션 디렉터리 캐시에서 세션의 소유자를 찾을 수 있습니다.
이 기능에는 다음 요소가 포함됩니다.
참고: 일반적인 RabbitMQ 용어 및 아키텍처는 이 문서 범위에 포함되지 않습니다.
다음 예에서는 RSD 캐시에서 COA 플로우가 작동하는 방식을 설명합니다.

ISE에서 LDD를 통한 통신 문제를 해결하려면 Light-Session-Directory 구성 요소를 DEBUG로 활성화합니다.

원래 PSN에서 세션 생성 및 게시를 위해 lsd.log 파일의 디버그 메시지의 예입니다.
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에 대한 재인증인 경우 문제를 해결합니다. 세션이 Compliant가 되면 이 정보는 세션 RSD에 저장되며 나중에 구축의 모든 PSN에서 사용될 수 있습니다.
설명된 기능이 해결할 수 없는 몇 가지 다른 코너 케이스가 있습니다. 예를 들어 NAD가 동일한 PSN에서 재인증을 실행하지만 세션 ID는 다른 경우 이러한 시나리오는 이 문서에 설명된 모범 사례로 처리할 수 있습니다. 이 그림에서는 상태 공유 테스트에 사용되는 토폴로지를 보여줍니다.

부실 세션을 생성하려면 처음에는 skuchere-ise26-1에서 인증을 수행해야 합니다. 그런 다음 skuchere-ise26-3에 어카운팅을 전송하도록 NAD를 다시 구성해야 합니다. 어카운팅 메시지 하나가 잘못된 PSN으로 전달된 후 어카운팅을 다시 skuchere-ise26-1로 전송하도록 NAD를 다시 구성해야 합니다.
이 그림에서는 skuchere-ise26-3에 팬텀 세션이 있음을 증명하는 회계 보고서를 보여 줍니다.

엔드포인트가 네트워크에 연결되지만 리디렉션이 더 이상 작동하지 않습니다. skuchere-ise26-3용 PSN의 guest.log에서 client-webapp 구성 요소가 DEBUG로 활성화된 다음 로그 메시지를 볼 수 있습니다.
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에 로컬 세션 캐시에 있는 PSN의 세션 ID와 다른 세션 ID가 포함되어 있으면 세션 캐시에 있는 세션이 오래된 것으로 간주합니다.
이 시나리오를 재현하기 위해, 짧은 재인증 타이머가 호환 상태 엔드포인트에 할당된 권한 부여 프로파일에서 활성화됩니다. 나중에 NAD는 다른 PSN(skuchere-ise26-3)에 인증 및 어카운팅을 전송하도록 재구성됩니다. 재인증 타이머 만료 시 동일한 세션이 다른 PSN에서 인증되지 않습니다.
다음 그림에는 skuchere-ise26-1에서 skuchere-ise26-3으로의 동일한 세션에 대한 장애 조치를 보여주는 인증 보고서가 나와 있습니다.

DEBUG로 활성화된 epm-pip 및 nsf-session 구성 요소를 포함하는 ise-psc.log에서 장애 조치 후 새 PSN에 대한 규정 준수 상태가 세션에 포함됩니다.
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
원래 문제는 상태 선택 프로세스에 추가 논리를 추가 하여 해결 됩니다. 이 그림에서는 변경된 내용(빨간색으로 강조 표시된 변경 사항)을 보여줍니다.

| 개정 | 게시 날짜 | 의견 |
|---|---|---|
3.0 |
25-Aug-2026
|
제목, 맞춤법, 문법, 가독성을 위해 별도의 섹션에 삽입된 가로 줄, 고정 URL, CCW 알림, 대체 텍스트 업데이트 |
2.0 |
31-May-2023
|
재인증 |
1.0 |
22-Apr-2020
|
최초 릴리스 |