Module oidc_user_registration

Module oidc_user_registration 

Source
Expand description

Initiating User Registration via OpenID Connect

This module implements the “Initiating User Registration via OpenID Connect 1.0” specification, which allows clients to initiate user registration through the OpenID Connect authorization flow using the prompt=create parameter.

§Features

  • prompt=create parameter handling
  • User registration flow integration
  • Registration completion validation
  • Registration metadata and claims handling
  • Structured OIDC error responses for registration failures
  • Session management with timeout handling
  • Comprehensive error reporting using OpenID Connect error codes

§Error Handling

The registration manager uses OidcErrorManager to provide structured error responses that comply with OpenID Connect specifications:

  • registration_not_supported - When registration is disabled
  • invalid_request - For malformed registration requests
  • session_selection_required - For missing/invalid registration sessions
  • registration_required - For incomplete registration data
  • login_required - For expired registration sessions

§Usage Examples

use auth_framework::server::oidc_user_registration::{RegistrationManager, RegistrationConfig, RegistrationRequest};

let mut manager = RegistrationManager::new(RegistrationConfig::default());

let request = RegistrationRequest {
    client_id: "client123".to_string(),
    redirect_uri: "https://app.example.com/callback".to_string(),
    scope: "openid profile email".to_string(),
    response_type: "code".to_string(),
    prompt: Some("create".to_string()),
    state: None,
    nonce: None,
    login_hint: None,
    ui_locales: None,
    registration_metadata: None,
    claims: None,
};

let registration_id = manager.initiate_registration(request)?;

Structs§

RegistrationConfig
Registration configuration
RegistrationData
User registration data
RegistrationManager
User registration manager
RegistrationRequest
User registration request parameters
RegistrationResponse
Registration completion response