Many organisations operate a customer portal alongside a separate workforce identity system. A person can be a customer today, join the company tomorrow and later return to being a customer. The person is the same; the risks and permitted actions are not.
A role change is a lifecycle event
Moving into an employee role may add access to internal applications, support tools or customer-data operations. Teams usually focus on granting those rights. The harder task is ensuring the old account and its permissions do not remain over-privileged when the person changes roles again.
The reverse transition matters just as much. Recalculate access across groups, roles, applications, tenant memberships, sessions and API keys. Do not assume that removing one employee label automatically removes every privilege created while the person held it.
Do not leave privileged users on the weaker path
If employees use the same customer-facing identity as ordinary customers, they may still be exposed to less restrictive authentication and support procedures. An attacker can target the familiar customer recovery channel instead of the controls intended for workforce identities.
WebFrolic documents distinct customer, employee and administrator classifications, with different profile attributes, authenticator requirements, session controls and network rules. Those distinctions should be enforced consistently across dashboards and resource operations—not merely reflected in the UI.
Make transitions explicit and testable
For each state change, document which access is retained, removed or sent for approval. Include the effects on groups, role access, application assignments, authenticators and active sessions. If someone can occupy multiple contexts at once, make that relationship explicit instead of assuming one classification replaces all others.
Use test accounts to exercise the whole journey. A user should not retain an administrator capability after leaving the relevant group or role. The audit trail should explain why the account’s policy changed and which permissions changed as a result.
Use identity history to find drift
Record the source of important changes, such as an administrator action, group update or domain-based assignment. This helps teams distinguish expected automation from an unexpected privilege grant. A periodic report can highlight accounts whose classification and assignments no longer agree.
Those differences are not always incidents; they can also reveal a stale integration or an ambiguous policy. Give each discrepancy an owner and a controlled resolution path. Finding these mismatches before an incident is the real value of lifecycle visibility.
Where this leaves you
Map customer-to-employee and employee-to-customer transitions. Then: map customer-to-employee and employee-to-customer transitions; recalculate access across roles, groups, applications, sessions and keys; apply the intended workforce assurance and network policy.
Implementation guide
An implementation walkthrough: model the transition explicitly
Consider a fictional B2B product called Atlas. Mira has a customer account because her company uses Atlas. She later joins Atlas as a support engineer. Her customer identity may still be useful for customer-facing tasks, but her workforce role introduces new access paths and stronger policy requirements. When she leaves the company, the reverse transition matters just as much.
Use an explicit transition contract
Before changing assignments, define a transition contract that states the source of truth, the identity being changed, the old and new identity classes, the effective time, and the actions that must be recalculated. Avoid treating the transition as a single database field update.
- Identify the person and event
- Recalculate effective access
- Apply class-specific policy
- Verify and record outcome
One practical contract might look like the following. This is an illustrative model, not a WebFrolic API schema.
{
"event": "identity.segment.transition",
"subject": "user_demo_204",
"from": "customer",
"to": "employee",
"effectiveAt": "2026-10-23T09:00:00Z",
"requestedBy": "hr-provisioning",
"recalculate": [
"groups", "roles", "applications",
"resource-entitlements", "sessions", "api-keys"
]
}The point is not the field names. It is that the event makes the transition visible, and that downstream controls know they need to evaluate the resulting state.
Do not assume the label change revokes access
Define exactly what removing an employee classification should do. Does it remove membership in the employee group? Which grants are inherited through that group? Are direct resource assignments retained? Should active sessions be revoked? Are API keys tied to the user's personal identity? Which services depend on the identity remaining active? Each answer should be a policy decision with a test, not a guess.
Test before release
Transition test matrix
- Customer → employee: expected workforce groups, applications, assurance and network rules are applied.
- Employee → customer: employee-only grants are removed or explicitly retained with a documented reason.
- Duplicate or delayed provisioning events do not recreate revoked access.
- Active sessions, recovery methods, service ownership and API keys are handled according to the defined policy.
- The resulting effective permissions can be explained from the audit record.
Where SCIM fits—and where it does not
SCIM standardizes how identity records and groups are exchanged across systems. It can help automate provisioning and deprovisioning, but the presence of a SCIM connector does not by itself prove that every application-specific entitlement, live session or independent API credential has been cleaned up. Test the end-to-end result across all dependent systems.
WebFrolic's documented model separates customer, employee and administrator identity classes and describes lifecycle controls, group assignments, applications, roles and session policies. Treat that as the starting point for an implementation review, then validate the exact behavior your deployed configuration supports.
Further reading
- IETF RFC 7644 — SCIM Protocol: provisioning and resource operations.
- WebFrolic User Lifecycle and SCIM for Employee Applications: product-specific areas to review.
- WebFrolic Security White Paper: the product’s identity-classification and lifecycle rationale.
Author’s note: A lifecycle event is complete only when the resulting access state has been verified—not merely when the source record changes.
