> For the complete documentation index, see [llms.txt](https://nats.golang.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nats.golang.im/nats-server/configuration/securing_nats/auth_intro.md).

# Authentication

The NATS server provides various ways of authenticating clients:

* [Token Authentication](/nats-server/configuration/securing_nats/auth_intro/tokens.md)
* [Username/Password credentials](/nats-server/configuration/securing_nats/auth_intro/username_password.md)
* [TLS Certificate](/nats-server/configuration/securing_nats/auth_intro/tls_mutual_auth.md)
* [NKEY with Challenge](/nats-server/configuration/securing_nats/auth_intro/nkey_auth.md)
* [Decentralized JWT Authenticatin/Authorization](/nats-server/configuration/securing_nats/jwt.md)

Authentication deals with allowing a NATS client to connect to the server. Except for JWT authentication, authentication and authorization are configured in the `authorization` section of the configuration.

## Authorization Map

The `authorization` block provides *authentication* configuration as well as *authorization*:

| Property                                                                               | Description                                                                                                        |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| [`token`](/nats-server/configuration/securing_nats/auth_intro/tokens.md)               | Specifies a global token that can be used to authenticate to the server (exclusive of user and password)           |
| [`user`](/nats-server/configuration/securing_nats/auth_intro/username_password.md)     | Specifies a single *global* user name for clients to the server (exclusive of token)                               |
| [`password`](/nats-server/configuration/securing_nats/auth_intro/username_password.md) | Specifies a single *global* password for clients to the server (exclusive of `token`)                              |
| `users`                                                                                | A list of [user configuration](/nats-server/configuration/securing_nats/auth_intro.md#user-configuration-map) maps |
| [`timeout`](/nats-server/configuration/securing_nats/auth_intro/auth_timeout.md)       | Maximum number of seconds to wait for client authentication                                                        |

For multiple username and password credentials, specify a `users` list.

## User Configuration Map

A `user` configuration map specifies credentials and permissions options for a single user:

| Property                                                                               | Description                                                                                                                                                                                     |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`user`](/nats-server/configuration/securing_nats/auth_intro/username_password.md)     | username for client authentication. (Can also be a user for [tls authentication](/nats-server/configuration/securing_nats/auth_intro/tls_mutual_auth.md#mapping-client-certificates-to-a-user)) |
| [`password`](/nats-server/configuration/securing_nats/auth_intro/username_password.md) | password for the user entry                                                                                                                                                                     |
| [`nkey`](/nats-server/configuration/securing_nats/auth_intro/nkey_auth.md)             | public nkey identifying an user                                                                                                                                                                 |
| [`permissions`](/nats-server/configuration/securing_nats/authorization.md)             | permissions map configuring subjects accessible to the user                                                                                                                                     |
