Repository navigation
Release of v0.2.0
Authly v0.2.0 - OAuth 2.1 Authorization Server with OpenID Connect
Overview
We're pleased to announce Authly v0.2.0, which adds OpenID Connect 1.0 support to our OAuth 2.1 authorization server. This release achieves 156 of 163 tests passing (95.7% success rate).
OAuth 2.1 & OpenID Connect Features
- OAuth 2.1 Authorization Server - Authorization code flow with PKCE, token introspection, revocation support
- OpenID Connect Core - ID token generation, UserInfo endpoint, Discovery endpoint, JWKS endpoint
- Security Implementation - PKCE mandatory for all flows, secure session handling, CSRF protection
- Standard Scopes - Full support for
openid,profile,emailscopes with appropriate claim mappings
Architecture & Implementation
- Unified Service - Single
python -m authlycommand for all operations - Modular Design - Clean separation between OAuth and OIDC components
- Database Backend - PostgreSQL with proper transaction handling
- Development Mode - Embedded PostgreSQL option for local development
- API Design - RESTful admin API for client management
- Test Coverage - 163 comprehensive tests covering OAuth and OIDC flows
Technical Implementation
- ID Token Signing - JWT tokens with HS256 algorithm
- Token Management - Access tokens, refresh tokens, authorization codes
- Client Types - Support for public and confidential clients
- Discovery Metadata - Auto-generated
.well-known/openid-configuration - JWKS Endpoint - Public key distribution for token verification
- UserInfo Claims - Standard claims including sub, name, email, picture
Documentation
- Getting Started - Quick setup and basic OAuth/OIDC flows
- API Reference - Complete endpoint documentation
- Configuration Guide - Server and client configuration options
- Integration Examples - Sample code for common scenarios
- Security Guide - Best practices and implementation notes
Installation and Setup
# Install
pip install authly==0.2.0
# Development with embedded PostgreSQL
python -m authly serve --embedded
# Production deployment
python -m authly serve
# Create OAuth/OIDC client
python -m authly admin client create \
--name "My Application" \
--type confidential \
--scope "openid profile email" \
--redirect-uri "https://app.example.com/callback"Configuration Example
# Client configuration for OIDC
{
"client_id": "generated-client-id",
"client_secret": "generated-secret",
"client_type": "confidential",
"redirect_uris": ["https://app.example.com/callback"],
"scope": "openid profile email",
"grant_types": ["authorization_code"],
"response_types": ["code"],
"token_endpoint_auth_method": "client_secret_basic"
}Current Limitations
- ID tokens use HS256 (RS256 planned for next release)
- UserInfo endpoint returns standard claims only
- No dynamic client registration
- Refresh token rotation not yet implemented
Metrics
- Test Suite: 163 tests (156 passing, 7 pending)
- Code Coverage: 85% for core flows
- Endpoints: 12 OAuth + 4 OIDC endpoints
- Response Time: <100ms for token generation
- Database: PostgreSQL 12+ required