Security Policies (Reference) enforce password requirements, electronic signatures, and session management rules for regulatory compliance and security best practices.
ecurity Policies provide:
Policies enable FDA 21 CFR Part 11 compliance and other regulatory requirements.
Three standard policies are configured:
Policy | Use Case | Typical Settings |
---|---|---|
Default | Standard operations | Basic password, no timeout |
Enhanced | Elevated security | Complex password, session timeout |
Critical | Regulatory compliance | Strong password, e-signature, strict timeout |
Property | Description | Required |
---|---|---|
Name | Unique policy identifier | Yes |
Identification | Password and account rules | Yes |
ESign | Electronic signature settings | No |
Session | Timeout and auto-logoff | No |
Description | Documentation text | No |
Password and account management rules:
Property | Description | Range | Default |
---|---|---|---|
PasswordMinLength | Minimum characters | 0-128 | 0 (no limit) |
PasswordHistory | Previous passwords to remember | 0-5 | 0 |
MinPasswordAge | Hours before change allowed | 0+ | 0 |
MaxPasswordAge | Hours until expiration | 0+ | 0 (never) |
Property | Description | Range | Default |
---|---|---|---|
UserNameMinLength | Minimum username length | 0-128 | 0 |
BlockOnInvalidAttempts | Failed logins before lockout | 0+ | 0 (no limit) |
BlockAging | Hours until auto-unlock | 0+ | 0 (manual) |
AllowPasswordChange | Users can change own password | Yes/No | Yes |
AllowShareUser | Multiple concurrent sessions | Yes/No | Yes |
Electronic signature requirements for critical actions:
Property | Description | Use Case |
---|---|---|
Enabled | Require e-signature | FDA compliance |
TimeoutMinutes | Signature validity period | Re-authentication frequency |
Example:
csharp
// Check if e-signature required
if (@Security.Policy.ESign.Enabled)
{
// Prompt for password
if (!@Security.ValidateESignature())
{
return; // Action cancelled
}
}
Automatic logoff configuration:
Property | Description | Options |
---|---|---|
AutoLogOff | Logoff trigger | None, Inactivity, Duration, Both |
InactivityMinutes | Idle time before logoff | 1-9999 |
DurationHours | Maximum session length | 1-9999 |
Mode | Behavior | Use Case |
---|---|---|
None | No automatic logoff | Dedicated stations |
Inactivity | Logoff after idle time | Shared workstations |
Duration | Logoff after time limit | Shift changes |
Both | Either condition triggers | Maximum security |
csharp
// Get current user's policy
string policyName = @Security.CurrentUser.Policy;
// Check policy settings
var policy = @Security.Policies[policyName];
bool requiresESign = policy.ESign.Enabled;
int passwordMinLength = policy.Identification.PasswordMinLength;
Policy: Critical
Identification:
- PasswordMinLength: 8
- PasswordHistory: 5
- MaxPasswordAge: 2160 (90 days)
- BlockOnInvalidAttempts: 3
ESign:
- Enabled: True
- TimeoutMinutes: 30
Session:
- AutoLogOff: Both
- InactivityMinutes: 15
- DurationHours: 12
Policy: Enhanced
Identification:
- PasswordMinLength: 12
- AllowShareUser: False
- BlockOnInvalidAttempts: 5
- BlockAging: 24
Session:
- AutoLogOff: Inactivity
- InactivityMinutes: 10
Account locked:
Password rejected:
Unexpected logoff:
E-signature issues: