> ## Documentation Index
> Fetch the complete documentation index at: https://tyk.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Tyk Dashboard Users

> Learn how to create and manage Tyk Dashboard users using the UI and API, including passwords, password policy and user search

## Manage Tyk Dashboard Users

Dashboard users have twofold access to the dashboard: they can access both the Dashboard API and the dashboard itself, it is possible to generate users that have read-only access to certain sections of the dashboard and the underlying API.

Dashboard users are not the same as developer portal users (a.k.a. [developers](/docs/tyk-developer-portal/tyk-portal-classic/portal-concepts#developers)). The credentials are stored independently and have different mechanics relating to registration, management and access. For example, it is not possible to log into the developer portal using a dashboard account.

### Using Dashboard UI

To create a dashboard user from the GUI:

1. **Select "Users" from the "System Management" section**

   <img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/users_menu.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=c829bcb2c6e89d973dd2c1588375afaa" alt="Users menu" width="231" height="308" data-path="img/2.10/users_menu.png" />

2. **Click "ADD USER"**

   <img src="https://mintcdn.com/tyk/XYIZ0Oo5nzDVrYaM/img/2.10/add_user.png?fit=max&auto=format&n=XYIZ0Oo5nzDVrYaM&q=85&s=76bcf33a9d8ba5bc883ad0b9107b4e2a" alt="Add user button location" width="413" height="150" data-path="img/2.10/add_user.png" />

3. **Add the user's basic details**

   <img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/user_basic_details.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=36084721b7ed270fb7cff5c50bf86ec8" alt="User form" width="1152" height="395" data-path="img/2.10/user_basic_details.png" />

   In this section:

   * **First Name**: The user's first name.
   * **Last Name**: The user's last name.
   * **Email**: The email address of the user, this will also be their login username.
   * **Password**: The password to assign to the user, this will automatically be hashed and salted before storing in the database. **NOTE** you need to inform the user about the password you have created for them.
   * **Active**: Must be true for the user to have access to the dashboard or the dashboard API.

4. **Set the user permissions**

   <img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/user_permissions.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=265038afdb85fd3b34efda41015afbd8" alt="Admin checkbox location" width="1131" height="1032" data-path="img/2.10/user_permissions.png" />

   You can be very specific with regards to which pages and segments of the Dashboard the user has access to. Some Dashboard pages require access to multiple parts of the API, and so you may get errors if certain related elements are disabled (e.g. APIs + Policies)

   Permissions are set and enforced when they are set on this page. They can either be **read** or **write**. If  set to **deny** then the record is non-existent in the object (there is no explicit "deny"). This means that if you set **deny** on all options it looks as if they have not been written, but they will still be enforced so long as even one read or write option has been set.

5. **Click "Save"**

   <img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/users_save.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=1c2475e22cb8b50b67247ef822ce944b" alt="Save button location" width="297" height="135" data-path="img/2.10/users_save.png" />

   The user will automatically be created, as will their API Access token, which you will be able to retrieve by opening the user listing page again and selecting the user's username.

### Using Dashboard API

To authenticate requests to the Tyk Dashboard API, you will need to provide an API Key in the `Authorization` header.

This is your **Tyk Dashboard API Access Credentials**, which can be found on the user detail page:

<img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/user_credentials.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=22e032da60db938bea0877d2a8ee1d0e" alt="API key and RPC key locations" width="325" height="252" data-path="img/2.10/user_credentials.png" />

You can [create a user](https://tyk.io/docs/api-reference/users/add-user) with a call to the `POST /api/users` endpoint, for example:

```bash theme={null}
curl -H "Authorization: {YOUR-TYK-DASHBOARD-API-ACCESS-CREDENTIALS}" \
 -s \
 -H "Content-Type: application/json" \
 -X POST \
 -d '{
  "first_name": "Test",
  "last_name": "User",
  "email_address": "test@testing.com",
  "active": true,
  "user_permissions": {
      "IsAdmin": "admin"
  },
  "password": "thisisatest"
 }' http://{your-dashboard-host}:{port}/api/users | python -mjson.tool
```

In this example, we have given the user Admin privileges. To see a detailed breakdown of permission objects, please see below.

You will see the following response to confirm that the user has been created:

```json theme={null}
{
  "Message": "User created",
  "Meta": null,
  "Status": "OK"
}
```

The user is now active.

## Manage User Passwords

You can change your password in these circumstances:

* If you have forgotten your password
* If you wish to change your password

### Forgotten Your Password?

If you have forgotten your password, you can request a password reset email from the **Dashboard Login** screen:

<img src="https://mintcdn.com/tyk/rcbuH4FawxAvTx_L/img/2.10/dashboard_login.png?fit=max&auto=format&n=rcbuH4FawxAvTx_L&q=85&s=c56eb0c0ca9a11ceac686c124a2f2da9" alt="password reset email" width="743" height="499" data-path="img/2.10/dashboard_login.png" />

Enter your login email address, and you will receive an email with a link that enables you to create a new password.

<Note>
  This link will only be valid for 1000 seconds

  <br />

  You will need to configure your [outbound email settings](/docs/configure/outbound-email-configuration) to enable this feature.
</Note>

### Change Your Password

If you wish to change your current password, from the **System Management > Users** screen, select **Edit** for your Username.

<Note>
  You will not be able to change the password for other Dashboard users.
</Note>

From your user details, click **Reset Password**:

<img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/user_reset_password.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=da7033022e567841d0eb7c80965d75ec" alt="reset password button" width="601" height="136" data-path="img/2.10/user_reset_password.png" />

Enter your current and new password (and confirm it) in the dialog box that is displayed, and click **Reset Password**.
You will automatically be logged out of the Dashboard and will have to enter your username and new password to log back in.

## Search Users

You can search for a user (by email address) by entering the address in the search field. The user list will automatically refresh with that user being displayed.

<img src="https://mintcdn.com/tyk/_n1j2nedxXfbDX-s/img/2.10/user_search.png?fit=max&auto=format&n=_n1j2nedxXfbDX-s&q=85&s=a45b5925a2a7e5e6dc2c52ec921a0c57" alt="User Profile Search" width="1213" height="376" data-path="img/2.10/user_search.png" />

## Password Policy

Tyk allows you to control password requirements for Dashboard users, developers (i.e. users registered to the developer portal) and basic auth keys.
Please note: This configuration is enforced by the Tyk-Dashboard and as such is not available in the Tyk Open Source Edition. Also, since it requires access to the Tyk Dashboard installation folder, it is *currently* not available for Tyk Cloud clients.

There are other security options available from the Dashboard config file. See the [security section](/docs/tyk-dashboard/configuration#security) for more details.

You can find the configuration files in the `schemas` directory of your Tyk Dashboard installation folder, as follows:

* For Dashboard users you define policy in `schemas/password.json`
* For developers you define policy in `schemas/developer_password.json`
* For basic auth keys you define policy in `./schemas/basic_auth.json`

The following validators are available:

* `minLength` - sets minimum password length
* `multiCase` - boolean, upper and lower case characters are required
* `minNumeric` - minimum number of numeric characters
* `minSpecial` - minimum number of special characters, like `@`, `$`, `%` etc.
* `disableSequential` - boolean, disable passwords which include at least 3 sequential characters. For example: `abc`, `123`, `111`, `xxx` etc.

Below is an example of `password.json` file, with all options turned on:

```{.copyWrapper} theme={null}
{
  "title": "User password schema",
  "type": "string",

  "minLength": 6,
  "multiCase": true,
  "minNumeric": 2,
  "minSpecial": 2,
  "disableSequential": true
}
```
