Ok, i guess the problem is that it's somehow thinking it got everything already 
from the tokeninfo endpoint. Can you try enabling forced introspection?

Aki

> On 05/10/2023 10:13 EEST Christian Rößner <li...@mlserv.org> wrote:
> 
>  
> > Am 05.10.2023 um 09:08 schrieb Christian Rößner <li...@mlserv.org>:
> > 
> > Hi,
> > 
> >> Am 05.10.2023 um 08:22 schrieb Aki Tuomi via dovecot <dovecot@dovecot.org>:
> >> 
> >> You seem to be using userinfo and not introspect endpoint in your 
> >> configuration. Does userinfo return active too?
> > 
> > tokeninfo_url = https://oauth.authserv.me:4444/userinfo?access_token=
> > introspection_url = https://oauth.authserv.me:4445/admin/oauth2/introspect
> > 
> Here is an example of the userinfo results (I have a test client for this):
> 
> ```json
> {
> "OAuth2Token": {
> "access_token": "ory_at_***HIDDEN***",
> "token_type": "bearer",
> "refresh_token": "ory_rt_***HIDDEN***",
> "expiry": "2023-10-05T10:09:52.394731+02:00"
> },
> "IDTokenClaims": {
> "at_hash": "6UQR9dqFoaH1a-ztuZsmfg",
> "aud": [
> "718f4a52-e1a8-431d-9146-15809cfe3240"
> ],
> "auth_time": 1696489790,
> "dovecot_mailbox_path": 
> "sdbox:~/sdbox:VOLATILEDIR=/srv/vmail/volatile/%2.256Nu/%Lu:LISTINDEX=/srv/vmail/listindex/%2.256Nu/%Lu/dovecot.list.index",
> "dovecot_user": "de10...@srvint.net",
> "email": "christian@roessner.email",
> "exp": 1696493393,
> "family_name": "Rößner",
> "given_name": "Christian",
> "groups": [
> "admin",
> "user",
> "superadmin",
> "familie",
> "kanzlei"
> ],
> "iat": 1696489793,
> "iss": "https://oauth.authserv.me:4444";,
> "jti": "***",
> "name": "Christian Rößner",
> "nickname": "croessner",
> "nonce": "***",
> "preferred_username": "croessner",
> "rat": 1696489779,
> "sid": "***",
> "sub": "977c6572-d017-103b-836b-b5fc6e126160"
> }
> }
> ```
> 
> I do not see something like an active flag.
> 
> Christian 
> 
> >> 
> >> Aki
> >> 
> >>> On 04/10/2023 20:05 EEST Christian Rößner via dovecot 
> >>> <dovecot@dovecot.org> wrote:
> >>> 
> >>> 
> >>> Hi,
> >>> 
> >>> well I fear there is still something wrong.
> >>> 
> >>>> Am 04.10.2023 um 15:05 schrieb Aki Tuomi via dovecot 
> >>>> <dovecot@dovecot.org>:
> >>>> 
> >>>>> 
> >>>>> On 04/10/2023 16:02 EEST Christian Rößner <li...@mlserv.org> wrote:
> >>>>> 
> >>>>> 
> >>>>> Hi,
> >>>>> 
> >>>>>> Am 04.10.2023 um 14:31 schrieb Aki Tuomi <aki.tu...@open-xchange.com>:
> >>>>>> 
> >>>>>>> 
> >>>>>>> On 04/10/2023 15:13 EEST Christian Rößner via dovecot 
> >>>>>>> <dovecot@dovecot.org> wrote:
> >>>>>>> 
> >>>>>>> 
> >>>>>>> Hi,
> >>>>>>> 
> >>>>>>>> Am 04.10.2023 um 12:56 schrieb Arjen de Korte 
> >>>>>>>> <build+dove...@de-korte.org>:
> >>>>>>>> 
> >>>>>>>> Citeren Christian Rößner via dovecot <dovecot@dovecot.org>:
> >>>>>>>> 
> >>>>>>>>> Hi,
> >>>>>>>>> 
> >>>>>>>>> I use Roundcube with OIDC. Everything works fine in Dovecot 2.3.20, 
> >>>>>>>>> but broke in 2.3.21. Downgrading to 2.3.20 makes it work again, so 
> >>>>>>>>> it is introduced in the newer release.
> >>>>>>>>> 
> >>>>>>>>> Error (2.3.21):
> >>>>>>>>> ```
> >>>>>>>>> Oct  4 11:03:57 mx dovecot[558531]: imap-login: Disconnected: 
> >>>>>>>>> Connection closed (client didn't finish SASL auth, waited 1 secs): 
> >>>>>>>>> user=<christian@roessner.email>, 
> >>>>>>>>> orig_user=<christian@roessner.email>, method=XOAUTH2, 
> >>>>>>>>> rip=192.168.0.4, lip=192.168.0.2, TLS, TLSv1.3 with cipher 
> >>>>>>>>> TLS_AES_256_GCM_SHA384 (256/256 bits)
> >>>>>>>>> ```
> >>>>>>>>> 
> >>>>>>>>> Here is an example with 2.3.20:
> >>>>>>>>> 
> >>>>>>>>> Success (2.3.20):
> >>>>>>>>> ```
> >>>>>>>>> Oct  4 11:17:21 mx dovecot[889914]: imap-login: Login: 
> >>>>>>>>> user=<christian@roessner.email>, 
> >>>>>>>>> orig_user=<christian@roessner.email>, method=XOAUTH2, 
> >>>>>>>>> rip=192.168.0.4, lip=192.168.0.2, mpid=891874, TLS, TLSv1.3 with 
> >>>>>>>>> cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
> >>>>>>>>> ```
> >>>>>>>> 
> >>>>>>>> Searching the archives might give a lead to what's going on (and a 
> >>>>>>>> possible workaround):
> >>>>>>>> 
> >>>>>>>> https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/thread/RR2GXLOAS6U3MZCQCA4T4S6QXCRV5GST
> >>>>>>> 
> >>>>>>> I get a different error from RC:
> >>>>>>> 
> >>>>>>> ```
> >>>>>>> Oct 04 12:08:48 node1 8868c38d7990[158494]: errors: <48ea0f68> IMAP 
> >>>>>>> Error: Login failed for christian@roessner.email against 
> >>>>>>> mail.roessner-net.de from 192.168.32.1 (X-Real-IP: 
> >>>>>>> 2003:a:a05:a600:858:7851:547f:8aed,X-Forwarded-For: 
> >>>>>>> 2003:a:a05:a600:858:7851:547f:8aed). AUTHENTICATE XOAUTH2: A0001 NO 
> >>>>>>> [AUTHENTICATIONFAILED] Authentication failed. in 
> >>>>>>> /var/www/html/program/lib/Roundcube/rcube_imap.php on line 211 (GET 
> >>>>>>> /index.php/login/oauth?code=ory_ac_L5_NrO7EjgIccmV-_Tq1Y1_vls6i9NS8lbO7mHYwVeQ.maAkpsqdG95hkLutiDi4aB2KDPvj_pQ65qD-tuY9zBI&scope=openid+offline_access+profile+email+dovecot&state=J3WpRsBcOrnw)
> >>>>>>> ```
> >>>>>>> 
> >>>>>>> And changing the introspection_url parameter did not change anything.
> >>>>>>> 
> >>>>>>> Thanks in advance
> >>>>>>> 
> >>>>>>> Christian Rößner
> >>>>>>> -- 
> >>>>>> 
> >>>>>> Can you provide auth_debug=yes logs?
> >>>>> 
> >>>>> Turning n debug showed the problem:
> >>>>> 
> >>>>> ```
> >>>>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>>>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): oauth2 
> >>>>> active_attribute "active" is not present in the oauth2 server's response
> >>>>> ```
> >>>>> 
> >>>>> In earlier configuration tests I had an 'active' claim. Dovecot prior 
> >>>>> 2.3.21 seems to had ignored a missing field, while newer version expect 
> >>>>> it to be present if configured.
> >>>>> 
> >>>>> Thanks.
> >>>>> 
> >>>>> Christian Rößner
> >>>>> -- 
> >>>> 
> >>>> Yes, this was a bug that was fixed, that the active attribute is now 
> >>>> actually checked.
> >>> 
> >>> I thought I had mistakenly removed the active field, but I did not:
> >>> 
> >>> ```
> >>> curl -X POST -d 'scope=email&token=****HIDDEN***' 
> >>> https://oauth.authserv.me:4445/admin/oauth2/introspect
> >>> 
> >>> {"active":true,"scope":"openid profile email groups dovecot offline 
> >>> offline_access","client_id":"718f4a52-e1a8-431d-9146-15809cfe3240","sub":"977c6572-d017-103b-836b-b5fc6e126160","exp":1696442299,"iat":1696438699,"nbf":1696438699,"aud":[],"iss":"https://oauth.authserv.me:4444","token_type":"Bearer","token_use":"access_token"}
> >>> ```
> >>> 
> >>> As you can see, the 'active' field exists, but Dovecot expects it to be a 
> >>> claim, which it is not.
> >>> 
> >>> From auth_debug:
> >>> 
> >>> ```
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): Making 
> >>> token validation lookup to 
> >>> https://oauth.authserv.me:4444/userinfo?access_token=
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): Token 
> >>> validation succeeded
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field auth_time
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field dovecot_mailbox_path
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field dovecot_user
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field email
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field family_name
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field given_name
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field iat
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field iss
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field name
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field nickname
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field preferred_username
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field rat
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): 
> >>> Processing field sub
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: Debug: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): oauth2 
> >>> active_attribute "active" is not present in the oauth2 server's response
> >>> Oct  4 14:50:31 mx dovecot[1302421]: auth: 
> >>> oauth2(christian@roessner.email,192.168.0.4,<3kfgc+MGeuXAqAAE>): oauth2 
> >>> failed: Token is not valid: Missing active_attribute from token
> >>> ```
> >>> 
> >>> Is this a bug or does the active field shown above nothing have to do 
> >>> with the active field in the dovecot configuration?
> >>> 
> >>> I would expect the field shown above.
> >>> 
> >>> Thanks in advance
> >>> 
> >>> Christian Rößner
> >>> -- 
> >>> Rößner-Network-Solutions
> >>> Zertifizierter ITSiBe / CISO
> >>> Karl-Bröger-Str. 10, 36304 Alsfeld
> >>> Fax: +49 6631 78823409, Mobil: +49 171 9905345
> >>> USt-IdNr.: DE225643613, https://roessner.website
> >>> PGP fingerprint: 658D 1342 B762 F484 2DDF 1E88 38A5 4346 D727 94E5 
> >>> 
> >>> _______________________________________________
> >>> dovecot mailing list -- dovecot@dovecot.org
> >>> To unsubscribe send an email to dovecot-le...@dovecot.org
> >> _______________________________________________
> >> dovecot mailing list -- dovecot@dovecot.org
> >> To unsubscribe send an email to dovecot-le...@dovecot.org
> > 
> > Christian Rößner
> > -- 
> > Rößner-Network-Solutions
> > Zertifizierter ITSiBe / CISO
> > Karl-Bröger-Str. 10, 36304 Alsfeld
> > Fax: +49 6631 78823409, Mobil: +49 171 9905345
> > USt-IdNr.: DE225643613, https://roessner.website
> > PGP fingerprint: 658D 1342 B762 F484 2DDF 1E88 38A5 4346 D727 94E5 
> 
> Christian Rößner
> -- 
> Rößner-Network-Solutions
> Zertifizierter ITSiBe / CISO
> Karl-Bröger-Str. 10, 36304 Alsfeld
> Fax: +49 6631 78823409, Mobil: +49 171 9905345
> USt-IdNr.: DE225643613, https://roessner.website
> PGP fingerprint: 658D 1342 B762 F484 2DDF 1E88 38A5 4346 D727 94E5
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to