Kyrodan / KeeAnywhere

A cloud storage provider plugin for KeePass Password Safe
https://keeanywhere.de
MIT License
707 stars 87 forks source link

This app is blocked by Google #438

Open jet76 opened 2 days ago

jet76 commented 2 days ago

Describe the bug This app is blocked This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access.

To Reproduce Steps to reproduce the behavior:

  1. Authenticate Google Drive

Expected behavior Authentication succeeds

Environment:

bknickelbine commented 2 days ago

@jet76 Have you tried removing the third-party app connection in your Google Account, then setting up a GoogleDriveRestricted account in KeeAnywhere? That seemed to work for me, at least while the main issue is being worked on.

Karreg commented 2 days ago

Same issue here. I tried with the GoogleDriveRestricted account, and it's working indeed, but I can't browser my drive content to open the password database. I was not able to find documentation on this rescripted account, should we give the path manually without browsing?

Addendum: for the record, using the path manually without browsing does not work.

AGheller commented 2 days ago

I also encountered the same problem. I switched to using GoogleDriveRestricted. I then downloaded the database in Google Drive from the browser, then opened it with KeepPass and had it saved again from there. With GoogleDriveRestricted you only have access to the files created by the application, so it is normal to no longer see everything else.

Karreg commented 2 days ago

I don't understand what you did... What is the difference between downloading manually to the drive folder, and synchronizing in the drive folder from the drive app? Also, if the file exists, it was not created from the app so it can't be seen either? Also, how does it work with multiple devices? This workaround does only work for a single device setup right?

Karreg commented 2 days ago

In fact the issue already exists in #436 with mode information 👍 This issue should be closed.

JuergenHe commented 2 days ago

I have got the same problem. It worked fine until yesterday. Yes - using restricted is possible. But this is a very cumbersome workaround and not really useful.

AGheller commented 2 days ago

I don't understand what you did... What is the difference between downloading manually to the drive folder, and synchronizing in the drive folder from the drive app? Also, if the file exists, it was not created from the app so it can't be seen either? Also, how does it work with multiple devices? This workaround does only work for a single device setup right?

I mean I save the file again from KeePass, the application is KeyAnywhere and it is the same on every devices.

ItalianInPoland commented 1 day ago

I don't understand what you did... What is the difference between downloading manually to the drive folder, and synchronizing in the drive folder from the drive app? Also, if the file exists, it was not created from the app so it can't be seen either? Also, how does it work with multiple devices? This workaround does only work for a single device setup right?

I mean I save the file again from KeePass, the application is KeyAnywhere and it is the same on every devices.

Hi, I confirm it works.

jonahhes commented 1 day ago

I don't understand what you did... What is the difference between downloading manually to the drive folder, and synchronizing in the drive folder from the drive app? Also, if the file exists, it was not created from the app so it can't be seen either? Also, how does it work with multiple devices? This workaround does only work for a single device setup right?

I mean I save the file again from KeePass, the application is KeyAnywhere and it is the same on every devices.

This won't work for interoperability with other platforms like Keepass2Android though, right?

ItalianInPoland commented 1 day ago

it always works for me. With keeanywhere for PC and Keepass2Android for phones (both owner of the file on gdrive and shared).

meokey commented 1 day ago

I don't understand what you did... What is the difference between downloading manually to the drive folder, and synchronizing in the drive folder from the drive app? Also, if the file exists, it was not created from the app so it can't be seen either? Also, how does it work with multiple devices? This workaround does only work for a single device setup right?

I mean I save the file again from KeePass, the application is KeyAnywhere and it is the same on every devices.

This won't work for interoperability with other platforms like Keepass2Android though, right?

Yes, it seems my Keepass2Android cannot access the file KeeAnywhere uploaded with the GoogleDriveRestricted account mode, even it's the same GDrive account.

GreyMatter-TRTH commented 1 day ago

Made a DropBox account and that's that.

hamidamadani commented 1 day ago

Same problem. It was working as expected till yesterday.

jonahhes commented 1 day ago

@meokey Actually I tied it and for me it does work as @ItalianInPoland described with GDrive restricted.

Steps:

  1. Add GDrive restricted in KeeAnywhere settings (I used the same google acc't as normal GDrive)
  2. Save as... -> Save to cloud drive -> GDrive restricted -> The folder you see is empty, just save it there
  3. You should now see the new file in your GDrive, in the root folder, besides all the other stuff that was there but KeeAnywhere couldn't see
  4. In Keepass2Android select Open file -> Google Drive
  5. You should be able to select the new file because Keepass2Android does not run in restricted mode (yet?)
  6. On Keepass Desktop, you might also have to reopen the file from GDrive restricted.

That's it. Works for now and syncs both ways.

Sepp-PS commented 1 day ago

Since today I have the same problem. I tried first a new reconnect with GDrive, after that with GDrive restricted. But it will not work. Error message with GDrive restricted: Google.Apis.Requests.RequestError Request had insufficient Authentication Scopes. [403] ....

I'm sure that I made the connection correctly. Then I found here the open issue and report my statues as well. Hopefully you can fix the changes from Google with and adjustment of KeeAnywhere. Keepass 2.57.1 KeeAnywhere 2.1.0 Windows 11 23H2

bigboj commented 1 day ago

gdrive:// was working fine until yesterday. All of sudden, one of my PCs started complaining about auth issue and using the cached file, but another one of my PCs was still working, so I went through https://github.com/Kyrodan/KeeAnywhere/issues/393 and unprotect/reprotect'd my key from the working OS, which seemed to fix the issue.

Today, both all of my PCs failed to open the gdrive:// DBs.

Checking KeeAnywhere permissions in Google Account's third-party app list, I can see it only has See, edit, create and delete only the specific Google Drive files that you use with this app. While I cannot recall exactly, but I'm almost sure, yesterday there was See, edit, create and delete all of your Google Drive files permissions in addition.

Eventually, I accepted the only option is to save my file as gdrive-r:// (Google Drive restricted), however it comes with two issues: 1., (less serious) - it can only save to root directory. I'm just not comfortable with this. 2., (much more serious - may affect many users) - Sharing the file with other google users does not work. (as far as I was able to try all I could). This issue doesn't seem to have any solution or even workaround.

I also use KeePass2Android, which is still working fine (yet?). I can open any of my kdbx files either directly, using "Google Drive" or "Google Drive (KP2A files)" storage types, or by using the system file picker and navigate to files hosted by my local Google Drive app installed. (Also noted, KP2A still has the See, edit, create and delete all of your Google Drive files permission)

hamidamadani commented 22 hours ago

According to another topic on the net, I just checked "Use limited drive access" in the configuration dialog of "KPsync" and the problem resolved.

Sepp-PS commented 22 hours ago

@hamidamadani : Your are right and I have tested it as well successfully.

Sorry, but it was for me in the first step not clear what you mean and in that view I will write a little bit more with my words: To solve the problem you must use in KeeAnywhere the GDrive restricted option. In the web page you must enable the check mark for user only GDrive file synchronization (or similar - I have no english text) Then you must save your database as a new file in GDrive restricted. You can't found your own first file.

But I'm confused: I can't found the file in my GDrive folder on my PC. So for me it is not clear if I can backup it directly with my other solution. I thinking I don't know the concept behind and must play a little bit more.

But in each case: It will be nice if some can solve the primary problem and we get the "normal" feature again.

Sepp-PS commented 9 hours ago

An Update from my tests. I don't need anymore the "normal" feature. The restricted version work as well. Today new files where I have created with KeeAnywhere shown me latest after 1 minute in the local GDrive Sync folder. For me: Problem solved.