On 5 Oct 2023, at 9:26, Aki Tuomi wrote:

> 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?

It is already forced :-)

Christian
>
> 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


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