Privicore
  1. Policy
Privicore
  • Privicore API
  • Utility
    • Utility
    • Check server health
      GET
    • Request command id status
      GET
  • Profile
    • Profile Model and Authentication Workflow
    • Register new profile
      POST
    • Authenticate
      POST
    • Retrieve profile id
      GET
    • Change password
      POST
    • Generate qr token for authorization
      POST
    • Reauthorize authorization token
      POST
    • Revoke authorization token
      POST
    • Retrieve token expiry
      POST
  • OAuth Application
    • OAuth Application Management
    • Register OAuth Application
      POST
    • Retrieve OAuth app configuration
      POST
    • Request OAuth app authorization code
      GET
    • Retrieve OAuth app authorization code
      POST
    • Obtain OAuth app access token
      POST
    • OAuth application list
      GET
    • Retrieve OAuth application scope
      GET
    • Refresh OAuth app access token
      POST
  • Public key
    • Public and Private Key Management
    • Generate your private and public keys
    • Register public key
    • Retrieve public key
    • Retrieve CAB public key
  • Data Token
    • Data Token Management
    • Reserve token space
    • Retrieve temporary data token
    • Exchange data for token
    • Upstream file via stream auth
    • Request data via token
    • Download data
    • Configure information security risk meta
    • Configure file meta
    • List data tokens
    • Update data token
    • Delete data
  • Device
    • Device Management
    • Request unique identifier (i.e. Register new device)
    • Retrieve unique identifier
    • Retrieve profile devices
    • Configure device meta
    • Approve device
    • Reject device
    • Retrieve device configuration
    • Remove device
  • Storage
    • Storage Device Management
    • Register storage device
    • List storage devices
    • Synchronize device
    • Remove storage
  • Verified authenticator
    • Authenticator and Voting Management
    • Register authenticator
    • List verified authenticators
    • Retrieve voting strategy
    • Set quorum size
    • Set quorum strategy
    • Set voting time limit
    • Set maximum voting attempts
    • Remove authenticator
    • Register voting configuration
    • Update voting configuration
    • List voting configurations
    • Retrieve voting configuration
  • Policy
    • Policy Management
    • List policy templates
      GET
    • Register policy
      POST
    • List active policies
      GET
    • List inactive policies
      GET
    • Activate policy
      POST
    • Deactivate policy
      POST
    • Delete policy
      POST
    • List registered policies
      GET
    • Retrieve registered policy
      GET
  • Voting
    • Create voting
    • Check pool status
  • Schemas
    • Response
      • CommandAccepted
      • Unauthorized
      • ValidationErrors
    • Schemas
    • profileId
    • deviceIdentifier
    • directoryId
    • directoryName
    • directoryShortName
    • givenName
    • familyName
    • createdAt
    • meta
  1. Policy

Policy Management

Introduction#

Policies are the decision-making framework within Privicore that determines when operations require authorization, which voting configurations to apply, and how different workflows should be controlled. Policies enable automated, rule-based governance of system operations based on context, user attributes, and security requirements.

What Are Policies?#

A Policy is a set of rules that:
Evaluates operations as they occur in the system
Determines whether an operation requires additional authorization
Triggers voting workflows when authorization is needed
Applies specific voting configurations to different operation types
Enables automated decision-making based on predefined criteria
Policies connect the operational layer (data tokens, authentication, device management) with the authorization layer (voting, Authenticators, approval workflows).

Policy Architecture#

Policy Evaluation Flow#

Operation Initiated (e.g., login, data upload, account change)
         ↓
Policy Engine Evaluates Active Policies
         ↓
Does Policy Match Operation? → No → Operation Proceeds
         ↓ Yes
Policy Requires Voting? → No → Operation Proceeds
         ↓ Yes
Create Poll with Configured Voting Parameters
         ↓
Distribute Ballots to Authenticators
         ↓
Collect Votes
         ↓
Resolve Poll According to Strategy
         ↓
Operation Proceeds or Fails Based on Outcome

Policy Components#

Policy Template#

A policy template is a predefined policy structure provided by Privicore that addresses common authorization scenarios. Templates include:
Preconfigured rules and conditions
Recommended voting configurations
Operation type mappings
Best practice settings
Templates serve as starting points that can be customized to specific requirements.

Registered Policy#

A registered policy is a policy created from a template (or custom-built) and configured with specific parameters for your profile. Registered policies can be:
Active: Currently evaluating operations and triggering workflows
Inactive: Registered but not currently enforcing rules

Policy Conditions#

Policies evaluate conditions to determine if they should trigger:
Operation type: What action is being performed (login, data exchange, account modification)
User attributes: Profile characteristics, security classifications, roles
Context: Location, time, device, network conditions
Data attributes: Classification, size, sensitivity level

Policy Lifecycle#

Browse Policy Templates → Select Template
         ↓
Register Policy → Configure Parameters
         ↓
Policy Created (Inactive by Default)
         ↓
Activate Policy → Begins Evaluating Operations
         ↓
Policy Triggers Voting When Conditions Match
         ↓
Deactivate Policy (optional) → Stops Evaluation
         ↓
Delete Policy (optional) → Permanent Removal

Policy Use Cases#

Multi-Factor Authentication#

Scenario: Require additional authentication when logging in from new locations.
Policy Configuration:
Trigger: Login operation from unrecognized location
Voting Configuration: Affirmative strategy (single approval)
Authenticators: User's registered phone and laptop
Time Limit: 60 seconds
Workflow:
1.
User attempts login from new location
2.
Policy detects unrecognized location
3.
Ballots sent to user's Authenticators
4.
User approves on phone
5.
Login proceeds

