Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support strong authentication #3146

Open
8 of 19 tasks
temuccio opened this issue May 22, 2020 · 13 comments
Open
8 of 19 tasks

Support strong authentication #3146

temuccio opened this issue May 22, 2020 · 13 comments

Comments

@temuccio
Copy link

temuccio commented May 22, 2020

Feature Request

Include support strong authentication alternative to PLAIN and LOGIN such us:

Summary

In my case I have try to connect mail with my server that support CRAM-MD5 and DIGEST-MD5 without positive response.
It is interesting to include this support such as most important clients of mail for extend the usage.
I'm happy to collaborate to implement this Feature.
Have nice day.

References

@ChristophWurst
Copy link
Member

Adding this to the end of our roadmap

@ChristophWurst
Copy link
Member

I'm happy to collaborate to implement this Feature.

Sounds good :) I assume the Horde libs can already handle this. So we should only need a new structure for the authentication method (new attribute inthe accounts table?) and a switch in the user interface.

@temuccio
Copy link
Author

Hi @ChristophWurst, sorry for my delay.
I have check Horde libs and it support this authentication.
For your interested, I have check that in:
vendor/pear-pear.horde.org/Horde_imap_Client/Horde/Imap/Client/Socket/Pop3.php
and
vendor/pear-pear.horde.org/Horde_Smtp/Horde/Smtp.php
is implemented the strong authentication.
As you annunced, it is necessary to add a "select" for decide what is the method of authetication.
How you pass the parameter to Hord?

@ChristophWurst
Copy link
Member

new attribute inthe accounts table

basically that. and then just read it through a getter on the account class in the IMAP client factory.

@kesselb
Copy link
Contributor

kesselb commented Jan 19, 2021

Hello 👋, looked into this issue today.

CRAM-MD5 / DIGEST-MD5: Is already supported. If the connection to the imap server is unencrypted and CRAM-MD5 or DIGEST-MD5 are supported.

XOAUTH2: Would be nice for Gmail users. Code to use XOAUTH2 for authentication to IMAP and SMTP is there but the process to obtain an access token via OAUTH needs to be done. I guess that's somehow similar to https://github.com/nextcloud/integration_google. Additional information: https://developers.google.com/gmail/imap/xoauth2-protocol / https://developers.google.com/identity/protocols/oauth2.

OAUTHEBEARER: Similar to XOAUTH2 but not supported yet by Horde.

SCRAM-SHA-1: #4377

GSSAPI: Roundcube seems to support it: https://github.com/roundcube/roundcubemail/blob/65c9d08e0146692ead7107d839fa06e52ed1216e/program/lib/Roundcube/rcube_imap_generic.php#L650-L723. Some extension for PHP is required.

@CL-Jeremy

This comment has been minimized.

@ChristophWurst

This comment has been minimized.

@CL-Jeremy

This comment has been minimized.

@ChristophWurst
Copy link
Member

XOAUTH2: Would be nice for Gmail users. Code to use XOAUTH2 for authentication to IMAP and SMTP is there but the process to obtain an access token via OAUTH needs to be done. I guess that's somehow similar to https://github.com/nextcloud/integration_google. Additional information: https://developers.google.com/gmail/imap/xoauth2-protocol / https://developers.google.com/identity/protocols/oauth2.

#6819

@Neustradamus
Copy link

In more SCRAM-SHA-1, I request SCRAM-SHA-1-PLUS, SCRAM-SHA-256, SCRAM-SHA-256-PLUS, SCRAM-SHA-512, SCRAM-SHA-512-PLUS, SCRAM-SHA3-512, SCRAM-SHA3-512-PLUS.

Note: CRAM-MD5 and DIGEST-MD5 are unsecure.


Please read all:

20 November 2008: CRAM-MD5 to Historic:

29 June 2017: CRAM-MD5 to Historic:

July 2011: RFC6331: Moving DIGEST-MD5 to Historic:

August 2021: RFC9051: Internet Message Access Protocol (IMAP) - Version 4rev2:
"Replaced DIGEST-MD5 SASL mechanism with SCRAM-SHA-256. DIGEST-MD5 was deprecated."

I add same about SCRAM-MD5.

There are now:

  • July 2010: RFC5802: Salted Challenge Response Authentication Mechanism (SCRAM): SASL and GSS-API Mechanisms: https://tools.ietf.org/html/rfc5802 (SCRAM-SHA-1 and SCRAM-SHA-1-PLUS)
  • July 2010: RFC5803: Lightweight Directory Access Protocol (LDAP) Schema for Storing Salted: Challenge Response Authentication Mechanism (SCRAM) Secrets: https://tools.ietf.org/html/rfc5803
  • November 2015: RFC7677: SCRAM-SHA-256 and SCRAM-SHA-256-PLUS: Simple Authentication and Security Layer (SASL) Mechanisms: https://tools.ietf.org/html/rfc7677

Soon:

@ChristophWurst
Copy link
Member

Thanks a lot for the links @Neustradamus. I've updated the list at #3146 (comment) to reflect the current state.

@dm-msk
Copy link

dm-msk commented Feb 16, 2024

Hello. I need GSSAPI support. When are you planning to add this feature?

@ChristophWurst
Copy link
Member

Hello. I need GSSAPI support. When are you planning to add this feature?

There are no plans right now. https://nextcloud.com/contribute/ or https://nextcloud.com/enterprise/ could be two options to get this feature earlier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants