故障现象
配置完 GlobalProtect 与 Keycloak SAML 对接后,弹出的 Keycloak 报下列错误。
在 Keycloak 后台看到下列日志:
故障原因及解法
默认 PA 防火墙生成的 SAML metadata 会使用管理口,在生成时选择 Global-protect 的 Portal FQDN 即可解决。
导出后内容如下:
再将其导入 Keycloak 的 Client 中即可。
故障分析
碰到这问题一开始没啥头绪,查了很多帖子都没有很贴合这个场景的解法。后来看了下 GlobalProtect 日志,发现点端倪:
在 GPS.log 中看到下列 saml 请求信息,刚好是 base64 编码的
解码后看到是个 HTTP Post 请求,发送给 Keycloak 的( auth.halfcoffee.com),请求正文是另一个 base64 编码。
再次解码,看到 <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> https://gp.halfcoffee.com:443/SAML20/SP 这句,Keycloak 是按照这里的 URL 去判断哪个 Client 发来的,把 Client ID 配置成这个 URL 问题就解决了。