High-Security Data Operations#

Scenario: Require unanimous approval for data classified as "top-secret".
Policy Configuration:
Trigger: Data token exchange with "top-secret" classification
Voting Configuration: Unanimous strategy
Authenticators: All registered Authenticators
Time Limit: 300 seconds
Workflow:
1.
Application attempts to exchange top-secret data for token
2.
Policy detects security classification
3.
Ballots sent to all Authenticators
4.
All devices must approve within 5 minutes
5.
Data exchange proceeds only if all approve

Account Modification Protection#

Scenario: Require majority approval for critical account changes.
Policy Configuration:
Trigger: Password change, email change, or account deletion
Voting Configuration: Consensus strategy (majority)
Authenticators: All registered Authenticators
Time Limit: 180 seconds
Workflow:
1.
User initiates account modification
2.
Policy detects critical operation
3.
Ballots sent to all Authenticators
4.
Majority must approve within 3 minutes
5.
Account change proceeds if majority approves

Time-Based Access Control#

Scenario: Require approval for data access outside business hours.
Policy Configuration:
Trigger: Data token request outside 9am-5pm
Voting Configuration: Affirmative strategy
Authenticators: Manager's Authenticator devices
Time Limit: 120 seconds
Workflow:
1.
User requests data at 8pm
2.
Policy detects out-of-hours access
3.
Ballots sent to manager's devices
4.
Manager approves or rejects
5.
Data access proceeds based on manager's decision

Automated Approval Based on Context#

Scenario: Automatically approve low-risk operations, require voting for high-risk.
Policy Configuration:
Trigger: Data token exchange
Condition: If data size < 1MB and classification = "internal"
Action: Auto-approve (no voting)
Else: Trigger voting with consensus strategy
Workflow:
1.
Application exchanges data for token
2.
Policy evaluates data size and classification
3.
If low-risk: operation proceeds automatically
4.
If high-risk: voting workflow triggered

Policy Management Operations#

List Policy Templates#

Browse available policy templates provided by Privicore to find suitable starting points for your authorization requirements.

Register Policy#

Create a new policy from a template or custom configuration, defining the rules and voting configurations for specific operations.

List Active Policies#

View all policies currently enforcing authorization rules and triggering voting workflows.

List Inactive Policies#

View registered policies that are not currently active but can be activated when needed.

Activate Policy#

Enable a registered policy to begin evaluating operations and triggering voting workflows.

Deactivate Policy#

Disable an active policy, preventing it from evaluating operations without deleting the policy configuration.

Delete Policy#

Permanently remove a registered policy from your profile.

List Registered Policies#

View all policies (both active and inactive) registered under your profile.

Retrieve Registered Policy#

Get detailed configuration for a specific policy, including rules, conditions, and associated voting configurations.

Policy State Management#

Policies exist in one of three states:

Template State#

Available policy templates that can be instantiated. Templates are read-only and provided by Privicore.

Inactive State#

Registered policies that are configured but not currently evaluating operations. Inactive policies:
Retain all configuration
Do not trigger voting workflows
Can be activated at any time
Are useful for temporarily suspending policies without losing configuration

Active State#

Registered policies that are currently enforcing rules. Active policies:
Evaluate all matching operations
Trigger voting workflows when conditions are met
Apply configured voting parameters
Can be deactivated to suspend enforcement

Policy Priority and Conflicts#

When multiple active policies match the same operation:
Priority Ordering: Policies may have priority levels determining evaluation order
First Match: First matching policy triggers (default behavior)
Multiple Triggers: Multiple policies can trigger for the same operation (advanced configuration)
Conflict Resolution: System-defined rules resolve conflicts between policies

Integration with Voting Configurations#

Policies reference voting configurations to determine authorization parameters:
Policy Matches Operation
         ↓
Policy References Voting Configuration
         ↓
Voting Configuration Provides:
    - Strategy (unanimous, consensus, etc.)
    - Time Limit
    - Quorum Size
    - Authenticator Selection
         ↓
Poll Created with These Parameters
This separation enables:
Reusable Configurations: One voting configuration used by multiple policies
Centralized Management: Update voting parameters in one place
Flexible Authorization: Different operations use different approval requirements

Security Considerations#

Policies enable fine-grained access control based on operation context
Active policies automatically enforce authorization without manual intervention
Deactivate policies to temporarily suspend rules without losing configuration
Test policies in inactive state before activation
Multiple policies can create complex authorization requirements - design carefully
Policies with overly restrictive conditions may block legitimate operations
Balance security (strict policies) with usability (flexible policies)
Monitor policy triggers and voting outcomes for security auditing

Policy Best Practices#

Start with Templates#

Use provided policy templates as starting points rather than creating policies from scratch. Templates incorporate security best practices and common patterns.

Test Before Activating#

Register policies in inactive state, verify configuration, then activate when ready.

Use Descriptive Names#

Name policies clearly to indicate their purpose (e.g., "login-mfa-policy", "top-secret-data-policy").

Monitor Policy Impact#

Track how often policies trigger and voting outcomes to ensure policies achieve intended security goals without excessive friction.

Layer Security#

Use multiple policies for defense in depth - different policies for different operation types and security levels.

Document Policy Intent#

Maintain documentation explaining why policies exist and what threats they address.
Modified at 2025-12-30 11:42:55
Previous
Retrieve voting configuration
Next
List policy templates
Built with