Extension Passwordless API


Extension Basics

Title
Passwordless API
Name
ckanext-passwordless_api
Type
Public extension
Description
Extension to allow passwordless login to the CKAN API using email-based tokens, primarily intended for custom frontends built on the CKAN API.
CKAN versions
Download-Url (zip)
Last commit
5 months ago (2025-09-29 11:07:06)
Url to repo
Category
Authentication & Security


Background Infos

Description (long)
Show details

ckanext-passwordless_api

CKAN Passwordless API — Extension to allow passwordless login to the CKAN API.

Primarily intended for custom frontends built on the CKAN API. Uses API tokens from CKAN core (>2.9) providing an authentication flow where:

  1. Users receive a login token via email.
  2. API token is returned on valid login token submission.
  3. The API token is included in Authorization headers.

A second login flow via Azure AD is also supported.

Available on PyPI: ckanext-passwordless-api.

Endpoints

  • Request reset key
  • Request API token
  • Revoke token
  • Get user
  • Token introspection

Cookie-based auth is supported with NGINX/Apache middleware examples.

Installation

pip install ckanext-passwordless-api

Add passwordless_api to ckan.plugins.

Config Settings

passwordless_api.guidelines_url = 
passwordless_api.policies_url = 
passwordless_api.welcome_template = 
passwordless_api.reset_key_template = 
passwordless_api.cookie_name = 
passwordless_api.cookie_domain = 
passwordless_api.cookie_samesite = Lax
passwordless_api.cookie_http_only = true
passwordless_api.cookie_path = /
passwordless_api.anonymous_usernames = false
passwordless_api.anonymous_domain_exceptions = 

License

AGPL-3.0

Version
1.1.11
Version release date
2025-09-29
Contact name
Sam Woodcock
Contakt email
Contact Url
(not set)


Installation Guide

Configuration hints

Install via pip. Add ‘passwordless_api’ to ckan.plugins. Configure email templates, cookie settings, and optional Azure AD integration.

Plugins to configure (ckan.ini)
passwordless_api
CKAN Settings (ckan.ini)
# passwordless_api.guidelines_url = 
# passwordless_api.policies_url = 
# passwordless_api.welcome_template = 
# passwordless_api.reset_key_template = 
# passwordless_api.cookie_name = 
# passwordless_api.cookie_domain = 
# passwordless_api.cookie_samesite = Lax
# passwordless_api.cookie_http_only = true
# passwordless_api.cookie_path = /
# passwordless_api.anonymous_usernames = false
# passwordless_api.anonymous_domain_exceptions = 
DB migration to be executed
(not set)
<< back to Extensions