ZZZConsulting / WebDavMailRuCloud

The WebDAV emulator for RU-clouds: Cloud.Mail.Ru & Disk.Yandex.Ru
MIT License
9 stars 1 forks source link

Не пашет Аутентификация Мейл Ру #1

Closed OllanTaytambur closed 2 weeks ago

OllanTaytambur commented 10 months ago

Написано что сломаная год назад аутетификация якобы пофикшена. Так вот ничего подобного не наблюдается. Все как было так и осталось. Скачал и аутентификатор и эмулятор результат тот же - неверный пароль.

WebDAVCloudMailRu: WebDAV emulator for RU-clouds: Cloud.Mail.Ru & Disk.Yandex.Ru v.1.14.2.1 MIT License, Copyright (c) 2023 YaR229 and Contributors [1]: OS Version: Microsoft Windows NT 10.0.19044.0 [1]: CLR: .NET 8.0.1 [1]: User interactive: True [1]: Version: 1.14.2.1 [1]: Using proxy: [1]: Max listening threads count: 5 [1]: Max cloud connections count: 10 [1]: Cloud server response timeout: 100 sec [1]: Cloud download/upload timeout: 300 sec [1]: Wait for 100-Continue timeout: 1 sec [1]: Cloud & protocol: defined by login and the rest parameters [1]: Cloud instance (server+login) expiration timeout: 30 min [1]: Folder cache expiration timeout: 30 sec [1]: List query folder depth: 1 [1]: Use locks: False [1]: Support links in /item.links.wdmrc: True [1]: Use deduplicate: False [1]: Start as service: False [1]: WebDAV server running at http://127.0.0.1:801/ .NET TP Worker: PROPFIND:http://127.0.0.1:801/:127.0.0.1:801 - Start processing .NET TP Worker: OAuth: authorizing.

