# Authentication options

Out of the box, StackState is configured with [file-based authentication](https://archivedocs.stackstate.com/5.1/configure/security/authentication/file) with a [default username and password](https://archivedocs.stackstate.com/5.1/setup/install-stackstate/initial_run_guide#default-username-and-password). This authenticates users against a file on the server. However, this isn't a production-ready setup.

For better security StackState can be configured to use exactly one of the following authentication mechanisms (replacing the standard admin user):

* [File based](https://archivedocs.stackstate.com/5.1/configure/security/authentication/file)
* [LDAP](https://archivedocs.stackstate.com/5.1/configure/security/authentication/ldap)
* [Open ID Connect (OIDC)](https://archivedocs.stackstate.com/5.1/configure/security/authentication/oidc)
* [KeyCloak (a specialized version of OIDC)](https://archivedocs.stackstate.com/5.1/configure/security/authentication/keycloak)

{% hint style="info" %}

* **Kubernetes** authentication configuration is part of the Helm chart, any changes will automatically triger a restart of the pods requiring that.
* **Linux** authentication configuration is stored in the file `etc/application_stackstate.conf` in the StackState installation directory. Restart StackState for any changes made to this file to take effect.
  {% endhint %}

## User roles

When a user has been authenticated permissions for that user are usually assigned based of the roles the user has. The documentation for the specific authentication mechanisms also contain examples on how to map the roles or groups from the external systems to the 4 standard roles of StackState:

* **Guest** - able to see information but make no changes.
* **Power User** - able to see and change all configuration and install StackPacks.
* **Administrator** - able to see and change content of StackState. For example, see all configuration, install StackPacks, grant and revoke user permissions and upload (new versions of) StackPacks.
* **Platform Administrator** - able to perform management of the StackState platform. For example, change data retention, clear the database, view logs and cache management.

When deciding on the roles to assign your users, it's strongly advised to have only a small group of Platform Administrators and Administrators. For example, only the engineers responsible for installing StackState and doing the initial configuration. Administrator users can manage access to StackState and decide which StackPacks can be used. You can delegate installation of StackPacks and other fine-tuning of the configuration to a larger number of users with the Power User role. Platform Administrator users can clear the database, change data retention settings, view logs and perform other platform management tasks.

It's also possible to add more roles, see the page [Roles (RBAC)](https://archivedocs.stackstate.com/5.1/configure/security/rbac/rbac_roles) and the other [RBAC documentation pages](https://archivedocs.stackstate.com/5.1/configure/security/rbac)
