GitHub - daddeJ/MicroservicesDemo · GitHub
Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

JWT Authentication System - Development Progress

Tech Stack

.NET C# SQL Server Docker GitHub

Enhanced ASP.NET Core Identity Authentication Flows with Dual-Database Security & Logging

This document explains the enhanced Identity flows in ASP.NET Core, integrated with advanced security practices, dual-database architecture, and comprehensive monitoring capabilities.


🔹 Enhanced Security Architecture

  • Dual Database Design: Separate databases for application data and logging
  • Advanced Password Security: PBKDF2/Argon2 with 100K+ iterations
  • Comprehensive Data Masking: Email, IP, and PII masking across all logs
  • Structured Logging: SQL Server logging with custom columns and enrichers
  • Real-time Security Monitoring: Background services for threat detection
  • Risk-Based Categorization: Security events classified by risk levels
  • Automated Log Analysis: Pattern detection for suspicious activities
  • Performance Tracking: Request duration monitoring with alerting

1. Enhanced User Registration Flow

[Browser] ---> GET /Account/Register
    Middleware Order:
        EnhancedLoggingMiddleware --> 
            - Logs structured request data
            - Masks sensitive query parameters
            - Adds correlation ID, user context
            - Tracks performance metrics
        Authentication --> Not required, continues
        Authorization --> [AllowAnonymous] permits access
        ApiValidationMiddleware -->
            - Honeypot field detection
            - User-Agent validation
            - Suspicious pattern detection
        Routing --> Routes to AccountController.Register(GET)

[Controller] ---> Return registration form metadata + validation rules

[Browser] ---> POST /Account/Register
    Enhanced middleware flow:
        - Request validation with bot detection
        - Rate limiting (5 attempts/minute per IP)
        - Model binding + enhanced validation
    
    UserRegistrationService.RegisterUserAsync():
        - UserManager.CreateAsync(user, password)
            * Email uniqueness validation
            * Custom password validator (weak patterns, email similarity)
            * Password hashed with PBKDF2 (100K iterations)
            * User stored in ApplicationDbContext (main DB)
        
        - Claims assignment (email, name, creation timestamp)
        - SignInManager.SignInAsync() - Issues encrypted cookie
        
    Comprehensive Logging:
        ApplicationDbContext: User data
        LoggingDbContext: 
            * ApplicationLogs (Serilog structured logs)
            * UserActivityLogs (registration success/failure)
            * SecurityAuditLogs (validation failures, suspicious patterns)
        
    Background Security Analysis:
        - Pattern detection (multiple attempts from IP)
        - Risk assessment and alerting
        - Brute force detection

Enhanced Security + Logging:

  • Multi-layer data masking: john.doe@example.com → jo***@example.com
  • Structured logging with enrichers:
    logger.LogInformation("User registration successful for {UserId} - {MaskedEmail} from {IpAddress}");
    // Automatically enriched with: CorrelationId, EventType, RiskLevel, MachineName, ProcessId
  • Risk-based event classification:
    • INFO: Successful registration
    • WARN: Validation failures
    • ERROR: System errors
    • CRITICAL: Security threats detected
  • Custom log repository tracking:
    • User activities with success/failure status
    • Security events with risk levels (Low/Medium/High/Critical)
    • IP-based threat monitoring

2. Enhanced User Login Flow

[Browser] ---> GET /Account/Login
    EnhancedLoggingMiddleware:
        - Request tracking with performance metrics
        - User context enrichment
        - Correlation ID assignment
    Authentication --> Checks existing cookie
    Authorization --> [AllowAnonymous] permits

[Browser] ---> POST /Account/Login
    Rate Limiting --> 10 attempts/minute per IP
    SignInManager.PasswordSignInAsync():
        - User existence check
        - Password hash comparison (secure timing)
        - Lockout policy enforcement (5 attempts = 15min lockout)
        - Cookie issuance on success
        
    Enhanced Logging (Dual Database):
        Main DB: User authentication state
        Logging DB:
            * ApplicationLogs: Structured Serilog entries
            * UserActivityLogs: Login attempts with IP/UserAgent
            * SecurityAuditLogs: Failed attempts, lockouts, anomalies
            
    Real-time Security Monitoring:
        - Failed login pattern detection
        - Geographic anomaly detection
        - Brute force attempt alerting
        - Automated threat response

Enhanced Security + Logging:

  • Never log credentials - only masked identifiers
  • Comprehensive tracking:
    logger.LogUserRegistrationSuccess(userId, maskedEmail, ipAddress, correlationId);
    // Custom extension methods with structured data
  • Security event categorization:
    • LOGIN_SUCCESS (Low risk)
    • LOGIN_FAILURE (Medium risk)
    • ACCOUNT_LOCKOUT (High risk)
    • BRUTE_FORCE_DETECTED (Critical risk)

3. Enhanced Protected Resource Access Flow

[Browser] ---> GET /SecureEndpoint
    EnhancedLoggingMiddleware:
        - Performance tracking (request start time)
        - User context extraction from claims
        - Request metadata collection
    
    Authentication Middleware:
        - Cookie decryption and validation
        - Claims principal construction
        - Security stamp verification
    
    Authorization Middleware:
        - Role/policy evaluation
        - Claims-based access control
        - Resource-specific permissions
    
    Enhanced Response Logging:
        - Success: "User {UserId} accessed {Resource} in {Duration}ms"
        - Failure: "Access denied for {UserId} to {Resource} - Reason: {Reason}"
        - Performance alerts for slow requests (>5000ms)
        
    Audit Trail (Logging DB):
        - User activity tracking
        - Resource access patterns
        - Performance metrics
        - Security violations

