Skip to main content

Crate backbone_auth

Crate backbone_auth 

Source
Expand description

Backbone Framework Auth

Authentication and authorization system with JWT, password hashing, and RBAC.

§Generic Design

This crate provides generic traits that modules can implement with their own domain entities. This follows the framework rule: “Backbone is a GENERIC library and must NEVER contain entity-specific code.”

§Core Traits

  • AuthenticatableUser - Trait for user entities that can be authenticated
  • PermissionLike - Trait for permission entities
  • RoleLike - Trait for role entities with permissions
  • PermissionChecker - Trait for permission checking services
  • UserRepository - Generic repository trait for user operations

§Default Implementations

For testing and simple use cases, default implementations are provided:

  • SimpleUser - Default user struct implementing AuthenticatableUser
  • SimplePermission - Default permission struct implementing PermissionLike
  • SimpleRole - Default role struct implementing RoleLike
  • InMemoryPermissionService - In-memory RBAC service

§Backwards Compatibility

Type aliases are provided for backwards compatibility:

  • User = SimpleUser
  • Permission = SimplePermission
  • Role = SimpleRole
  • PermissionService = InMemoryPermissionService<SimpleRole>

Re-exports§

pub use audit::AuditEvent;
pub use middleware::AuthMiddleware;
pub use middleware::AuthExtractor;
pub use middleware::AuthContext;
pub use token_generator::TokenGenerator;
pub use permissions::PermissionLike;
pub use permissions::RoleLike;
pub use permissions::PermissionChecker;
pub use permissions::SimplePermission;
pub use permissions::SimpleRole;
pub use permissions::InMemoryPermissionService;
pub use permissions::Permission;
pub use permissions::Role;
pub use permissions::PermissionService;
pub use traits::AuthenticatableUser;
pub use traits::SimpleUser;
pub use traits::UserRepository;
pub use traits::SecurityService;
pub use traits::User;
pub use traits::RefreshTokenClaims;
pub use traits::DeviceInfo;
pub use traits::SecurityFlags;
pub use traits::SecurityAlertType;
pub use traits::PasswordPolicy;
pub use traits::TwoFactorMethod;
pub use traits::TwoFactorChallenge;
pub use traits::PasswordResetRequest;
pub use traits::PasswordResetConfirmation;
pub use traits::AuthRequest;
pub use traits::AuthResultEnhanced;
pub use traits::AuthContext as RequestAuthContext;
pub use resource_policy::ResourceAction;
pub use resource_policy::ResourcePolicy;
pub use resource_policy::AccessDenied;
pub use resource_policy::PermissionGuard;
pub use resource_policy::ServicePermissionGuard;
pub use resource_policy::AuthContextProvider;
pub use resource_policy::PermitAllResourcePolicy;
pub use resource_policy::DenyAllResourcePolicy;
pub use resource_policy::RoleRequiredPolicy;
pub use auth_service::*;
pub use jwt::*;
pub use password::*;

Modules§

audit
Structured audit event types for authentication security logging
auth_service
Authentication service implementation
jwt
JWT (JSON Web Token) handling with key rotation and multi-algorithm support
middleware
Authentication middleware
password
Password hashing and verification
permissions
Permission and role-based access control (RBAC)
resource_policy
Resource-level permission guards — bind auth context to entity-level access control.
token_generator
Consolidated token generation service
traits
Trait definitions for authentication system integration

Constants§

VERSION
Auth version