nextcloud / twofactor_gateway

🔑 Second factor provider using an external messaging gateway (SMS, Telegram, Signal)
GNU Affero General Public License v3.0
109 stars 63 forks source link

XMPP support? #96

Open poVoq opened 6 years ago

poVoq commented 6 years ago

Would be nice to have support for XEP-0070 https://xmpp.org/extensions/xep-0070.html

Some relevant links: https://demo.agayon.be/ https://blog.agayon.be/xmpp_auth_django_demo.html https://git.kingpenguin.tk/chteufleur/HTTPAuthentificationOverXMPP

Not sure with XMPP PHP library works best, but there are some options: https://github.com/zorn-v/xmpp https://github.com/tecnocat/xmpphp (see also other forks) https://github.com/sandfoxme/xmpp-enabled (includes an updated version that supposedly works well)

Thanks for considering.

Neustradamus commented 10 months ago

Any progress on this request?

It has been requested here too:

stokito commented 2 months ago

The link to HTTPAuthentificationOverXMPP is broken but here is a GitHub mirror (may be outdated) https://github.com/chteufleur/HTTPAuthentificationOverXMPP

Basically the feature requires for an XMPP library which is anyway would be good to add for many other features. But maybe this can be solved by a SMTP to XMPP or HTTP to XMPP requests. This should be possible with the plugins for XMPP servers with mod_http_post.

Maybe XMPP BOSH (i.e. HTTP long pooling) or WebSockets can be used directly without enabling any plugins on a XMPP server. I'll try to dig into this later but maybe someone here can join. Basically if all XMPP servers can be used with a plain HTTP to send or receive requests that should lower the bar for integration for some simplest tasks like send a notification or get messages. The Telegram API is also based on the long pooling BTW.

Also, I didn't studied the XEP itself but I didn't get how it's principally differs from the usual Data Forms. But the XMPP auth would be a huge improvement because this can be a good alternative for a federated OAuth OIDC for a basic needs. The Prosody XMPP server you can install on your router and use by the whole family and this can make it potentially more widespread.