Define system-wide security policies.
Reference → Modules → Security → UI → RuntimeUsers | Users | Permissions | Policies | Secrets | Monitor
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: 12Policy: Enhanced
Identification:
- PasswordMinLength: 12
- AllowShareUser: False
- BlockOnInvalidAttempts: 5
- BlockAging: 24
Session:
- AutoLogOff: Inactivity
- InactivityMinutes: 10Account locked:
Password rejected:
Unexpected logoff:
E-signature issues: