What's the current state of XMPP and OpenID Connect? My web search returned that ejabberd is still considering if and how to implement and Prosody has experimental alpha-stage support via a module. I couldn't find anything conclusive in regards to XMPP clients. What's with Gajim(?) and Conversations? Or other clients? Are there any web clients supporting OIDC?
#jabber #xmpp #oidc #openidconnect
Daniel Gultsch
in reply to Fluchtkapsel • • •the answer depends a bit on what you are trying to achieve. Authenticate against a third party? Throw the password away and log in with a session cookie? Give access to third parties to data on the XMPP server?
We do the session tokens with FAST.
Prosody has some support for giving third parties access to (scoped) data on the XMPP server and clients (Conversations and Gajim) aren't involved here.
Fluchtkapsel
in reply to Daniel Gultsch • • •Daniel Gultsch
in reply to Fluchtkapsel • • •Authenticating with oauth with a third party is not currently available. @mattj probably has the most insights into what steps we made into that direction yet.
Part of the problem is that we loose nice security features like channel binding by using web stuff.
Fluchtkapsel
in reply to Daniel Gultsch • • •Daniel Gultsch
in reply to Fluchtkapsel • • •@mattj Channel Binding ensures that client and server are in the same TLS session by mixing in unique stuff from the session into the password handshake. This is basically MITM protection for the TLS layer.
For more information the search keywords would be: SASL, SCRAM and Channel binding. The XEP is just negotiation and boring wrt the security aspects.
Daniel Gultsch
in reply to Daniel Gultsch • • •@mattj there is also this talk in German that explains my motivation behind my push towards channel binding:
gultsch.video/w/qzRh2nLk7EXdmq…
Daniel Gultsch
2023-12-16 15:57:35
Fluchtkapsel
in reply to Daniel Gultsch • • •@daniel @mattj Ach, das war das Meetup, wo ich kommen wollte, aber leider krank war. 😄
Back to English: For a few years now I want to get some contact again to XMPP because the IM landscape is too dependent on Big Tech, and Matrix … well, it has its use-case, I guess. I'd rather onboard non-tech people to XMPP than to Matrix.
I understand your intention re channel binding. I heard of the jabber.ru case. I'm still not entirely sure, though, OIDC would block channel binding. AFAIU it's the SCRAM part that might get disrupted because there's no password involved in authentication anymore, just a token (or two?). The connection between client and server would be untouched, though.
muppeth
in reply to Daniel Gultsch • • •@daniel @mattj Sure but if someone already uses external auth, being able to add xmpp to the stack would bring extra security features like global 2FA.
Here is my use case. I use LDAP for authentication and currently in the process of adding keycloak for oidc. XMPP at this point needs to stay with LDAP only, while it would be an added feature for me if it would support openid
Daniel Gultsch
in reply to muppeth • • •@muppeth @mattj Sticking with LDAP would at least on paper leave the door open for channel binding.
2FA could be added to XMPP w/o involving web stack stuff.
I'm not fundamentally opposed to oauth. I'm just pointing out that the use case of oauth is convenience rather than added security. If we implement it wrong me might even loose security (channel binding).