Chapter 5

Practice & self-assessment

Concept checks, hands-on exercises, and authorization challenges — with solutions, all validated against the live lab.

Work through these on your own. Try each before opening the solution. Part A checks that you can place tools and domains correctly (exam-style); Part B is hands-on in the lab; Part C tests how the policy engine reasons.

If it gets messy Ask your instructor to reset the environment to the clean starting state — the seeded users return and your practice identities are removed.
Printable workbook (PDF) The same 29 questions as a shareable, Genbay-branded PDF — candidate edition (answer space, no solutions) and answer key (validated solutions inline). Hand the first to candidates; keep the second for marking.

Part A — Concept checks

A1 · CRD 3, 6

Which single tool is the only writer of the directory, and why is that rule so important?

Solution
midPoint (IGA) is the only writer; Keycloak only reads the same directory. Because governance and authentication share one source of truth, a change in IGA — disabling a leaver, removing a role — instantly changes what the person can authenticate to and do, everywhere at once.
A2 · CRD 8

A scenario describes running quarterly campaigns where managers confirm their team's access is still appropriate. Which tool category and CRD?

Solution
IGA (midPoint), CRD 8 — Access Review & Re-Certification. Reviews/certification live in the governance tool, not the login tool.
A3 · CRD 6, 10

The Portal never stores a password. When a user visits it, how do they prove who they are, and what token/protocol is involved?

Solution
The Portal redirects to Keycloak (the IdP), which authenticates the user (with MFA) and returns an OIDC token. The Portal trusts that token — it is an OIDC client / relying party. This is single sign-on.
A4 · CRD 5, 6

Explain the difference between OPA and the Golonex Portal in one sentence each.

Solution
OPA is the Policy Decision Point — it answers "is this allowed?" from policy-as-code. The Portal is the Policy Enforcement Point — it asks OPA before every action and enforces the answer.
A5 · CRD 6, 7

The lab has two PAM-style tools. Name them and give one thing that distinguishes them.

Solution
Teleport — identity-aware, just-in-time SSH with RBAC and mandatory MFA. Guacamole — a clientless gateway that also brokers RDP/VNC, entirely in the browser. Both record sessions.
A6 · CRD 7

In the capstone, a terminated employee's login attempt triggers a SIEM alert. What is the underlying technical signal, and why does it occur?

Solution
Keycloak records a LOGIN_ERROR with error user_not_found. After termination, midPoint disables the account and Keycloak's federation filter hides disabled accounts — so to Keycloak the username no longer resolves. Wazuh's rule fires on that as a "possible post-termination access attempt".
A7 · CRD 1, 2

Which two Critical Risk Domains does this lab not perform hands-on, and why is that reasonable?

Solution
CRD 1 — Strategy & Governance and CRD 2 — Program Management: planning and organisational disciplines rather than operational tasks. The lab assumes them and exercises the operational domains, CRD 3–10.

Part B — Hands-on exercises

Seeded users (password Welcome2026!): bob.builder (IT), carol.chen (Finance mgr/approver), dave.dixon (HR), erin.evans (AP clerk). All solutions below were run in the live lab.

B1 · Joiner · CRD 3, 5

Onboard a new employee — Priya Patel, department IT, "Service Desk Analyst" — from the HR feed, and prove she can log in. What access does she get automatically, and why?

Solution
Add Priya in the Portal HRIS; run midPoint's HR-import. Result (validated): she is created enabled, department IT, with the Employee birthright role → an OpenLDAP account and app-users membership. She logs into the Portal with groups=[app-users]. Baseline access is automatic because the birthright role is auto-assigned to every HR-sourced identity.
B2 · Request & approval · CRD 4

Grant Priya the HR Staff entitlement through the proper request path. Does it take effect immediately? Who must act?

Solution
No — HR Staff is requestable, so it raises an approval routed to an Access Approver (a line manager). Only after approval does midPoint provision the hr-staff group. (It is also department-scoped, so it is only effective while the holder is in HR — the teaching point here is the approval routing.)
B3 · Segregation of duties · CRD 5, 6

erin.evans is an AP clerk. Try to also grant her the AP Approver role. What happens, and what is she left holding?

