[keycloak-user] keycloak 5.0 integration with FranceConnect (IDP provider) no longer working

cedric@couralet.eu cedric at couralet.eu
Mon Apr 15 01:43:27 EDT 2019


Hi,

How are you integrating the two idps ? The client_session_state parameter seems added as an hack when using KeycloakOIDCIdentityProvider ([1]), but this was added a long time ago. I think this provider should only be used when the 2 idps are keycloak, you may want to tyry the generic OIDCIdentityProvider, which does not add this param.
But, there is an issue with logout [2]  and signature validation . Which is why we had to developed our own keycloak extension for france connect [3]. I just tried it with keycloak 5.0.0 without problem.

(and you may want to change your account information with france connect (client_secret and client_id), these should not be public)

Cédric Couralet

[1] https://github.com/keycloak/keycloak/blob/c34c0a3860fa3c6de5963eb56f431696e826404c/services/src/main/java/org/keycloak/broker/oidc/KeycloakOIDCIdentityProvider.java#L134
[2] https://issues.jboss.org/browse/KEYCLOAK-7209
[3] https://github.com/InseeFr/Keycloak-FranceConnect

Le Vendredi, Avril 12, 2019 17:16 CEST, Olivier Rivat <orivat at janua.fr> a écrit: 
 
> Hi,
> 
> I am testing the integration of keycloak  to   FranceConnect (French IDP 
> provider).
> It is working fine with keycloak 4.81 (I have just tested it today), but 
> it is failing with keycloak 5.0.
> 
> The difference between the both is that keycloak 5.0 is adding 
> internally client_session_state on the idp request.
> But FranceConnect idp is not recognizing client_session_state.
> 
> What could be done to overcome this issue, as the IDP has not changed.
> Is it possibel to disbale this flag (client_session_state) so it does 
> not appear in the log of KC 5.0 ?
> 
> Please advise what could be done to have it working again.
> 
> 
> Regards,
> 
> Olivier Rivat
> 
> 
> 
> ==============================================================================
> 
> 
> 
> 
> 
> 
> Traces are as follows between the both:
> 
> Keycloak 4.83 trace (OK)
> 
> 
> 2019-04-12 17:06:04,250 DEBUG [org.apache.http.wire] (default task-11) 
> http-outgoing-3 >> "[\r][\n]"
> 2019-04-12 17:06:04,250 DEBUG [org.apache.http.wire] (default task-11) 
> http-outgoing-3 >>
> code=de5db40072c4d4a146f46330e7f85e38610d0943e95e9cb6ac73d66bd672205a&
> grant_type=authorization_code&
> client_secret=f6495844366b0a6c44fb2fffb4764ee732d134f4a7a8321863983473801c26db&
> redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fauth%2Frealms%2Fdemo%2Fbroker%2FFranceConnect%2Fendpoint&
> client_id=db14bd4bf83bf764076a25f664ca6750a32c2cd18be6ba43806d80cb2a3745b6
> 2019-04-12 17:06:04,308 DEBUG [org.apache.http.wire] (default task-11) 
> http-outgoing-3 << "HTTP/1.1 200 OK[\r][\n]"
> 2019-04-12 17:06:04,308 DEBUG [org.apache.http.wire] (default task-11) 
> http-outgoing-3 << "Server: nginx[\r][\n]"
> 2019-04-12 17:06:04,309 DEBUG [org.apache.http.wire] (default task-11) 
> http-outgoing-3 << "Date: Fri, 12 Apr 2019 15:05:57 GMT[\r][\n]"
> 2019-04
> 
> 
> 
> 
> Keycloak 5.00 trace (Not working)
> 
> 6:01:00,889 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 >> "
> code=326df10aabf29c322ca83a2a20b7ffc8c3dcab1ce150b62e99433b3a11e78e81&
> grant_type=authorization_code&
> client_session_state=n%2Fa&
> client_secret=f6495844366b0a6c44fb2fffb4764ee732d134f4a7a8321863983473801c26db&
> redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fauth%2Frealms%2Fdemo%2Fbroker%2FFranceConnect%2Fendpoint&
> client_id=db14bd4bf83bf764076a25f664ca6750a32c2cd18be6ba43806d80cb2a3745b6"
> 16:01:00,966 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "HTTP/1.1 400 Bad Request[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "Server: nginx[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "Date: Fri, 12 Apr 2019 14:00:53 GMT[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "Content-Type: application/json; charset=utf-8[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "Content-Length: 104[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "Connection: keep-alive[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "ETag: W/"68-1YcGPHfKrHgT2FZkgQmpNQ"[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "Vary: Accept-Encoding[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "[\r][\n]"
> 16:01:00,967 DEBUG [org.apache.http.wire] (default task-10) 
> http-outgoing-0 << "{"status":"fail","message":"The following fields are 
> not supposed to be present : client_session_state"}"
> 1
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> 
> 
> <http://www.janua.fr/images/logo-big-sans.png><http://www.janua.fr/images/LogoSignature.gif>
> 
> 	<http://www.janua.fr/images/6g_top.gif>
> 	
> Olivier Rivat
> CTO
> orivat at janua.fr <mailto:dchikhaoui at janua.fr>
> Gsm: +33(0)682 801 609
> Tél: +33(0)489 829 238
> Fax: +33(0)955 260 370
> http://www.janua.fr <http://www.janua.fr/>
> 	<http://www.janua.fr/images/6g_top.gif>
> 
> 
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user




More information about the keycloak-user mailing list