Extension Authorization Service


Extension Basics

Title
Authorization Service
Name
ckanext-authz-service
Type
Public extension
Description
JWT-based authorization API for CKAN providing secure token generation for external system integration.
CKAN versions
Download-Url (zip)
Download-Url commit date
2024-05-16
Url to repo
Category
Authentication & Security


Background Infos

Description (long)
Show details

The Authorization Service extension transforms CKAN into a comprehensive JWT token authority for microservice architectures and external system integrations. This sophisticated extension generates cryptographically signed JWT tokens that encapsulate both user identity and granular permissions, enabling secure authentication across distributed systems. It implements a flexible scope-based authorization model supporting organizations, datasets, and resources with fine-grained action controls including read, write, delete, and custom operations. The extension provides RESTful API endpoints for token generation, verification, and public key distribution, supporting both symmetric and asymmetric cryptographic algorithms including RS256, HS256, and custom implementations. Token lifecycle management includes configurable expiration times, audience validation, and optional user email inclusion. The system seamlessly integrates with CKAN’s existing authorization framework while extending it for modern cloud-native applications. Essential for enterprise environments requiring single sign-on, API gateway authentication, and secure service-to-service communication with full audit trails and permission inheritance.

Version
0.2.0
Version release date
2023-01-03
Contact name
Datopian Team
Contakt email
Contact Url
(not set)


Installation Guide

Configuration hints

Requires JWT private/public key configuration, supports RSA and HMAC algorithms.

Plugins to configure (ckan.ini)
authz_service
CKAN Settings (ckan.ini)
# ckanext.authz_service.jwt_private_key = 'your-secret-key' # ckanext.authz_service.jwt_private_key_file = '/path/to/private.key' # ckanext.authz_service.jwt_public_key_file = '/path/to/public.key' # ckanext.authz_service.jwt_algorithm = 'RS256' # ckanext.authz_service.jwt_max_lifetime = 900 # ckanext.authz_service.jwt_issuer = 'https://your-ckan-site.com' # ckanext.authz_service.jwt_audience = 'your-service-audience' # ckanext.authz_service.jwt_include_user_email = false # ckanext.authz_service.jwt_include_token_id = false
DB migration to be executed
(not set)
<< back to Extensions