Starting from 5.0.0, all apps in apps dir should follow semver strictly. Do not use the umbrella project's release tags. The universal tags made sense when we have applications scattered in different repos. Now since this is an umbrella project, it is enough to have a single package level version number corelated with git tag. |
||
|---|---|---|
| .. | ||
| doc | ||
| priv | ||
| src | ||
| test | ||
| README.md | ||
| rebar.config | ||
| TODO.md | ||
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.