Solution
The request is blocked — the roles are segregated (an SoD policy violation; HTTP 409 via the API). Erin keeps only finance-ap-clerk; the approver role is never granted. And OPA would deny all finance actions to anyone holding both.
B4 · Mover · CRD 3

Move a Finance AP clerk to the IT department in HR and re-run the import. What happens to their Finance entitlement, and why?

Solution
The finance-ap-clerk entitlement is automatically removed — that role is scoped to Finance, so leaving Finance strips it; the directory group membership drops to baseline (app-users). This is how attribute-scoped roles prevent "access creep".
B5 · Reconciliation · CRD 9

Run a directory reconciliation. One account is flagged as unmatched. Which one, and what makes it an orphan?

Solution
mallory.mills. She exists in the directory but has no owning identity in midPoint and no HR record — created directly in the directory, bypassing governance. Reconciliation surfaces exactly these accounts. Validated: present in LDAP, no midPoint user.
B6 · Leaver + SOC · CRD 3, 6, 7

Off-board Priya (set status terminated, re-run import). Confirm she can no longer log in. Then attempt her old credentials and find the SIEM alert. What severity and message?

Solution
She is disabled in midPoint, in the directory, and hidden from Keycloak — her Portal login fails. Attempting her old credentials produces, in Wazuh, a high-severity alert (level 12): "login attempt for non-existent/disabled account … possible post-termination access attempt", with username, source IP and time.
B7 · Privileged access · CRD 6, 7

Open a privileged session to a server through Teleport (or Guacamole), run a command, then locate the recording. What did you have to provide that a normal login does not require?

Solution
MFA (a second factor for privileged access) and just-in-time access rather than a standing account. The session is recorded and replayable in the tool's UI. Accountability — who did what on which server, keystroke by keystroke — is the point of PAM.

Part C — Authorization challenges (OPA)

For each case, predict the decision — ALLOW or DENY, and the reason — before revealing the answer. The policy: everyone may view home; HR actions need hr-staff; invoice creation needs finance-ap-clerk; payment approval needs finance-ap-approver, and above 50,000 also needs access-approvers; admin needs it-admins; and holding both finance roles is a segregation-of-duties violation that denies all finance actions. All 15 answers were validated against the live policy engine.

#Groups the user holdsAction (amount)Your call
C1app-usershome.view?
C2hr-staffhris.edit?
C3hr-staffadmin.view?
C4finance-ap-clerkinvoice.create?
C5finance-ap-clerkpayment.approve (100)?
C6finance-ap-approverpayment.approve (5,000)?
C7finance-ap-approverpayment.approve (75,000)?
C8finance-ap-approver, access-approverspayment.approve (75,000)?
C9finance-ap-clerk, finance-ap-approverinvoice.create?
C10it-adminsadmin.view?
C11finance-ap-approverpayment.approve (exactly 50,000)?
C12finance-ap-approverpayment.approve (50,001)?
C13(none)home.view?
C14finance-ap-clerk, finance-ap-approverfinance.view?
C15app-usersinvoice.create?
Solutions (validated against the live policy engine)
#DecisionReason
C1ALLOWthe home page is public to any signed-in user
C2ALLOWHR edit requires hr-staff — held
C3DENYmissing entitlement (admin needs it-admins)
C4ALLOWinvoice creation requires finance-ap-clerk — held
C5DENYmissing entitlement (approval needs finance-ap-approver)
C6ALLOWapprover, amount ≤ 50,000
C7DENYamount above 50,000 requires a manager (access-approvers)
C8ALLOWapprover + manager, so the large amount is permitted
C9DENYSoD violation — holds both finance-ap-clerk and finance-ap-approver
C10ALLOWadmin view requires it-admins — held
C11ALLOWboundary: exactly 50,000 is within the approver's limit
C12DENYboundary: 50,001 is above the limit → needs a manager
C13ALLOWhome is public even with no groups
C14DENYSoD violation also blocks reading finance, not just writing
C15DENYa baseline user has no finance entitlement

Watch C11/C12 (the threshold is ≤ 50,000) and C14 (SoD denies every finance action, including read-only ones).

✓ Ready Place every tool in its CRD (Part A), drive the lifecycle by hand (Part B), and predict the policy engine (Part C), and you have operated a complete IAM program — exactly what the CIAM exam tests.