Request a Demo
Platform Infrastructure

Security & IAM

The identity governance, access control, and security operations layer for the Civic platform — every module that needs RBAC, SSO, or security monitoring plugs into Security & IAM.

99.99%

Uptime SLA

<100ms

Auth Check Latency

SOC 2 / NIST

Compliance

8+

Role Templates

Purpose-Built for Canadian Municipalities

Ontario Compliant
MFIPPA Ready
AODA Accessible
Bilingual Support
Canadian Hosted
SOC 2 Aligned

How It Works

The identity journey, step by step

From first registration to golden record resolution — how a resident's identity evolves across the platform.

01

New Staff Onboarding

A new municipal employee is provisioned with the correct roles and access from day one.

How it works

HR creates a new employee record in the HRIS. Security & IAM auto-provisions the staff user account, assigns the role template matching their position (e.g., Bylaw Officer), associates them with their department, and sends a welcome email with SSO activation instructions. The employee logs in via Azure AD, completes MFA enrollment, and has immediate access to exactly the modules their role requires.

Step 1 of 5

Purpose & Scope

What this module owns

Clear ownership boundaries prevent duplication and ensure every capability has exactly one authoritative home.

Owns

15

Delegated to

4

Citizen/resident identity

civic-identity

Audit event storage

audit-trail

Network infrastructure security (firewalls, WAF)

infrastructure layer

Application-level business rules

consuming modules

These capabilities are handled by dedicated modules and consumed via stable API contracts — keeping boundaries clean and ownership unambiguous.

Core Capabilities

What it does

5 capability groups comprising 9 discrete capabilities — each with API surface, business rules, and data ownership.

Multi-level role inheritance with module → entity → action → field-level permission granularity and department scoping.

Role Hierarchy

Multi-level role inheritance (e.g., Department Admin inherits from Department User, which inherits from Base User).

Permission Granularity

Module → Entity → Action → Field level (e.g., permits.application.approve, crm.citizen.sin.view).

Department Scoping

Roles can be scoped to department, ward, facility, or organization-wide.

Data Scoping

Attribute-based filters limit visible records (e.g., 'Clerk sees only their ward's cases').

Pre-built role templates for common municipal positions with support for temporary roles and cross-module composite roles.

Role Assignment

Assign roles to individual users, groups, or org units.

Role Templates

Pre-built templates for common municipal positions (Clerk, Treasurer, CBO, Fire Chief, Planner, Bylaw Officer, IT Admin, CAO).

Temporary Roles

Time-limited role assignment for acting positions, project secondments.

Cross-Module Roles

Composite roles spanning multiple modules (e.g., 'Finance Manager' = AP + AR + GL + Budget roles).

Real-World Scenarios

Who uses this, and how

4 persona-driven scenarios showing how Security & IAM works in practice — from resident registration to privacy compliance.

Finance Director

Segregation of Duties Enforcement

The Finance Director needs to ensure no single person can both create and approve purchase orders, meeting SOC 2 audit requirements.

Steps

  1. 1Finance Director reviews the current role structure in the IAM management console
  2. 2Creates two distinct roles: 'PO Creator' and 'PO Approver' with mutually exclusive permissions
  3. 3Configures a conflict rule preventing both roles from being assigned to the same user
  4. 4Assigns roles to Finance staff based on their responsibilities
  5. 5Runs a compliance report showing zero segregation-of-duties violations
  6. 6Exports the report for the external SOC 2 auditor

Outcome

Complete segregation of duties with automated enforcement. Any attempt to assign conflicting roles is blocked automatically, and the compliance posture is audit-ready at all times.

View scenario

EOC Commander

Cross-Department Emergency Access

During a declared municipal emergency, the Emergency Operations Centre commander needs temporary access across multiple department systems.

Steps

  1. 1The EOC Commander activates the emergency management protocol in the IAM portal
  2. 2Selects the pre-configured 'Emergency Operations' composite role spanning Public Works, Utilities, Fire, and Transit
  3. 3IAM grants elevated cross-department access with a 24-hour window
  4. 4All emergency access actions are logged with enhanced audit detail
  5. 5After the emergency, IAM auto-revokes all elevated permissions
  6. 6A post-incident access review is generated documenting all cross-department actions taken

Outcome

Critical cross-department coordination enabled in minutes without compromising normal access controls. Full audit trail preserves accountability.

View scenario

IT Administrator

Service Account & API Key Governance

The IT team performs a quarterly review of all service accounts and API keys to ensure compliance with the security policy.

Steps

  1. 1IT Admin opens the API Key governance dashboard
  2. 2Reviews 34 active API keys across 12 service accounts
  3. 3Identifies 3 keys approaching the 90-day rotation deadline
  4. 4Rotates the keys with zero downtime using the rotate endpoint
  5. 5Flags 2 keys with no usage in 60 days for decommissioning review
  6. 6Generates the quarterly service account report for the CISO

Outcome

All API keys are within rotation policy. Unused keys identified for cleanup. The CISO receives a clear compliance posture report with zero overdue rotations.

View scenario

Privacy Officer

PII Field-Level Access Review

The Privacy Officer audits which roles can view SIN numbers, ensuring only authorized staff have access to restricted data.

Steps

  1. 1Privacy Officer queries the permission model for all roles with 'sin.view' capability
  2. 2Discovers 4 roles with SIN access: HR Admin, Payroll Processor, Tax Assessment Officer, Social Services Worker
  3. 3Verifies each role's SIN access aligns with business justification
  4. 4Removes SIN access from Tax Assessment Officer (determined unnecessary)
  5. 5Confirms dynamic masking is active — unauthorized users see '***-***-***'

Outcome

SIN access reduced to minimum necessary roles. Dynamic masking confirmed operational. Privacy audit report filed for PIPEDA compliance.

View scenario

Internal Architecture

How it's built

4 architectural layers comprising 24 components — from API gateway to data quality engine.

4 layers · 24 total components

Security & IAM

Every module owns a single bounded context, exposes stable APIs, and can be composed into any Civic product — that's the architecture that scales.

Krutik Parikh

Creator of Civic

Data Model

Entity Architecture

7 entities with 7 relationships — the authoritative schema for this bounded context.

Entities

Select an entity to explore its fields and relationships

API Surface

Integration Endpoints

18 RESTful endpoints across 4 resource groups — plus 11 domain events for async integration.

|
POST

/api/v1/auth/login

Local authentication (if not using SSO)

POST

/api/v1/auth/sso/saml/callback

SAML SSO assertion consumer

GET

/api/v1/auth/sso/oidc/callback

OIDC SSO callback

POST

/api/v1/auth/mfa/verify

Verify MFA challenge

POST

/api/v1/auth/logout

Terminate session

GET

/api/v1/auth/session

Get current session info

Technical Specifications

Performance, Compliance & Configuration

Availability

Target99.99% — authentication failure blocks all platform access

Auth Latency

Target< 100ms for permission checks; < 2s for SSO flow

Session Store

TargetRedis-backed; replicated; < 10ms session lookup

Compliance

TargetSOC 2 Type II, NIST CSF, ISO 27001 control mapping

Encryption

TargetAll credentials encrypted at rest (AES-256); TLS 1.3 in transit

Key Management

TargetHSM-backed key storage for signing keys and service credentials

FAQ

Frequently Asked Questions

Ready to Integrate

Build on Security & IAM

Request an architecture brief, integration guide, or live demo environment for your team.