-
Notifications
You must be signed in to change notification settings - Fork 46
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
Provide custom SSE algorithm/user secret #524
Comments
I have added an implementation of this in the PR above. With this implementation, the third party app only needs to provide the secret key for the given user. This reduces the effort to implement the feature while it also gives the passwords app the option to do some quality check on the key itself and insure that it is sufficient for encryption. |
Any update here? otherwise i will close this as abandoned. |
Sorry for never providing feedback. Your implementation works wonderfully. A few months ago, I was involved with a PR that was merged into the Nextcloud server code. It adds support for SSO user secrets in NC's authentication backend: nextcloud/server#27929 Your SSEv3 code adds support for this feature. Now that SSO user secrets are part of the NC core, I wondered if you would be willing to merge this code with the master branch. I would love to have this available in a version of Passwords that is compatible with NC 25. Thanks, @marius-wieschollek! |
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
You may need to update your implementation for the final release. |
Excellent documentation - thank you. This note stood out to me, though:
TL;DR: I will need to test out features like password sharing and may submit a PR or two. The
User secrets from a SSO IdP are only available when a user is logged in. IdPs do not "provide" user secrets without users being authenticated. As an example, this is how NC handles file sharing when Similarly, when a user shares a password, SSEv3 encryption should be removed and SSEv2 should be applied. This way, shared passwords will be available when the password owner is not logged in. Handling background jobs is a different discussion. I have a . . . "creative" solution for that problem involving a Node.js websocket server running beside NC. That is well beyond the scope of the Passwords app, though. I hope that all made sense. Also, my apologies if I explained things that you already understood. I just wanted to be thorough. |
Current Status
The only available encryption algorithms are the bundled SSEv1 and SSEv2 algorithms.
Feature Description
For certain advanced implementations, it would be useful to be able to define a custom SSE algorithm or provide a custom user secret.
Additional context
For my particular situation, I have my Nextcloud instance's master key disabled, and I am using Keycloak to pass a custom user secret during SSO login. I would like to implement a SSE algorithm that uses this custom user secret.
I can think of a few ways to do this, but I wanted to discuss before submitting a PR:
ObjectEncryptionInterface
. Then, the passwords application can useget_declared_classes()
andclass_implements()
to find all classes that implementObjectEncryptionInterface
. These classes are then provided as SSE options in the admin settings.Any other ideas? I'm happy to write this.
The text was updated successfully, but these errors were encountered: