91 lines
1.6 KiB
Markdown
91 lines
1.6 KiB
Markdown
|
|
# emqx-auth-jwt
|
|
|
|
EMQ X JWT Authentication Plugin
|
|
|
|
Build
|
|
-----
|
|
|
|
```
|
|
make && make tests
|
|
```
|
|
|
|
Configure the Plugin
|
|
--------------------
|
|
|
|
File: etc/plugins/emqx_auth_jwt.conf
|
|
|
|
```
|
|
## HMAC Hash Secret.
|
|
##
|
|
## Value: String
|
|
auth.jwt.secret = emqxsecret
|
|
|
|
## From where the JWT string can be got
|
|
##
|
|
## Value: username | password
|
|
## Default: password
|
|
auth.jwt.from = password
|
|
|
|
## RSA or ECDSA public key file.
|
|
##
|
|
## Value: File
|
|
## auth.jwt.pubkey = etc/certs/jwt_public_key.pem
|
|
|
|
## Enable to verify claims fields
|
|
##
|
|
## Value: on | off
|
|
auth.jwt.verify_claims = off
|
|
|
|
## The checklist of claims to validate
|
|
##
|
|
## Value: String
|
|
## auth.jwt.verify_claims.$name = expected
|
|
##
|
|
## Variables:
|
|
## - %u: username
|
|
## - %c: clientid
|
|
# auth.jwt.verify_claims.username = %u
|
|
```
|
|
|
|
Load the Plugin
|
|
---------------
|
|
|
|
```
|
|
./bin/emqx_ctl plugins load emqx_auth_jwt
|
|
```
|
|
|
|
Example
|
|
-------
|
|
|
|
```
|
|
mosquitto_pub -t 'pub' -m 'hello' -i test -u test -P eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYm9iIiwiYWdlIjoyOX0.bIV_ZQ8D5nQi0LT8AVkpM4Pd6wmlbpR9S8nOLJAsA8o
|
|
```
|
|
|
|
Algorithms
|
|
----------
|
|
|
|
The JWT spec supports several algorithms for cryptographic signing. This plugin currently supports:
|
|
|
|
* HS256 - HMAC using SHA-256 hash algorithm
|
|
* HS384 - HMAC using SHA-384 hash algorithm
|
|
* HS512 - HMAC using SHA-512 hash algorithm
|
|
|
|
* RS256 - RSA with the SHA-256 hash algorithm
|
|
* RS384 - RSA with the SHA-384 hash algorithm
|
|
* RS512 - RSA with the SHA-512 hash algorithm
|
|
|
|
* ES256 - ECDSA using the P-256 curve
|
|
* ES384 - ECDSA using the P-384 curve
|
|
* ES512 - ECDSA using the P-512 curve
|
|
|
|
License
|
|
-------
|
|
|
|
Apache License Version 2.0
|
|
|
|
Author
|
|
------
|
|
|
|
EMQ X Team.
|