-
-
Notifications
You must be signed in to change notification settings - Fork 166
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
add notes to create an emergency user #1703
Conversation
@stevepiercy can you check wording and spelling please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I merged content from Plone 5 documentation, and added an introduction for each scenario.
There was one sentence remaining that confuses me. Please see my review comment. Thank you!
An emergency user is one that you can use to regain administrative access to a Plone site. | ||
If you lose the administrator password, or you inherit a project without proper documentation, you can create an emergency user. | ||
|
||
First of all, do the following steps not in a production environment! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What would someone do in a Production environment? Are they out of luck?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of course, you can do this operations in a production env, but you should not do this. ;-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What should someone do in production instead? We can't say "don't do this", then in the next section say "do this". It's very confusing.
Perhaps you can include what are the consequences and risks of doing this in production, aside from the obvious, specifically that the site will be down while adding the emergency user.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@1letter can you answer the following questions? I want to move this PR forward.
- What should someone do in production instead?
- If someone does this in production, what are the risks?
- In which environments is it OK to do this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I addressed these issues with #1854
I decided to talk about "Zope Manager Users", which IMO it is more appropriate than "Emergency users"
I added a note about taking in to account the security implication of adding a Zope manager user.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ale-rt @stevepiercy I like the change to extend the scope to "Zope Manager Users" and mention the "Emergency user", but the traditional term "Emergency user" should be highlighted in the text to reflect the purpose in production!
I added this here, because of the context of the suggestion by @stevepiercy in my discussions with him and seperately with @jensens.
But it needs to be seen also in context of the current preview:
https://plone6--1703.org.readthedocs.build/admin-guide/add-emergency-user.html
I would also enhance two things:
1. Do not tag admin:admin "as usual":
It is OK to use that for an instance fired up for testing and to be destroyed at once or soon or later before going to production. But it should be mentioned and made clear that for instances installed ending in production the password should be changed before anything goes into persistence. The consequences might be not obvious, but even behind a proxy the ZMI root may be reachable (like with Volto) and can lead to a permanent backdoor not easy to discover even not using admin:admin.
Imagine a different user:password than admin/admin and the sysadmin / integrator changes and the httpauth in the ZMI backend is not changed or restored from a backup. Then an in fact unauthorízed person can try to gain access with these hardcoded credentials.
2. Prominent warning to immediately change default credentials
There should be a prominent warning
- to immediately change these credentials and
- pack the database before going into production.
Further considerations
3. @1letter completely denied to use this in production.
I am contrary because the emergency user purpose is still valid for emergency use cases like changed admins or lost credentials. The Challenge in production is, that the user is persistent in the database and therefore also in backups. So old backups are still accessible with the old credentials when restored without proper awareness and documentation of changes in access credentials including point in time.
4. Revamp random password as default
In the past there was an approach that the installers created a random password and wrote it into the filesystem when the initial password was not specified during install.
When you removed the file, took a note in your password manager and changed the password at once no traces were left. Today these ways are deeply buried in e.g. docker containers and not easy to handle.
Maybe this is a trap in automated deployments
ongoing work on this
I am working on writing this up for cookieplone based docker deployments, but it is too early and would block the release of this PR. This can be added later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The traditional term "Emergency user" should be highlighted in the text to reflect the purpose in production!
Do you have suggestion on how to do that?
So old backups are still accessible with the old credentials when restored without proper awareness and documentation of changes in access credentials including point in time.
Uhm maybe here I am missing something. When you have access to the DB you can anyway change the password manually there. So I do not consider this a real issues.
In the past there was an approach that the installers created a random password and wrote it into the filesystem when the initial password was not specified during install.
I think this is extending the scope of this PR.
I am working on writing this up for cookieplone based docker deployments, but it is too early and would block the release of this PR. This can be added later.
Agreed!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So old backups are still accessible with the old credentials when restored without proper awareness and documentation of changes in access credentials including point in time.
@ale-rt The issue in my deployments was in place because the Cookieplone project template sets up a Traefik that creates a basicauth middleware and is created by a label in the docker swarm stack service backend.
In my early attempts I tried to modify the deployment in the docker-compose.yml file, but the changes had no effect and seemed to be ignored in the redeployment.
Today @pbauer, @tlotze and me went through the training docs for the deployment and weeded out lots of pitfalls in order of execution and issues related to images missing on the arm platform for servers.
During these attempts it became clear that the initial modifications during setup were rolled out into the yml file in devops/stacks/
named after the hostname. Making the changes in this file allows to change the http basicauth of the middleware that overrides the password of the actual ZMI user "admin". Other additional Zope admins or so called "emergengy users" were not affected. The ZMI "admin" users password could be changed successfully in the ZMI but had no effect in this setup behind Traefik. Keep in mind that this user has an ID admin and a seperate name admin that can be changed and should not be mixed up.
That said, the origin of the "persistent" basicauth is discovered and therefore the Cookieplone docs needs to be updated to point to the place for changing that.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
@1letter would you please respond to @davisagli's suggestions? Let's get this finished and published! |
Zope Manager Users
Those are now: |
@stevepiercy I dump this here until final decision where to put this [[Draft]] Emergency User Creation in dockerized setupI can confirm that the following procedure works for me on a running docker swarm instance for the full featured docker based Plone Volto deployment created by current Cookieplone project template including postgres, traefik, varnish: How to create a new
|
Note that I would like to rename the file name to match its actual content: #1859 |
@acsr please check this #1703 (comment), I think that #1860 will better fit your comments. Anyway I have planned a call with @stevepiercy in a few minutes |
Clarify and rework the docs for adding a Zope manager user
See #1703 (comment) |
It seems my comment was not saved: Updated below the mark |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
We should also add instructions on how to do this in the plone-backend Docker image, based on @acsr's notes -- but this already helps fill the gap and we shouldn't delay merging what is already here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll fix the mistaken deletion.
I have another PR #1867 that I will merge into this one, once it is all green.
* Polish up Zope manager users * Consistent indents of 4 spaces
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I merged PR #1867.
Once this passes CI, and I double check the PR preview build, I will merge.
@acsr would you please open a new PR with your suggestions? Sorry, I can't make sense of it, as I don't have experience with the situation you describe. |
i created a subdirectory for users and groups and add a file with a short description to create an emergency user in a pip and buildout based installation of Plone.
Closes #948
Closes #1702
📚 Documentation preview 📚: https://plone6--1703.org.readthedocs.build/