SAP SuccessFactors Hardening Guide
HCM security for permission groups, integration center, and data protection
Overview
SAP SuccessFactors is a global enterprise HCM with deep SAP ecosystem integration. OData and SOAP APIs, OAuth client configurations, and SAP Business Technology Platform connections handle employee master data, payroll, and performance records across multinationals. Sub-processor data flows create complex third-party risk.
Intended Audience
- Security engineers managing HCM systems
- SAP administrators configuring SuccessFactors
- GRC professionals assessing HR compliance
- Third-party risk managers evaluating SAP integrations
Table of Contents
1. Authentication & Access Controls
1.1 Configure SSO with MFA
Profile Level: L1 (Baseline) NIST 800-53: IA-2(1)
ClickOps Implementation
Step 1: Configure SAML SSO
- Navigate to: Admin Center → Company Settings → Single Sign On
- Configure IdP metadata
- Enable: Enforce SSO
Step 2: Configure IDP-Initiated SSO
- Map SAML assertions to SF users
- Configure attribute mapping
- Enable session management
1.2 Role-Based Permissions (RBP)
Profile Level: L1 (Baseline) NIST 800-53: AC-3, AC-6
ClickOps Implementation
Step 1: Define Permission Roles
| Role | Permissions |
|---|---|
| System Admin | Full access (limit users) |
| HR Admin | Employee data management |
| Manager | Team access only |
| Employee | Self-service only |
Step 2: Configure Permission Groups
- Navigate to: Admin Center → Manage Permission Roles
- Create permission groups
- Assign target populations
2. API Security
2.1 Secure OData API Access
Profile Level: L1 (Baseline) NIST 800-53: IA-5
Description
Harden OData API integrations.
Rationale
Attack Scenario: Compromised OAuth client accesses Compound Employee API; sub-processor data flows expose global workforce data.
Implementation
Step 1: Create Integration Users
- Navigate to: Admin Center → Manage OAuth2 Client Applications
- Create dedicated OAuth clients per integration
- Assign minimum required permissions
Step 2: Configure API Permissions
- Limit OData entity access
- Configure field-level restrictions
- Enable audit logging
2.2 OAuth Token Management
Profile Level: L1 (Baseline) NIST 800-53: IA-5(13)
Implementation
| Token Type | Expiration |
|---|---|
| Access Token | 1 hour |
| Refresh Token | 24 hours (L1) / 8 hours (L2) |
3. Data Security
3.1 Configure Data Privacy
Profile Level: L1 (Baseline) NIST 800-53: SC-28
ClickOps Implementation
Step 1: Enable Data Protection
- Navigate to: Admin Center → Data Protection & Privacy
- Configure:
- Personal data handling
- Consent management
- Data retention
Step 2: Field-Level Security
- Configure sensitive field masking
- Restrict SSN/Tax ID visibility
- Enable audit for sensitive data access
4. Monitoring & Detection
4.1 Audit Logging
Profile Level: L1 (Baseline) NIST 800-53: AU-2, AU-3
ClickOps Implementation
Step 1: Enable Audit Trail
- Navigate to: Admin Center → Audit Logging
- Enable comprehensive logging
- Configure retention
Detection Focus
-- Detect bulk employee data access
SELECT user_id, api_endpoint, COUNT(*) as requests
FROM sf_audit_log
WHERE api_endpoint LIKE '%Employee%'
AND timestamp > NOW() - INTERVAL '1 hour'
GROUP BY user_id, api_endpoint
HAVING COUNT(*) > 100;
Changelog
| Date | Version | Maturity | Changes | Author |
|---|---|---|---|---|
| 2025-12-14 | 0.1.0 | draft | Initial SAP SuccessFactors hardening guide | Claude Code (Opus 4.5) |