Security
IP restrictions
The portal supports IP-based access restrictions for sensitive sessions or roles. Review and configure IP allowlists at https://portal.cicops.ai/ip_restrictions (opens in a new tab) (deeper changes may need engineering).
Use this for high-security customers who want to limit access to their corporate network.
Captcha
Captcha is enabled on login and password reset to block automated abuse. There's no admin toggle for this — it's always on for those routes.
2FA enforcement
You can — and should — encourage every admin and supervisor to enable 2FA. The portal does not currently force-enable 2FA, but admins should self-police.
When onboarding a new admin or supervisor, walk them through 2FA setup as part of the orientation. See First-time Setup.
Doorkeeper / API tokens
External integrations authenticate with OAuth2 access tokens (not user passwords). Tokens have scoped permissions and can be revoked. Coordinate with engineering when issuing or revoking tokens.
Token lifecycle:
- Application registration — engineering creates an OAuth application in the portal
- Authorization — the integrator follows the OAuth2 authorization flow
- Access token — the integrator receives a token they use on every API call
- Revocation — engineering can revoke the token at any time
See API Reference for how integrators use the tokens.
Disabling a user's 2FA
When a user is locked out and has lost their recovery codes:
- Verify their identity through an out-of-band channel (don't trust the email — that may be compromised).
- Open their user record at Users (opens in a new tab).
- Use the Disable 2FA action.
- Inform them they should re-enable 2FA after logging in.
- Note this in your support records.
Session management
The portal uses standard Rails sessions. Sessions are time-limited but not infinite. Logging out invalidates the session.
If you suspect a session has been compromised:
- Reset the affected user's password (this invalidates current sessions)
- Force them to re-enroll in 2FA
- Review their recent audit log for unfamiliar activity
Audit and compliance
Every meaningful action in the portal is logged with attribution. See the audit trail section in Users & Impersonation.
For compliance requests (regulatory, legal hold, customer data export):
- The audit log is queryable by engineering
- Customer data export is available via the API and via CSV exports
- True deletion (vs. soft delete / discard) requires engineering involvement
Cookie banners and TLS
The portal terminates TLS at the front (Cloudflare proxy + Kamal proxy with Let's Encrypt). All traffic is HTTPS-only. There's no cookie banner because the portal sets only essential authentication cookies.
Next
- Users & Impersonation — user-level access controls
- On-call Playbook — incident response for security events