🎓Role-Based Access Control with JWT containing role
This guide explains how to set up RBAC relies onto JWT containing a role claim
Token introspection
To make Aidbox trust JWT
issued by external server token introspection is used.
In this guide external auth server URL is https://auth.example.com
Create TokenIntrospector
TokenIntrospector
PUT /TokenIntrospector/external-auth-server
content-type: text/yaml
resourceType: TokenIntrospector
id: external-auth-server
type: jwt
jwt:
iss: https://auth.example.com
secret: very-secret
Create AccessPolicy
for the role manager
AccessPolicy
for the role manager
PUT /AccessPolicy/as-manager-get-users-list
content-type: text/yaml
resourceType: AccessPolicy
id: as-manager-get-users-list
engine: json-schema
schema:
required:
- jwt
properties:
uri:
enum:
- /User
type: string
request-method:
constant: get
jwt:
required:
- iss
- role
properties:
iss:
constant: https://auth.example.com
role:
constant: manager
Create JWT
token
JWT
tokenTo build JWT
use this tool. Mind the claims:
issuer
claim should behttps://auth.example.com
role
additional claim should bemanager
expiration
claim should be in the futuresubject
claim can be any value
To get signed JWT press the Create Signed JWT
button. The generated JWT
looks like this
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2F1dGguZXhhbXBsZS5jb20iLCJpYXQiOjE2NzU3NTgzMDEsImV4cCI6MTcwNzI5NDMwMSwiYXVkIjoiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tIiwic3ViIjoiYWxpY2VAZXhhbXBsZS5jb20iLCJyb2xlIjoibWFuYWdlciJ9.X7sibz1LloKlMPVV5Q39gSAJBxxutCORtYq4oRt1eAo
Use the JWT
to get the access
JWT
to get the accessMake an HTTP request providing authorization
header with the JWT
as a Bearer
token.
GET /User
content-type: text/yaml
Authorization: Bearer eyJ0...1eAo
Last updated
Was this helpful?