What it does. Configure and execute access recertification campaigns in Saviynt Enterprise Part of mukul975/Anthropic-Cybersecurity-Skills (817 security skills) (mukul975/Anthropic-Cybersecurity-Skills).
Install
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-access-recertification-with-saviynt, or copy the skill folder into ~/.claude/skills/performing-access-recertification-with-saviynt/.
- Raw file:
curl -sL https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/HEAD/skills/performing-access-recertification-with-saviynt/SKILL.md
SKILL.md (verbatim)
name: performing-access-recertification-with-saviynt
description: Configure and execute access recertification campaigns in Saviynt Enterprise
Identity Cloud to validate user entitlements, revoke excessive access, and maintain
compliance with SOX, SOC 2, and HIPAA. Use when launching or managing certification
campaigns for users/entitlements, remediating access review findings, or documenting
identity governance evidence for an audit.
domain: cybersecurity
subdomain: identity-access-management
tags:
- saviynt
- access-recertification
- identity-governance
- compliance
- certification-campaign
- iga
version: '1.0'
author: mahipal
license: Apache-2.0
nist_csf:
- PR.AA-01
- PR.AA-02
- PR.AA-05
- PR.AA-06
mitre_attack:
- T1078
- T1110
- T1556
- T1098
- T1071
mitre_f3:
version: '1.1'
tactics:
- initial-access
- positioning
- defense-impairment
- resource-development
techniques:
- id: T1586
name: Compromise Accounts
tactic: resource-development
source: attack
- id: F1033
name: Insider Access Abuse
tactic: initial-access
source: f3
- id: F1005
name: Account Manipulation
tactic: positioning
source: f3
- id: F1005.002
name: 'Account Manipulation: Add Authorized User'
tactic: positioning
source: f3
- id: F1005.007
name: 'Account Manipulation: Enable Account Features'
tactic: defense-impairment
source: f3
Performing Access Recertification with Saviynt
Overview
Access recertification (also called access certification or access review) is a periodic process where designated reviewers validate that users have appropriate access to systems and data. Saviynt Enterprise Identity Cloud (EIC) automates this process through certification campaigns that present reviewers with current access assignments and collect approve/revoke/conditionally-certify decisions. Campaigns can be triggered on schedule (quarterly, semi-annually), event-driven (department transfer, role change), or on-demand. Saviynt provides intelligence features including risk scoring, usage analytics, and peer-group analysis to help reviewers make informed decisions.
When to Use
- When conducting security assessments that involve performing access recertification with saviynt
- When following incident response procedures for related security events
- When performing scheduled security testing or auditing activities
- When validating security controls through hands-on testing
Prerequisites
- Saviynt Enterprise Identity Cloud (EIC) tenant with admin access
- Identity data synchronized from authoritative sources (HR, AD, cloud)
- Entitlement data imported from target applications
- Certifier roles assigned (managers, application owners, data owners)
- Campaign templates defined for each certification type
Core Concepts
Campaign Types
| Type |
Scope |
Trigger |
Certifier |
| User Manager |
All access for users under a manager |
Scheduled (quarterly) |
Direct manager |
| Entitlement Owner |
All users with a specific entitlement |
Scheduled (semi-annually) |
Entitlement/app owner |
| Application |
All access to a specific application |
Scheduled |
Application owner |
| Role-Based |
All users assigned to a specific role |
Scheduled |
Role owner |
| Event-Based |
Users whose attributes changed |
Attribute change trigger |
New manager |
| Micro-Certification |
Single user, single entitlement |
On-demand |
Manager or owner |
Certification Decisions
| Decision |
Effect |
Use Case |
| Certify (Approve) |
Access maintained |
Access is still required |
| Revoke |
Access removal ticket created |
Access no longer needed |
| Conditionally Certify |
Access maintained with conditions |
Access needed temporarily, review again |
| Delegate |
Reassign to another certifier |
Certifier lacks knowledge to decide |
| Abstain |
No decision recorded |
Conflict of interest |
Campaign Lifecycle
CONFIGURATION → PREVIEW → ACTIVE → IN PROGRESS → COMPLETED → REMEDIATION
│ │ │ │ │ │
│ │ │ │ │ └── Revoke tickets
│ │ │ │ │ executed
│ │ │ │ │
│ │ │ │ └── All decisions
│ │ │ │ collected
│ │ │ │
│ │ │ └── Certifiers reviewing
│ │ │ and making decisions
│ │ │
│ │ └── Campaign launched,
│ │ notifications sent
│ │
│ └── Read-only preview for validation
│
└── Campaign parameters defined
Workflow
In Saviynt Admin Console:
- Navigate to Certifications > Campaign > Create New Campaign
- Define campaign parameters:
| Parameter |
Value |
| Campaign Name |
Q1 2025 Manager Access Review |
| Campaign Type |
User Manager |
| Description |
Quarterly review of all user access |
| Certifier Type |
Manager (dynamic - user's direct manager) |
| Secondary Certifier |
Application Owner (fallback if manager unavailable) |
| Due Date |
14 days from launch |
| Reminder Schedule |
Day 7, Day 10, Day 13 |
| Escalation |
Auto-revoke on Day 15 if no decision |
Configure scope filters:
- Include: All active users
- Exclude: Service accounts, break-glass accounts
- Application filter: All connected applications
Configure intelligence features:
- Enable risk scoring (high-risk entitlements highlighted)
- Enable usage data (last access date shown)
- Enable peer analysis (compare access to peer group)
- Enable SoD violation flagging
Customize what certifiers see during the review:
Columns Displayed:
- User name and title
- Application name
- Entitlement/role name
- Risk score (1-10)
- Last access date
- Peer group comparison (% of peers with same access)
- SoD violation flag
Decision Options:
- Certify with justification (free text)
- Revoke with reason (dropdown: no longer needed, SoD conflict, role change)
- Conditionally certify with expiry date
Bulk Actions:
- Certify all low-risk items
- Revoke all items not accessed in 90+ days
- Filter by application, risk level, or SoD status
Step 3: Launch Campaign via API
import requests
SAVIYNT_URL = "https://tenant.saviyntcloud.com"
SAVIYNT_TOKEN = "your-api-token"
def create_certification_campaign(campaign_config):
"""Create and launch a Saviynt certification campaign."""
headers = {
"Authorization": f"Bearer {SAVIYNT_TOKEN}",
"Content-Type": "application/json"
}
# Create campaign
response = requests.post(
f"{SAVIYNT_URL}/ECM/api/v5/createCampaign",
headers=headers,
json={
"campaignname": campaign_config["name"],
"campaigntype": campaign_config["type"],
"description": campaign_config["description"],
"certifier": campaign_config["certifier_type"],
"duedate": campaign_config["due_date"],
"reminderdays": campaign_config["reminder_days"],
"autorevoke": campaign_config.get("auto_revoke", True),
"autorevokedays": campaign_config.get("auto_revoke_days", 15),
"scope": campaign_config.get("scope", {}),
}
)
response.raise_for_status()
campaign_id = response.json().get("campaignId")
# Launch campaign
launch_response = requests.post(
f"{SAVIYNT_URL}/ECM/api/v5/launchCampaign",
headers=headers,
json={"campaignId": campaign_id}
)
launch_response.raise_for_status()
return {
"campaign_id": campaign_id,
"status": "launched",
"certifications_created": launch_response.json().get("certificationCount", 0)
}
def get_campaign_status(campaign_id):
"""Get current status and progress of a campaign."""
headers = {"Authorization": f"Bearer {SAVIYNT_TOKEN}"}
response = requests.get(
f"{SAVIYNT_URL}/ECM/api/v5/getCampaignDetails",
headers=headers,
params={"campaignId": campaign_id}
)
response.raise_for_status()
data = response.json()
return {
"campaign_id": campaign_id,
"status": data.get("status"),
"total_items": data.get("totalLineItems", 0),
"certified": data.get("certifiedCount", 0),
"revoked": data.get("revokedCount", 0),
"pending": data.get("pendingCount", 0),
"completion_rate": data.get("completionPercentage", 0),
}
Step 4: Monitor Campaign Progress
Track certification progress and send escalations:
- Dashboard: Saviynt provides real-time campaign dashboard with completion rates
- Reminders: Automatic email reminders at configured intervals
- Escalation: If certifier does not respond by due date, escalate to manager's manager or auto-revoke
- Delegation: Allow certifiers to delegate specific items to application owners
After campaign closes:
- Auto-Remediation: Saviynt automatically creates provisioning tasks to revoke denied access
- Ticket Integration: Revocation tasks create tickets in ServiceNow/Jira for tracking
- Grace Period: Configure a grace period (e.g., 5 business days) before access is actually removed
- Verification: After revocation, verify access is removed from target systems
- Audit Trail: All decisions, revocations, and remediations logged for compliance evidence
Validation Checklist
References
Other files in this skill
assets/template.md (verbatim)
Access Recertification Campaign Template
Campaign Details
| Field |
Value |
| Campaign Name |
|
| Campaign Type |
User Manager / Entitlement Owner / Application |
| Scope |
All users / Department / Application |
| Launch Date |
|
| Due Date |
|
| Certifier |
Manager / App Owner / Data Owner |
Campaign Results
| Metric |
Count |
Percentage |
| Total Items |
|
100% |
| Certified (Approved) |
|
|
| Revoked |
|
|
| Conditionally Certified |
|
|
| Pending (Not Reviewed) |
|
|
| Delegated |
|
|
| User |
Entitlement |
Decision |
Remediation Status |
Completed Date |
|
|
Revoke |
Pending/In Progress/Done |
|
Compliance Evidence
Sign-Off
| Role |
Name |
Date |
| Campaign Manager |
|
|
| Compliance Officer |
|
|
| IT Security Lead |
|
|
references/api-reference.md (verbatim)
API Reference: Saviynt Access Recertification
Saviynt EIC REST API v5
Authentication
POST /ECM/api/login
Body: {"username": "admin", "password": "pass"}
Returns: {"access_token": "...", "token_type": "Bearer"}
Certification Endpoints
| Method |
Endpoint |
Description |
| POST |
/ECM/api/v5/listCertification |
List campaigns |
| POST |
/ECM/api/v5/getCertificationDetails |
Campaign statistics |
| POST |
/ECM/api/v5/getCertificationItems |
Get review items |
| POST |
/ECM/api/v5/certifyItems |
Certify/revoke items |
listCertification Payload
| Field |
Description |
certificationstatus |
active, completed, expired |
max |
Maximum results per page |
offset |
Pagination offset |
Certification Item Fields
| Field |
Description |
username |
Identity under review |
entitlement_value |
Access being reviewed |
risk_score |
Computed risk (0-10) |
last_used_date |
Last access usage date |
peer_group_match |
Whether peers have same access |
certifyItems Actions
| Action |
Description |
certify |
Approve continued access |
revoke |
Remove access |
consult |
Request additional reviewer input |
Campaign Types
| Type |
Trigger |
| User Manager |
Manager reviews direct reports |
| Application Owner |
App owner reviews all users |
| Entitlement Owner |
Entitlement owner reviews holders |
| Event-Based |
Triggered by role/department change |
References
references/standards.md (verbatim)
Access Recertification with Saviynt - Standards Reference
Compliance Requirements for Access Reviews
SOX Section 404 (Sarbanes-Oxley)
- Quarterly access reviews for financially significant applications
- Evidence of review decisions with justification
- Remediation of revoked access within defined SLA
- Separation of duties validation during certification
SOC 2 Type II
- CC6.1: Logical access controls
- CC6.2: User registration and authorization
- CC6.3: Access modification and removal
- Semi-annual certification campaigns required for trust service criteria
PCI DSS v4.0
- 7.2.4: User accounts and access reviewed at least every 6 months
- 7.2.5: Application and system accounts reviewed every 6 months
- Evidence of review decisions required
HIPAA Security Rule
- 164.312(a)(1): Access control standard
- 164.308(a)(3)(ii)(A): Workforce clearance procedure
- 164.308(a)(4): Information access management
- Annual access reviews for PHI-accessing systems
GDPR Article 5(1)(f)
- Appropriate security of personal data
- Regular access reviews ensure only authorized personnel access PII
- Documentation of access review decisions
Saviynt Campaign Configuration Standards
Campaign Frequency by Compliance
| Framework |
Minimum Frequency |
Scope |
| SOX |
Quarterly |
Financial applications |
| SOC 2 |
Semi-annually |
All in-scope systems |
| PCI DSS |
Semi-annually |
Cardholder data systems |
| HIPAA |
Annually |
PHI-accessing systems |
| ISO 27001 |
Annually |
All systems |
| NIST CSF |
Per risk assessment |
Risk-based |
Risk-Based Certification
| Risk Level |
Review Frequency |
Certifier |
Auto-Revoke |
| Critical |
Monthly |
CISO + App Owner |
7 days |
| High |
Quarterly |
Manager + App Owner |
14 days |
| Medium |
Semi-annually |
Manager |
21 days |
| Low |
Annually |
Manager |
30 days |
references/workflows.md (verbatim)
Access Recertification with Saviynt - Workflows
Campaign Execution Workflow
WEEK 1: PREPARATION
├── Review and update certifier assignments
├── Verify identity data freshness (HR sync)
├── Validate entitlement data accuracy
├── Configure campaign template
└── Schedule campaign launch
WEEK 2: LAUNCH AND REVIEW
├── Launch campaign (auto-notifications sent)
├── Certifiers receive email with review link
├── Certifiers review each line item:
│ ├── Check user's current role
│ ├── Review risk score
│ ├── Check last access date
│ ├── Compare with peer group
│ └── Make certify/revoke decision
└── Day 7: First reminder sent
WEEK 3: FOLLOW-UP
├── Day 10: Second reminder sent
├── Day 13: Final reminder (escalation warning)
├── Security team contacts non-responsive certifiers
└── Campaign manager reviews progress dashboard
WEEK 4: CLOSE AND REMEDIATE
├── Day 14: Campaign due date
├── Day 15: Auto-revoke for non-certified items (if configured)
├── Revocation tasks created automatically
├── Remediation tickets sent to provisioning team
├── Access removed from target systems
└── Campaign report generated for compliance
Certifier Decision Workflow
Certifier opens Saviynt certification inbox
│
├── For each user-entitlement pair:
│
│ ├── Review Context:
│ │ ├── User's name, title, department
│ │ ├── Entitlement name and application
│ │ ├── Risk score (1-10)
│ │ ├── Last access: 3 days ago / 180 days ago / Never
│ │ ├── Peer analysis: 85% of peers have this access
│ │ └── SoD violation: None / Conflict detected
│ │
│ ├── Decision Logic:
│ │ ├── Active user + Used recently + Peers have it → CERTIFY
│ │ ├── Active user + Not used in 90+ days → INVESTIGATE
│ │ ├── User changed department → LIKELY REVOKE
│ │ ├── SoD violation detected → REVOKE or ESCALATE
│ │ └── Cannot determine → DELEGATE to app owner
│ │
│ └── Record decision with justification
│
└── Submit all decisions
Event-Based Certification Workflow
User attribute changes in HR system (e.g., department transfer)
│
├── Saviynt detects change via HR connector sync
│
├── User update rule triggers micro-certification:
│ ├── Scope: All entitlements for this user
│ ├── Certifier: New manager
│ └── Due date: 7 days
│
├── New manager reviews all access:
│ ├── Certify access relevant to new role
│ ├── Revoke access specific to old role
│ └── Request new access if needed
│
└── Remediation executes for revoked items
Campaign completes with revoked items
│
├── Saviynt creates provisioning tasks for each revocation
│
├── For each revoked entitlement:
│ ├── Create deprovisioning request
│ ├── Route to target system connector
│ ├── Execute removal (API/connector)
│ ├── Verify removal succeeded
│ └── Update audit log
│
├── If automated removal fails:
│ ├── Create manual remediation ticket (ServiceNow)
│ ├── Assign to application admin
│ ├── Track SLA compliance
│ └── Escalate if overdue
│
└── Post-remediation verification:
├── Re-scan target systems
├── Confirm revoked access no longer present
└── Archive compliance evidence
Back to mukul975/Anthropic-Cybersecurity-Skills (817 security skills) or Agent skills.