Users and Registration¶
There are two classes of Workflow users: normal users and administrators.
- Users can use most of the features of Workflow - creating and deploying applications, adding/removing domains, etc.
- Administrators can perform all the actions that users can, but they also have owner access to all applications.
The first user created on a Workflow installation is automatically an administrator.
Register with a Controller¶
Use deis register
with the Controller URL (supplied by your Deis administrator)
to create a new account. After successful registration you will be logged in as the new user.
$ deis register http://deis.example.com
username: myuser
password:
password (confirm):
email: myuser@example.com
Registered myuser
Logged in as myuser
Important
The first user to register with Deis Workflow automatically becomes an administrator. Additional users who register will be ordinary users.
Login to Workflow¶
If you already have an account, use deis login
to authenticate against the Deis Workflow API.
$ deis login http://deis.example.com
username: deis
password:
Logged in as deis
Logout from Workflow¶
Logout of an existing controller session using deis logout
.
$ deis logout
Logged out as deis
Verify Your Session¶
You can verify your client configuration by running deis whoami
.
$ deis whoami
You are deis at http://deis.example.com
Note
Session and client configuration is stored in the ~/.deis/client.json
file.
Registering New Users¶
By default, new users are not allowed to register after an initial user does. That initial user becomes the first "admin" user. Others will now receive an error when trying to register, but when logged in, an admin user can register new users:
$ deis register --login=false --username=newuser --password=changeme123 --email=newuser@deis.io
Controlling Registration Modes¶
After creating your first user, you may wish to change the registration mode for Deis Workflow.
Deis Workflow supports three registration modes:
Mode | Description |
---|---|
admin_only (default) | Only existing admins may register new users |
enabled | Registration is enabled and anyone can register |
disabled | Does not allow anyone to register new users. |
To modify the registration mode for Workflow you may add or modify the REGISTRATION_MODE
environment variable for the
controller component. If Deis Workflow is already running, use:
kubectl --namespace=deis patch deployments deis-controller -p '{"spec":{"template":{"spec":{"containers":[{"name":"deis-controller","env":[{"name":"REGISTRATION_MODE","value":"disabled"}]}]}}}}'
Modify the value
portion to match the desired mode.
Kubernetes will automatically deploy a new ReplicaSet and corresponding Pod with the new environment variables set.
Managing Administrative Permissions¶
You can use the deis perms
command to promote a user to an admin:
$ deis perms:create john --admin
Adding john to system administrators... done
View current admins:
$ deis perms:list --admin
=== Administrators
admin
john
Demote admins to normal users:
$ deis perms:delete john --admin
Removing john from system administrators... done
Re-issuing User Authentication Tokens¶
The controller API uses a simple token-based HTTP Authentication scheme. Token authentication is appropriate for client-server setups, such as native desktop and mobile clients. Each user of the platform is issued a token the first time that they sign up on the platform. If this token is compromised, it will need to be regenerated.
A user can regenerate their own token like this:
$ deis auth:regenerate
An administrator can also regenerate the token of another user like this:
$ deis auth:regenerate -u test-user
At this point, the user will no longer be able to authenticate against the controller with his auth token:
$ deis apps
401 UNAUTHORIZED
Detail:
Invalid token
They will need to log back in to use their new auth token.
If there is a cluster wide security breach, an administrator can regenerate everybody's auth token like this:
$ deis auth:regenerate --all=true
Changing Account Password¶
A user can change their own account's password like this:
$ deis auth:passwd
current password:
new password:
new password (confirm):
An administrator can change the password of another user's account like this:
$ deis auth:passwd --username=<username>
new password:
new password (confirm):