此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍使用pxGrid连接将ISE 3.3与思科安全Web设备(WSA)集成的过程。
思科建议了解以下主题:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
为ISE服务器pxGrid证书生成CSR:
1.登录思科身份服务引擎(ISE)GUI。
2.NavigatetoAdministration > System > Certificates > Certificate Management > Certificate Signing Requests。
3.选择生成证书签名请求(CSR)。
4.选择Certificate(s)is used for field.
5. SelectISE节点为其生成证书。
6.根据需要填写其他证书详细信息。
7.单击Generate。
8.单击“导出”,然后在本地保存文件。
1.导航到MS Active Directory证书服务,https://server/certsrv/,其中服务器是MS服务器的IP或DNS。
2.单击请求证书。
3.选择提交高级证书请求。
4.将上一部分中生成的CSR的内容复制到“保存的请求”(Saved Request)字段中。
5.选择Certificate Template,然后单击Submit。
注意:使用的证书模板pxGrid需要在Enhanced Key Usage字段中同时进行客户端身份验证和服务器身份验证。
6.下载生成的证书inBase-64format,并另存为ISE_pxGrid.cer。
1.导航至MS Active Directory证书服务主页,然后选择下载CA证书、证书链或CRL。
2. SelectBase-64 format,然后单击DownloadCA certificate。
3.将证书另存为CA_Root.cer。
4.登录思科身份服务引擎(ISE)GUI。
5.选择管理>系统>证书>证书管理>受信任证书。
6.选择导入>证书文件并导入根证书。
7.确保选中Trust for authentication within ISE复选框。
8.单击提交。
1.登录思科身份服务引擎(ISE)GUI。
2.选择管理>系统>证书>证书管理>证书签名请求。
3.选择上一节中生成的CSR,然后单击绑定证书。
4.在“绑定CA签名证书”表单上,选择以前生成的ISE_pxGrid.cer证书。
5.为证书提供一个友好名称,然后单击提交。
7.单击“是”,如果系统要求替换证书。
8.选择Administration > System > Certificates > System Certificates。
9.您可以在列表中看到由外部CA签名的已创建pxGrid证书。
将CA根证书添加到WSA受信任库:
1.登录到网络安全设备(WSA)GUI。
2.导航到网络>证书管理>管理受信任的根证书。
3.导入并上传CA根证书,然后单击Submit。
4.单击提交更改以应用更改。
现在已部署证书,继续集成。
在继续集成之前,请确保:
对于Cisco ISE,在Administration > pxGrid Services > SettingsandCheck下,自动为客户端请求批准新的基于证书的帐户以自动批准和保存。
1.登录到网络安全设备(WSA)GUI。
2.导航至网络>标识服务>标识服务引擎。
3.单击启用和编辑设置。
4.输入主ISE pxGrid节点IP地址或FQDN。
5.上传主pxGrid节点的CA根证书。
6.输入辅助ISE pxGrid节点IP地址或FQDN。(可选)
7.上传辅助pxGrid节点的CA根证书。(可选)
注意:每个ISE部署只能有两个pxGrid节点。此配置用作pxGrid主用 — 备用配置;一次只能有一个ISE+pxGrid节点处于活动状态。在pxGrid主用 — 备用配置中,所有信息都通过PPAN,其中第二个ISE+pxGrid节点保持非活动状态。
8.滚动到Web设备客户端证书(Web Appliance Client Certificate)部分,然后单击生成新证书和密钥(Generate New Certificate and Key)。
9.根据需要填写证书详细信息,然后点击Generate。
注意:证书期限必须是一个介于24个月和60个月之间的整数,国家/地区必须为ISO两个字符的国家/地区代码(仅大写字母)。
10.单击Download Certificate Signing Request。
11.单击Submit。
12.单击Commit Changes以应用更改。
警告:如果不提交和提交上述更改,并直接上传签名证书并执行提交,则可能会在集成期间遇到问题。
1.导航到MS Active Directory证书服务,https://server/certsrv/,其中服务器是MS服务器的IP或DNS。
2.单击请求证书。
3.选择提交高级证书请求。
4.将上一部分中生成的CSR的内容复制到“保存的请求”(Saved Request)字段中。
5.选择Certificate Template,然后单击Submit。
注意:注意:使用的证书模板pxGrid需要在Enhanced Key Usage字段中同时进行客户端身份验证和服务器身份验证。
6.下载生成的证书inBase-64format,并另存为WSA-Client.cer。
1.导航至网络安全设备(WSA)GUI。
2.导航至网络>标识服务>标识服务引擎。
3.单击Edit Settings。
4.导航至Web设备客户端证书部分。
5.在签名证书部分下,上传签名证书WSA-Client.cer
6.单击Submit。
7.单击Commit Changes以应用更改。
8.单击“编辑设置”。
9.滚动到测试与ISE节点的通信,然后单击开始测试,结果可能如下所示:
Checking DNS resolution of ISE pxGrid Node hostname(s) ...
Success: Resolved '10.127.197.128' address: 10.127.197.128
Validating WSA client certificate ...
Success: Certificate validation successful
Validating ISE pxGrid Node certificate(s) ...
Success: Certificate validation successful
Checking connection to ISE pxGrid Node(s) ...
Trying primary PxGrid server...
SXP not enabled.
ERS not enabled.
Preparing TLS connection...
Completed TLS handshake with PxGrid successfully.
Trying download user-session from (https://ise33.lab.local:8910)...
Failure: Failed to download user-sessions.
Trying download SGT from (https://ise33.lab.local:8910)...
Able to Download 17 SGTs.
Skipping all SXP related service requests as SXP is not configured.
Success: Connection to ISE pxGrid Node was successful.
Test completed successfully.
在Cisco ISE上,导航到管理>pxGrid服务>客户端管理>客户端。
这会将WSA生成为statusEnabled的pxgrid客户端。
要验证思科ISE上的主题订用,请导航到管理(Administration)>pxGrid服务(pxGrid Services)>诊断(Diagnostics)> Websocket >客户端(Clients):
Cisco ISE Pxgrid-server.log TRACE level.reference。
{"timestamp":1742395398803,"level":"INFO","type":"WS_SERVER_CONNECTED","host":"ise33","client":"wsabgl.lab.local_ised","server":"wss://ise33.lab.local:8910/pxgrid/ise/pubsub","message":"WebSocket connected. session\u003d[id\u003d4,client\u003dwsabgl.lab.local_ised,server\u003dwss://ise33.lab.local:8910/pxgrid/ise/pubsub]"}
TRACE [Thread-8][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Drop. exclude=[id=3,client=~ise-fanout-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub]
DEBUG [Thread-8][[]] cisco.cpm.pxgridwebapp.config.MyX509Filter -::::::- Authenticating null
DEBUG [Thread-8][[]] cisco.cpm.pxgridwebapp.config.MyX509Filter -::::::- Certs up to date. user=~ise-pubsub-ise33
DEBUG [Thread-8][[]] cisco.cpm.pxgridwebapp.config.MyX509Filter -::::::- preAuthenticatedPrincipal = ~ise-pubsub-ise33, trying to authenticate
DEBUG [Thread-8][[]] cisco.cpm.pxgridwebapp.config.MyX509Filter -::::::- X.509 client authentication certificate subject:CN=ise33.lab.local, OU=AAA, O=Cisco, L=Bangalore, ST=KA, C=IN, issuer:CN=Avaste-ISE, DC=avaste, DC=local
DEBUG [Thread-8][[]] cisco.cpm.pxgridwebapp.config.MyX509Filter -::::::- Authentication success: PreAuthenticatedAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=~ise-pubsub-ise33, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=10.127.197.128, SessionId=null], Granted Authorities=[ROLE_USER]]
DEBUG [Thread-8][[]] cisco.cpm.pxgridwebapp.data.AuthzDaoImpl -::::::- requestNodeName=wsabgl.lab.local_ised serviceName=com.cisco.ise.pubsub operation=subscribe /topic/com.cisco.ise.session
DEBUG [Thread-13][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Adding subscription=[id=my-id,topic=/topic/com.cisco.ise.session]
INFO [Thread-13][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Pubsub subscribe. subscription=[id=my-id,topic=/topic/com.cisco.ise.session] session=[id=4,client=wsabgl.lab.local_ised,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub]
TRACE [WsIseClientConnection-804][[]] cpm.pxgrid.ws.client.WsEndpoint -::::::- Send. session=[id=34eae17d-594f-4dcd-b3e6-f2f644317eda,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] frame=[command=SEND,headers=[content-length=395, trace-id=6d3dcbc0a34346eeb9bafccd570f8090, destination=/topic/com.cisco.ise.pxgrid.admin.log],content-len=395] content={"timestamp":1742395398821,"level":"INFO","type":"PUBSUB_SERVER_SUBSCRIBE","host":"ise33","client":"wsabgl.lab.local_ised","server":"wss://ise33.lab.local:8910/pxgrid/ise/pubsub","message":"Pubsub subscribe. subscription\u003d[id\u003dmy-id,topic\u003d/topic/com.cisco.ise.session] session\u003d[id\u003d4,client\u003dwsabgl.lab.local_ised,server\u003dwss://ise33.lab.local:8910/pxgrid/ise/pubsub]"}
TRACE [Thread-3][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Received frame=[command=SEND,headers=[content-length=395, trace-id=6d3dcbc0a34346eeb9bafccd570f8090, destination=/topic/com.cisco.ise.pxgrid.admin.log],content-len=395], content={"timestamp":1742395398821,"level":"INFO","type":"PUBSUB_SERVER_SUBSCRIBE","host":"ise33","client":"wsabgl.lab.local_ised","server":"wss://ise33.lab.local:8910/pxgrid/ise/pubsub","message":"Pubsub subscribe. subscription\u003d[id\u003dmy-id,topic\u003d/topic/com.cisco.ise.session] session\u003d[id\u003d4,client\u003dwsabgl.lab.local_ised,server\u003dwss://ise33.lab.local:8910/pxgrid/ise/pubsub]"}
TRACE [Thread-3][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Authorized to send (cached). session=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] topic=/topic/com.cisco.ise.pxgrid.admin.log
TRACE [Thread-3][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Distribute from=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] topic=/topic/com.cisco.ise.pxgrid.admin.log content={"timestamp":1742395398821,"level":"INFO","type":"PUBSUB_SERVER_SUBSCRIBE","host":"ise33","client":"wsabgl.lab.local_ised","server":"wss://ise33.lab.local:8910/pxgrid/ise/pubsub","message":"Pubsub subscribe. subscription\u003d[id\u003dmy-id,topic\u003d/topic/com.cisco.ise.session] session\u003d[id\u003d4,client\u003dwsabgl.lab.local_ised,server\u003dwss://ise33.lab.local:8910/pxgrid/ise/pubsub]"}
TRACE [Thread-3][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Distribute distributed. subscription=[id=0,topic=/topic/com.cisco.ise.pxgrid.admin.log]
TRACE [Thread-3][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Distribute distributed. subscription=[id=2,topic=/topic/wildcard]
TRACE [sub-sender-1][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionSender -::::::- Send. subscription=[id=2,topic=/topic/wildcard] from=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] to=[id=1,client=~ise-fanout-ise33,server=wss://localhost:8910/pxgrid/ise/pubsub] message=[command=MESSAGE,headers=[content-length=395, trace-id=6d3dcbc0a34346eeb9bafccd570f8090, destination=/topic/com.cisco.ise.pxgrid.admin.log, message-id=37248],content-len=395]
TRACE [sub-sender-0][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionSender -::::::- Send. subscription=[id=0,topic=/topic/com.cisco.ise.pxgrid.admin.log] from=null to=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] message=[command=MESSAGE,headers=[content-length=395, trace-id=6d3dcbc0a34346eeb9bafccd570f8090, destination=/topic/com.cisco.ise.pxgrid.admin.log, message-id=37248],content-len=395]
DEBUG [Grizzly(1)][[]] cpm.pxgrid.ws.client.WsSubscriber -::::::- onStompMessage session=[id=34eae17d-594f-4dcd-b3e6-f2f644317eda,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] subscription=[id=0,topic=/topic/com.cisco.ise.pxgrid.admin.log]
DEBUG [Grizzly(1)][[]] cpm.pxgrid.ws.client.WsSubscriber -::::::- onStompMessage session=[id=4b4d7de4-b960-49f7-afac-9adab3238481,client=~ise-fanout-ise33,server=wss://localhost:8910/pxgrid/ise/pubsub] subscription=[id=2,topic=/topic/wildcard]
TRACE [Grizzly(1)][[]] cpm.pxgrid.ws.client.WsEndpoint -::::::- Send. session=[id=dd1d138d-a640-4f4f-bd4d-169d0cf5d937,client=~ise-fanout-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] frame=[command=SEND,headers=[content-length=570, destination=/topic/distributed, from=~ise-fanout-ise33, via=~ise-fanout-ise33],content-len=570] content=MESSAGE
TRACE [Grizzly(1)][[]] cpm.pxgridwebapp.ws.distributed.FanoutDistributor -::::::- DownstreamHandler sent frame for upstream. frame=[command=SEND,headers=[content-length=570, destination=/topic/distributed, from=~ise-fanout-ise33, via=~ise-fanout-ise33],content-len=570]
TRACE [Thread-10][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Received frame=[command=SEND,headers=[content-length=570, destination=/topic/distributed, from=~ise-fanout-ise33, via=~ise-fanout-ise33],content-len=570], content=MESSAGE
TRACE [Thread-10][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Authorized to send (cached). session=[id=3,client=~ise-fanout-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] topic=/topic/distributed
未知的CA问题,在WSA上,ISE连接的测试失败并出现错误。故障:与ISE PxGrid服务器的连接超时。
Cisco ISE Pxgrid-server.log TRACE level.reference。
ERROR [Thread-8][[]] cisco.cpm.pxgrid.cert.LoggingTrustManagerWrapper -::::::- checkClientTrusted exception.message=PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target principle=CN=wsabgl.lab.local, OU=Security, O=AAA, C=IN
TRACE [WsIseClientConnection-804][[]] cpm.pxgrid.ws.client.WsEndpoint -::::::- Send. session=[id=34eae17d-594f-4dcd-b3e6-f2f644317eda,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] frame=[command=SEND,headers=[content-length=338, trace-id=0f31b9311a2940a9bdeb0c8c647f6083, destination=/topic/com.cisco.ise.pxgrid.admin.log],content-len=338] content={"timestamp":1742395129748,"level":"ERROR","host":"ise33","message":"checkClientTrusted exception.message\u003dPKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target principle\u003dCN\u003dwsabgl.lab.local, OU\u003dSecurity, O\u003dAAA, C\u003dIN"}
TRACE [Thread-9][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Received frame=[command=SEND,headers=[content-length=338, trace-id=0f31b9311a2940a9bdeb0c8c647f6083, destination=/topic/com.cisco.ise.pxgrid.admin.log],content-len=338], content={"timestamp":1742395129748,"level":"ERROR","host":"ise33","message":"checkClientTrusted exception.message\u003dPKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target principle\u003dCN\u003dwsabgl.lab.local, OU\u003dSecurity, O\u003dAAA, C\u003dIN"}
TRACE [Thread-9][[]] cpm.pxgridwebapp.ws.pubsub.StompPubsubEndpoint -::::::- Authorized to send (cached). session=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] topic=/topic/com.cisco.ise.pxgrid.admin.log
TRACE [Thread-9][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Distribute from=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] topic=/topic/com.cisco.ise.pxgrid.admin.log content={"timestamp":1742395129748,"level":"ERROR","host":"ise33","message":"checkClientTrusted exception.message\u003dPKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target principle\u003dCN\u003dwsabgl.lab.local, OU\u003dSecurity, O\u003dAAA, C\u003dIN"}
TRACE [Thread-9][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Distribute distributed. subscription=[id=0,topic=/topic/com.cisco.ise.pxgrid.admin.log]
TRACE [Thread-9][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionDistributor -::::::- Distribute distributed. subscription=[id=2,topic=/topic/wildcard]
TRACE [sub-sender-1][[]] cpm.pxgridwebapp.ws.pubsub.SubscriptionSender -::::::- Send. subscription=[id=2,topic=/topic/wildcard] from=[id=0,client=~ise-admin-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] to=[id=1,client=~ise-fanout-ise33,server=wss://localhost:8910/pxgrid/ise/pubsub] message=[command=MESSAGE,headers=[content-length=338, trace-id=0f31b9311a2940a9bdeb0c8c647f6083, destination=/topic/com.cisco.ise.pxgrid.admin.log, message-id=37180],content-len=338]
DEBUG [Grizzly(2)][[]] cpm.pxgrid.ws.client.WsSubscriber -::::::- onStompMessage session=[id=4b4d7de4-b960-49f7-afac-9adab3238481,client=~ise-fanout-ise33,server=wss://localhost:8910/pxgrid/ise/pubsub] subscription=[id=2,topic=/topic/wildcard]
TRACE [Grizzly(2)][[]] cpm.pxgrid.ws.client.WsEndpoint -::::::- Send. session=[id=dd1d138d-a640-4f4f-bd4d-169d0cf5d937,client=~ise-fanout-ise33,server=wss://ise33.lab.local:8910/pxgrid/ise/pubsub] frame=[command=SEND,headers=[content-length=513, destination=/topic/distributed, from=~ise-fanout-ise33, via=~ise-fanout-ise33],content-len=513] content=MESSAGE
故障原因可以通过数据包捕获看到,
1.确保在WSA上成功绑定Web设备签名证书,并且已提交更改。
2.确保WSA客户端证书的颁发者或根CA证书是思科ISE上受信任存储的一部分。
Cisco Bug ID | 描述 |
思科漏洞ID 23986 | Pxgrid getUserGroups API请求返回空响应。 |
思科漏洞ID 77321 | WSA从ISE接收SID而不是AD组。 |
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
26-Mar-2025
|
初始版本 |