This document explains the enhanced Identity flows in ASP.NET Core, integrated with advanced security practices, dual-database architecture, and comprehensive monitoring capabilities.
- 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
[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 registrationWARN: Validation failuresERROR: System errorsCRITICAL: 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
[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)
[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
[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
[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
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)
Request Flow:
-
EnhancedLoggingMiddleware
- Correlation ID assignment
- Performance tracking start
- Request metadata collection
- Sensitive data masking
-
ApiValidationMiddleware
- Bot detection (honeypot fields)
- User-Agent validation
- Suspicious pattern detection
- Rate limiting enforcement
-
AuthenticationMiddleware
- Cookie validation and decryption
- Claims principal construction
- Security stamp verification
-
AuthorizationMiddleware
- Role-based access control
- Claims policy evaluation
- Resource-specific permissions
-
Rate Limiting Middleware
- Per-IP request limiting
- Per-user action throttling
- Adaptive rate limiting
-
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
- User accounts and profiles
- Authentication credentials
- Role and permission data
- Business application data
- Optimized for OLTP operations
- 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
GET /api/Logging/user-activities/{userId}- User activity historyGET /api/Logging/security-events- Security event dashboardGET /api/Logging/security-summary- Threat intelligence summaryGET /api/Logging/registration-stats- Registration analyticsGET /api/Logging/health- System health monitoringPOST /api/Logging/cleanup- Manual log maintenance
- 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)
- 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
- Request duration tracking with percentile analysis
- Database performance metrics
- Memory and CPU usage monitoring
- Error rate trending and alerting
- Capacity planning recommendations
- 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
- Immutable audit trails in separate database
- Digital signatures for critical transactions
- Data integrity verification with checksums
- Regulatory reporting capabilities
- 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.
