KeyCloak SAML客户端通过Keycloak经纪人向SAML提供者的请求

时间:2018-07-20 06:24:18

标签: saml-2.0 keycloak keycloak-services

我正在尝试使用在密钥斗篷中进行身份验证的SAML配置客户端 提供者通过密钥库经纪人(密钥库提供者和密钥库 经纪人位于不同领域的同一台服务器中)。 客户端是使用keycloak-SAML适配器的wildfly 11。经纪人和提供者 正在使用keycloak 4.1.0。 我已经实现了通过代理连接到SAML的OIDC客户端 提供程序,但我无法使用SAML客户端来完成此操作。

在客户端中,我在wildfly standalone.xml中具有以下配置:

<secure-deployment name="TestClientKeyCloakSAML.war">
 <SP entityID="Broker" sslPolicy="EXTERNAL" logoutPage="http://localhost:8280/auth/realms/Broker/protocol/saml">
  <Keys>
   <Key signing="true">
    <PrivateKeyPem></PrivateKeyPem>
    <CertificatePem></CertificatePem>
   </Key>
  </Keys>
  <IDP entityID="idp" signatureAlgorithm="RSA_SHA256" signatureCanonicalizationMethod="http://www.w3.org/2001/10/xml-exc-c14n#">
   <SingleSignOnService signRequest="true" validateResponseSignature="true" validateAssertionSignature="false" requestBinding="POST" bindingUrl="http://localhost:8280/auth/realms/Broker/protocol/saml"/>
   <SingleLogoutService validateRequestSignature="true" validateResponseSignature="true" signRequest="true" signResponse="true" requestBinding="POST" responseBinding="POST" postBindingUrl="http://localhost:8280/auth/realms/Broker/protocol/saml" redirectBindingUrl=" http://localhost:8280/auth/realms/Broker/protocol/saml"/>
  </IDP>
 </SP>
</secure-deployment>

代理领域中的身份提供者具有以下配置:

  -SSO service URL: http://localhost:8180/auth/realms/Athens/protocol/saml

SAML客户端具有以下配置:

 -Client ID: http://localhost:8280/auth/realms/Broker
 -Client Protocol: SAML
 -Master SAML processing URL: http://localhost:8080/TestClientKeyCloakSAML/saml

如果我们从客户端登录,我们可以通过经纪人并登录 提供者,但是来自提供者的响应到达了经纪人, 返回此错误:

  10:22:00,529 WARN  [org.keycloak.protocol.saml.SamlService] (default task-20) Unknown saml response.
  10:22:00,529 WARN  [org.keycloak.protocol.saml.SamlService] (default task-20) UserSession is not tagged as logging out.
  10:22:00,529 WARN  [org.keycloak.events] (default task-20) type=LOGOUT_ERROR, realmId=Broker, clientId=null, userId=null,  ipAddress=127.0.0.1, error=invalid_logout_response

问题在于响应正在到达 SAMLService.BindingProtocol.handleSamlResponse,看来 方法仅处理注销响应。

通过Keycloak代理向Keycloak SAML提供程序认证SAML客户端(在Wildfly 11中使用keycloak SAML适配器)进行身份验证需要什么配置?

0 个答案:

没有答案