.NET TP Worker: Error while handling request (method=PROPFIND, url=http://127.0.0.1:801/ Unauthorized: OAuth: Error Code=3, Value=invalid username or password, Description=username or password is incorrect .NET TP Worker: PROPFIND:http://127.0.0.1:801/:127.0.0.1:801 - Start processing .NET TP Worker: OAuth: authorizing.

.NET TP Worker: Error while handling request (method=PROPFIND, url=http://127.0.0.1:801/ Unauthorized: OAuth: Error Code=3, Value=invalid username or password, Description=username or password is incorrect

OllanTaytambur commented 10 months ago

У меня ощущение что эмулятор не видит атентификатор и не взаимодействует с ним. Как это исправить? Там где то в фонфигах нужно путь до него прописывать?

OllanTaytambur commented 10 months ago

Прописал в конфиге правильный пароль который тока что сгенерио но всеравно не видит аутентификатор

 <BrowserAuthenticator
      Url="http://localhost:54321/"
      Password="d03cf6ad-82d0-4a83-be58-b14e9e803f4c"
      CacheDir=""
      />
ZZZConsulting commented 1 month ago

Ситуация тут до мистического странная выходит. Эмулятор после починки в прошлом году с моей основной учетной записью Mail.ru как работал, так и работает до сих пор. Без нареканий. А вот с другими учетными записями, сколько не пробовал, не работает, хоть ты тресни. Перепробовал много разного.

BrowserAuthenticator в ручном режиме хоть и может зайти в Облако Mail.ru, но эмулятором для аутентификации не используется, т.к. для Mai.ru используются токены для, а BrowserAuthenticator нужен для получения cookie аутентификации. Переделка BrowserAuthenticator под токены ни к чему не привела - токен есть, содержимое облачного диска показывается, но ни скачать, ни загрузить не выходит. Затык.

Но это еще не все. Подключение WebDav Облака Mail.ru напрямую, без использования эмулятора, работает! Надо только правильно настроить (Справка по настройке), главное:

По всему выходит, что для бесплатных учетных записей WebDav сделали доступным. Надолго ли - не известно. Если шифрование эмулятора не требуется, то прямое подключение WebDav Облака Mail.ru без использования эмулятора предпочтительнее.

trcpman commented 1 month ago

Добрый день, действительно внезапно заработал webdav от mail.ru напрямую и все бы ничего, но нехватает шифрования и прозрачного разделения больших файлов. PS Аутентификация из программы WebDavMailRuCloud действительно не пашет. В моем случае перестала работать неделю назад.

ZZZConsulting commented 2 weeks ago

trcpman,

Обнаружена некоторая особенность с Mail.ru, прошу проверить и написать результате, если есть такая возможность. Чтобы, если сработает, разместить в инструкции (для последующих поколений ;-)


Первое, для успешного доступа в качестве пароля нужно использовать Пароль Приложения (Application Password), создаваемый тут: https://account.mail.ru/user/2-step-auth/passwords

Это давно известно, сомнительно, что кто-то этого не знает, но на всякий случай требует упоминания, а то бывает... К примеру, поиск по аналогичной тематике про rclone выдает текст, в котором указано, что обязателен основной пароль от учетной записи, что на самом деле не так, - обязателен как раз Пароль Приложения.

Второе, Пароль Приложения нужно создать новый, выбрав опцию

Полный доступ к Почте, Облаку, Календарю Все протоколы

image

То есть, Пароль Приложения должен быть не только с доступом к WebDav, но с доступом ко всему. Вероятно в процессе аутентификации используется сервис, который по мнению Mail.ru не относится к WebDav, что приводит к отказу.

Ну, а дальше, как обычно - входить через Эмулятор с логином (email) и паролем (только что созданный Пароль Приложения).

trcpman commented 2 weeks ago

К сожалению не получается... WebDAVCloudMailRu: WebDAV emulator for RU-clouds: Cloud.Mail.Ru & Disk.Yandex.Ru v.1.24.10.31

[7]: PROPFIND:http://127.0.0.1:801/:127.0.0.1:801 - Start processing [7]: OAuth: authorizing.

[7]: Requesting new meta server

[7]: Unexpected exception while handling request (method=PROPFIND, url=http://127.0.0.1:801/, source=127.0.0.1:801 System.AggregateException: One or more errors occurred. ---> System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at YaR.Clouds.Base.Requests.BaseRequest2.<MakeRequestAsync>d__9.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Lazy1.CreateValue() at System.Lazy1.LazyInitValue() at YaR.Clouds.Common.Cached1.RefreshValueIfNeeded() at YaR.Clouds.Base.Repos.MailRuCloud.ShardManager..ctor(SemaphoreSlim connectionLimiter, IRequestRepo repo) at YaR.Clouds.Base.Repos.MailRuCloud.WebBin.WebBinRequestRepo..ctor(CloudSettings settings, IBasicCredentials credentials, AuthCodeRequiredDelegate onAuthCodeRequired) at YaR.Clouds.Base.Repos.RepoFabric.Create() at YaR.Clouds.Cloud..ctor(CloudSettings settings, Credentials credentials) at YaR.Clouds.WebDavStore.CloudManager.CreateCloud(HttpListenerBasicIdentity identity) at YaR.Clouds.WebDavStore.CloudManager.Instance(IIdentity identity) at YaR.Clouds.WebDavStore.StoreBase.LocalStore.<GetItemAsync>d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at NWebDav.Server.Handlers.PropFindHandler.<HandleRequestAsync>d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at NWebDav.Server.WebDavDispatcher.<DispatchRequestAsync>d__6.MoveNext() ---> (Inner Exception #0) System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at YaR.Clouds.Base.Requests.BaseRequest2.d__9.MoveNext()<---

ZZZConsulting commented 2 weeks ago

Хочется верить, что проблема в новой исправлена. Проверьте, пожалуйста.

ZZZConsulting commented 2 weeks ago

Кстати, с параметром --disable-links ошибки бы не было. Если shared folder and links с файлом item.links.wdmrc совсем не используются, их можно выключить параметром --disable-links, это незначительно, но все же добавит немного скорости - будет меньше проверок ненужных.

trcpman commented 2 weeks ago

Проблема исправлена. Спасибо.

ZZZConsulting commented 2 weeks ago

Ну вот и ладушки! Закрываю Issue.