IDENTITY GOVERNANCE · LAB
Separate people, accounts and entitlements in your own tenant
Give Ben a second account, prove that a matching email grants nothing, measure how far a role change reaches, follow Ava through an email change by her stable ID, and write a small entitlement catalog.
ReadyUses your lab tenant
The lesson
Builds on: Why access needs governance.
New to the labs? Start with the lab toolkit and the shared cast and names every lab uses.
Your progress
Press Start before you begin. Only events your tenant records after that count, in the order below. Checking reads your tenant's Audit, so you need Audit read access in it.
Sign in to start this lab and check your progress. Log in or create an account.
Create Ben's separate admin account
Recorded as
tenant.users.createsucceeded.Give the admin account the Help desk role
Recorded as
tenant.users.management_roles.assignsucceeded.Remove a permission from Help desk
Recorded as
tenant.roles.updatesucceeded.A holder's change is refused straight away
Recorded as
tenant.groups.membersrejected (access_denied).Change Ava's email address
Recorded as
tenant.users.updatesucceeded.Try to delete a role that people still hold
Recorded as
tenant.roles.deleterejected (role_in_use).
Setup
Finish the previous lab first: the groups
Print support,Photo moderationandPrint incident reviewsexist, and Ben holds theHelp deskmanagement role.Have the email address you use to sign in to Beyond the Login ready. Step 2 uses it for a tenant user, then deletes that user.
Press Start on the lab page.
Walkthrough
One person, two accounts. On Users, create
[email protected]with first name Ben and last name "Okafor (admin)". Set a password, keep it in your password manager, and assign it theHelp deskmanagement role. Users now lists two rows for Ben. Open both: no field links them, and nothing in the tenant knows they are the same person.
Why it matters: this is "One person, many accounts". Like Jordan's everyday and administrator accounts, both belong to Ben, but the tenant holds accounts, not identities. Linking them is the identity system's job.
A matching email is not identity. Create one more tenant user with exactly your Beyond the Login sign-in email and no management roles, and set it a password. In a private window, sign in at
$ISSUER/accountwith that tenant user, then open$ISSUER/manage. The tenant gives it no management pages, and the tenant password does not sign you in to beyondthelogin.dev. Close the window and delete this user.
Why it matters: correlating accounts on a matching email would hand one account's authority to another. Here the BTL account and the tenant user share an address and nothing else, because authority comes only from role assignments.
Name the four kinds of entitlement. Write one example of each from your tenant:
Permission: one entry from the catalog on the Roles page, such as
tenant.users.lock.Role:
Help desk, a named bundle of three permissions.Group:
Photo moderation. A tenant group carries no management permissions. It is a named set of people that applications could grant something to.Client entitlement: a scope assigned to a client on OAuth > Clients, such as
prints.createonlab-print-ordersif you did the OAuth track. The directory lab giveslab-provisioninga SCIM scope.
Why it matters: this is "What an entitlement is". When someone asks what Ben can do, the honest answer mixes all four kinds.
How far a change reaches. In a private window, sign in at
$ISSUER/manageas[email protected], openPhoto moderation> Members, and leave the dialog open. In your own window, open Roles and removetenant.groups.updatefromHelp desk. Now add Cora to the group from the open dialog and save. The tenant refuses withaccess_denied, and Audit recordstenant.groups.membersrejected. Ben's everyday account lost the same permission in the same moment.
Why it matters: removing a role permission changes every holder at once. Removing one group membership changes one person. Knowing which kind of entitlement you are touching tells you how far a change will reach.
Restore: add tenant.groups.update back to Help desk and save.
Connect accounts by an ID that never changes. Open Ava's details on Users and copy her User ID. Edit Ava: change her last name to Brooks and her email to
[email protected]. Search Audit (Source User directory) for the User ID: her group changes from the previous lab and today'stenant.users.updateall appear under one subject. Now search for[email protected]. Nothing comes back, because Audit search matches identifiers, not names or addresses.
Why it matters: this is "Connecting accounts to people". A system that keyed Ava's records on her email would have lost them at the rename. The ID both sides hold is what keeps her history together.
Spot an uncorrelated account. Create
[email protected](first name J, last name Smith) in the portal and add it toPrint support. Look at the Source column on Users: every account so far saysTenant, created by hand. Open the new account's details. It has no external ID, no owner and no description.
Why it matters: correlation needs a stable identifier that both sides hold. No source system knows this account, so it would appear in nobody's identity view, exactly like the lesson's jsmith2.
Write the catalog. For
Print support,Photo moderation,Print incident reviewsandHelp desk, write a table with owner, a plain description of what it allows, and sensitivity. Then try to record the owner on the group or role in the portal. There is no field for it.
| Entitlement | What it allows | Owner | Sensitivity |
|---|---|---|---|
| Help desk | Read users and groups, change group membership | ||
| Photo moderation |
Why it matters: this is "Owners and descriptions". A reviewer shown "Help desk" can only rubber-stamp it unless someone wrote down what it allows and who answers for it.
See the whole picture. For Ava, list every account and entitlement you can find: her tenant user, her groups, any OAuth grants from other tracks. Mark each row with how it is tied to Ava (User ID, email, or nothing).
Why it matters: this is "Seeing the whole picture". Rows tied by the stable ID survive a rename; rows tied by email or by nothing are the ones to distrust.
Break it
Open Roles and try to delete
Help deskwhile Ben and his admin account still hold it. The portal refuses withrole_in_use, and Audit recordstenant.roles.deleterejected. An entitlement that is still held cannot vanish silently.
Check your work
Press Check my progress. The checks look for, in order:
tenant.users.createsucceeded (step 1)tenant.users.management_roles.assignsucceeded (step 1)tenant.roles.updatesucceeded (step 4, the removal)tenant.groups.membersrejected withaccess_denied(step 4)tenant.users.updatesucceeded (step 5)tenant.roles.deleterejected withrole_in_use(Break it)
In Audit, confirm that Ava's tenant.users.update has the same subject ID as her earlier group changes.
Cleanup
Edit Ava back to last name Archer and email
[email protected]. Later labs use that address.Delete
[email protected]and[email protected], and confirm the user with your BTL email is gone.Keep your catalog table. The access review lab asks you to show it to a reviewer.
Missing infrastructure
G52: groups, management roles and clients have no owner, description or sensitivity fields. With them, step 7 would edit real records, and later review labs would show the description to the reviewer instead of asking you to keep a table.