我使用Keycloak 5.0.0作为身份经纪人。我已将其作为SAML应用程序连接到G Suite。我已将其他SAML应用程序连接到G Suite,因此我知道该演练,并且我将G Suite元数据XML导入SAML,因此我确信X.509键是正确的,但出于某种原因,如果我选择“验证签名” “在Keycloak中,验证失败了。日志说
ERROR [org.keycloak.broker.saml.SAMLEndpoint] validation failed
WARN [org.keycloak.events] type=IDENTITY_PROVIDER_RESPONSE_ERROR, realmId=master, clientId=null, userId=null, ipAddress=10.10.2.1, error=invalid_signature
如果我关闭G Suite中的“签名响应”或关闭Keycloak中的“想要断言签名”或“验证签名”,那么一切正常,但我希望这是因为Keycloak在这些情况下不会尝试验证签名(当“想要断言签名”和“验证签名”打开但“签名响应”已关闭时,当然是另一个错误。
我该如何解决?
事实证明我对“签名回应”的含义是错误的。根据G Suite关于设置特定支持的SAML应用程序的文档,但未在“设置您自己的自定义SAML应用程序”文档中找到,“签名响应”并不意味着我的意思。
取消选中“签名响应”复选框后,只会签署断言。选中“签名响应”复选框后,将对整个响应进行签名。
我验证了(通过更改X.509键并观察结果)未选中“签名响应”并打开“想要声明签名”和“验证签名”,Keycloak验证断言是否已签名。这是正确,有效和安全的配置。