Security Sensitive Values
On this page
Authelia contains several security sensitive values which are documented as such and are also generally are named
secret
, key
, password
, token
, or certificate_chain
; alternatively they may be suffixed with a _
followed by one
of the previous values.
We generally recommend not leaving these values directly in the configuration itself, as this often leads to accidentally leaking the values when getting support and is generally slightly less secure.
There are three special ways to achieve this goal:
- Using the native Secrets system which:
- Loads the value from a file provided an environment variable with the file’s location.
- Generally easy to set up.
- Can’t be used for keys located within lists.
- Does not include the value in the environment which is slightly more secure.
- Using the
template
file filter system which:- Loads the value from a file provided a template within the configuration itself making it easy to share.
- Generally easy to set up but has a small learning curve.
- Can be used anywhere in the configuration generally for any purpose.
- Does not include the value in the environment which is slightly more secure.
- Using the native Environment system which:
- Loads the value from the environment variable itself
- Generally easy to set up.
- Can’t be used keys located within lists.
- Does include the value in the environment which is slightly less secure.
Template Example
This explains option 2 in the context of using it specifically for secret values. For more information on templating see the Reference Guide.
Single-Line Value
This example shows how to do a single-line value. The single quotes are only relevant if the value is a string and can be excluded for other value types.
Alternatively you can use the special m
variants of the indent
and squote
functions to automatically adjust the
layout depending on if the file has multiple lines, msquote will automatically single quote the value if it’s not
multiple lines, see Multi-Line Value for more information on mindent.
Multi-Line Value
This example shows how to do a multi-line value. QuotiThng is not possible in this scenario as such it’s excluded.
It’s important to note the use of mindent:
- The value of
10
indicates the value should be indented with 10 spaces:- You will need to adjust the indent depending on the context. The indent should be an additional indentation level
(in this case 2 spaces) than the start of the key name. In this case the
jwks
key namekey
is indented exactly 8 characters, so the value10
is correct.
- You will need to adjust the indent depending on the context. The indent should be an additional indentation level
(in this case 2 spaces) than the start of the key name. In this case the
- The value of
|
indicates what multiline prefix to use.