I have Roundcube and Dovecot2 setup to authenticate against Keycloak using the XOAUTH2 method, as follows:

introspection_url = https://[...]/realms/[...]/protocol/openid-connect/token/introspect
introspection_mode = post
username_attribute = email
client_id = [...]
client_secret = [...]
tls_ca_cert_file = /etc/ssl/certs/ca-certificates.crt

Since upgrading to 2.3.21 XOAUTH2 fails to authenticate with:

dovecot: auth: Error: oauth2([...],[...],<[...]>): oauth2 failed: Introspection failed: No username returned

WARN [org.keycloak.events] (executor-thread-45) type=INTROSPECT_TOKEN_ERROR, realmId=[...], clientId=null, userId=null, ipAddress=[...], error=client_not_found WARN [org.keycloak.events] (executor-thread-45) type=INTROSPECT_TOKEN_ERROR, realmId=[...], clientId=null, userId=null, ipAddress=[...], error=invalid_request, detail='Authentication failed.'

Downgrading to 2.3.20 fixes the issue.

I believe this change is to blame:

lib-oauth2: Dovecot would send client_id and client_secret as POST parameters to the introspection server. These need to be optionally in Basic auth instead.

Is there anything I should change in my Keycloak/Dovecot config or is this a bug?
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to