blob: 591e60dbb3ef4f04a8139211abf368b22c9e959f [file] [log] [blame] [view]
# Token Authentication
## Supported version
7.0.0+
## Why do we need token authentication after TLS?
TLS is about transport security, ensuring a trusted network.
On the other hand, token authentication is about monitoring **whether application data can be trusted**.
## Token
In the current version, a token is considered a simple string.
### Set Token
1. Set token in `agent.config` file
```properties
# Authentication active is based on backend setting, see application.yml for more details.
agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx}
```
2. Set token in `application.yml` file
```yaml
······
receiver-sharing-server:
default:
authentication: ${SW_AUTHENTICATION:""}
······
```
## Authentication failure
The Skywalking OAP verifies every request from the agent and only allows requests whose token matches the one configured in `application.yml` to pass through.
If the token does not match, you will see the following log in the agent:
```
org.apache.skywalking.apm.dependencies.io.grpc.StatusRuntimeException: PERMISSION_DENIED
```
## FAQ
### Can I use token authentication instead of TLS?
No, you shouldn't. Of course, it's technically possible, but token and TLS are used for untrusted network environments. In these circumstances,
TLS has a higher priority. Tokens can be trusted only under TLS protection, and they can be easily stolen if sent through a non-TLS network.
### Do you support other authentication mechanisms, such as ak/sk?
Not for now. But we welcome contributions to this feature.