Enhanced Security Features:

  • Dynamic log levels based on response time and status codes
  • Resource access patterns for anomaly detection
  • Performance-based alerting for potential DoS attacks

4. Enhanced User Logout Flow

[Browser] ---> POST /Account/Logout
    Authentication --> Validates current session
    SignInManager.SignOutAsync():
        - Cookie expiration
        - Claims clearing
        - Security stamp update
        
    Comprehensive Logging:
        - Session duration tracking
        - Logout reason (user-initiated vs timeout)
        - Device/location information
        
    Security Cleanup:
        - Session invalidation
        - Token revocation (if applicable)
        - Security event logging

5. Enhanced Password Reset Flow

[Browser] ---> POST /Account/ForgotPassword
    Rate Limiting --> 3 requests/hour per email
    UserManager.GeneratePasswordResetTokenAsync():
        - Secure token generation
        - Email existence validation (without disclosure)
        - Token expiration (15 minutes)
        
    Enhanced Security Logging:
        - Password reset requests (masked email)
        - Token generation events
        - Suspicious pattern detection
        
[Browser] ---> POST /Account/ResetPassword
    Token Validation:
        - Expiration check
        - Single-use enforcement  
        - User matching verification
        
    Password Update:
        - Enhanced password validation
        - Security stamp update
        - All sessions invalidation
        
    Security Audit:
        - Password change events
        - Token usage tracking
        - Account security timeline

6. Real-time Security Monitoring System

SecurityMonitoringService (Background Service):
    Every 15 minutes:
        - Brute force detection (5+ failures in 15 minutes)
        - Suspicious activity analysis
        - Geographic anomaly detection
        - After-hours registration monitoring
        
    LogAnalysisService:
        - Pattern recognition algorithms
        - Risk score calculation  
        - Automated threat response
        - Security team alerting
        
    Threat Detection Categories:
        - MULTIPLE_FAILED_REGISTRATIONS (Medium risk)
        - AFTER_HOURS_REGISTRATIONS (Medium risk)
        - BRUTE_FORCE_ATTACK (Critical risk)
        - GEOGRAPHIC_ANOMALY (High risk)
        - RAPID_ACCOUNT_CREATION (High risk)

🔹 Enhanced Middleware Security Pipeline

Request Flow:

  1. EnhancedLoggingMiddleware

    • Correlation ID assignment
    • Performance tracking start
    • Request metadata collection
    • Sensitive data masking
  2. ApiValidationMiddleware

    • Bot detection (honeypot fields)
    • User-Agent validation
    • Suspicious pattern detection
    • Rate limiting enforcement
  3. AuthenticationMiddleware

    • Cookie validation and decryption
    • Claims principal construction
    • Security stamp verification
  4. AuthorizationMiddleware

    • Role-based access control
    • Claims policy evaluation
    • Resource-specific permissions
  5. Rate Limiting Middleware

    • Per-IP request limiting
    • Per-user action throttling
    • Adaptive rate limiting
  6. Controller Action

    • Business logic execution
    • Custom authorization checks
    • Data access operations

Response Flow (reverse order):

  • Performance metrics collection
  • Security event logging
  • Audit trail generation
  • Response time alerting

🔹 Dual Database Architecture Benefits

Application Database (UserRegistrationDB)

  • User accounts and profiles
  • Authentication credentials
  • Role and permission data
  • Business application data
  • Optimized for OLTP operations

Logging Database (UserRegistrationLogsDB)

  • ApplicationLogs: Serilog structured logs with custom columns
  • UserActivityLogs: User action tracking with success/failure
  • SecurityAuditLogs: Security events with risk categorization
  • Optimized for write-heavy operations
  • Independent scaling and backup strategies
  • Enhanced security through data isolation

🔹 Advanced Monitoring & Analytics

Management APIs (Admin-only access):

  • GET /api/Logging/user-activities/{userId} - User activity history
  • GET /api/Logging/security-events - Security event dashboard
  • GET /api/Logging/security-summary - Threat intelligence summary
  • GET /api/Logging/registration-stats - Registration analytics
  • GET /api/Logging/health - System health monitoring
  • POST /api/Logging/cleanup - Manual log maintenance

Automated Log Management:

  • LogCleanupService: Daily cleanup at 2 AM
  • SecurityMonitoringService: 15-minute threat detection cycles
  • Configurable retention policies:
    • Application logs: 30 days
    • User activity logs: 90 days
    • Security audit logs: 180 days (compliance)

Advanced Analytics Features:

  • Suspicious activity detection with machine learning patterns
  • Geographic anomaly detection for user logins
  • Behavioral analysis for account takeover prevention
  • Automated alerting with configurable thresholds
  • Compliance reporting for audit requirements

Performance Monitoring:

  • Request duration tracking with percentile analysis
  • Database performance metrics
  • Memory and CPU usage monitoring
  • Error rate trending and alerting
  • Capacity planning recommendations

🔹 Security Compliance Features

Data Protection:

  • GDPR compliance with data masking and retention policies
  • PCI DSS alignment for payment data handling
  • HIPAA considerations for healthcare applications
  • SOX compliance for financial reporting

Audit Requirements:

  • Immutable audit trails in separate database
  • Digital signatures for critical transactions
  • Data integrity verification with checksums
  • Regulatory reporting capabilities

Incident Response:

  • Automated threat detection and response
  • Security incident logging with severity classification
  • Forensic data collection for investigations
  • Breach notification preparation

This enhanced architecture provides enterprise-grade security, comprehensive monitoring, and scalable logging capabilities while maintaining high performance and compliance standards.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages