This library implements the Keycloak Authorization Service.
npm install keycloak-authorization-services
import express, { NextFunction, Request, Response } from 'express';
import { authorizationByPermission } from '../authorizationByPermission';
/* Start: Define general settings */
const config = {
baseUrl: 'http://host.docker.internal:8081',
realm: 'main',
};
/* End: Define general settings */
const app = express();
app.get(
'/api/tests',
/* Start: Adds authorization middleware by roles */
authorizationByRoles(config, {
decodedType: 'decode',
permission: {
client: 'customer-client',
roles: ['default-roles-main', 'uma_protection'],
},
}),
/* End: Adds authorization middleware by roles */
/* Start: Adds authorization middleware by permissions */
authorizationByPermission(config, {
permission: { resource: 'Default Resource', scopes: ['view'] },
audience: 'customer-client',
}),
/* End: Adds authorization middleware by permissions */
async function (req: Request, res: Response, next: NextFunction) {
//...
},
);
- Authorization request for roles
- Discovering authorization services endpoints and metadata
- Authorization request for specific resources protected by a resource server
- Authorization request for any resource and scope protected by a resource server
- Authorization request for UMA protected resource after receiving a permission ticket from the resource server as part of the authorization process
- Client authentication methods when acting on behalf of a user
- Client authentication methods when acting on your behalf
- Push arbitrary claims
- Token RPT introspection