From Events to Answers · Part 6 of 7
Fabric for 50 people in one evening
What it took to give 50 people working Fabric access for one evening: accounts, MFA, capacity, the sign-in screens, and teardown.
A hands-on Microsoft Fabric session fails at sign-in, not at the demo. The demo runs on one tested laptop. The hands-on part is 50 people who sign in for the first time in the same five minutes. Identity, licenses, roles, and capacity decide whether those minutes work. They need a script, a capacity budget, and a teardown plan, built days before the room fills.
A Fabric workshop environment is the set of accounts, licenses, roles, and capacities for one hands-on session. It lets every participant sign in from their own device and build in Fabric. This part records the environment built for a community session at Microsoft Qatar on October 14, 2026. The session told the story of an invented oud fragrance house, and all demo data was synthetic. Part 1 covers the session and the demo.
The environment was built on the afternoon of the session. The last blocker cleared at 5:50 PM, ten minutes before the start. Every decision held, but no time was left for one more surprise. The checklist at the end moves each step to the days before.
In short
- Sign-in is where a hands-on Fabric session breaks. Test every participant screen in a real browser, because an API sign-in skips them all.
- Member accounts with Fabric Free, roles on a group and on each user, and two separate capacities kept the room working.
- Fifty people asking six data agent questions each is an estimated 33 CU hours, about 4 percent of an F32 day. Quota was the risk, not capacity size.
- Relaxing MFA prompts for one evening was a time-boxed trade-off with compensating controls. Start the next workshop with the narrower tools that Microsoft Learn documents.
- Tear down in order: disable accounts, export, delete workspaces and capacities, restore security settings, and remove elevated roles last.
Fabric workshop accounts: eight decisions and why
Give each participant a member account in a dedicated tenant and assign Fabric Free yourself. Put workspace roles on a security group and on each user. Split the demo and the playground onto separate capacities. Keep the password off paper. Each choice removes one way to get stuck in the first five minutes.
| ID | Decision | Why |
|---|---|---|
| D1 | Member accounts, not guests | A guest must redeem an invitation and pass MFA in a home tenant. Fifty of those at the door is a queue. |
| D2 | One shared password | The alternative is 50 slips of paper. The accounts had no mailbox and were disabled the same night. |
| D3 | Fabric Free assigned in advance | Nobody meets a license prompt. The admin needed it too: without it, the Fabric API answered UserNotLicensed. |
| D4 | Two capacities: F32 for the demo, F16 for the playground | A workspace sits on one capacity, so playground Spark bursts cannot slow the demo. An F64 did not fit the quota, and the data agent needs only a paid F2. |
| D5 | Viewer on the demo, Contributor on the playground | A Viewer runs nine of the ten handout steps and cannot delete the agent during questions. |
| D6 | Roles on the group and on each user | A brand-new group showed nothing to the first test account. Fabric picked it up with a lag. One hundred direct roles removed the wait. |
| D7 | MFA prompts relaxed for the evening | The tenant had no Conditional Access, and security defaults cannot exclude a group. |
| D8 | Password on the screen, not in the handout | The handout outlives the evening. The screen does not. |
Microsoft Learn confirms the license logic. A Fabric Free license creates non-Power BI items on an F capacity. Viewing Power BI items with it needs F64 or larger. The Fabric data agent GA needs a paid F2 or larger, and trial capacities do not support it. Learn says Fabric assigns the Free license at the first portal sign-in. Assigning it early also covers accounts that first reach Fabric through the API.
Learn says a role change takes effect at the next sign-in, but it does not document a lag for new groups. Treat D6 as an observation. Learn caps a workspace at 1,000 users or groups in roles, so direct roles fit a workshop, not a company.
The demo role changed five minutes before the start
D5 did not last the afternoon. One handout step opens a PDF in the lakehouse Files folder. Learn states that a Viewer reads lakehouse data only through the SQL analytics endpoint. At 5:55 PM the group and all 50 accounts became Contributors on the demo workspace, and the step worked.
The trade-off was control. Contributors can create, change, and delete items, and two participant items sat in the demo workspace at teardown. The printed handout still called it read-only. The narrower fix is a lakehouse share with Read all with Apache Spark, done the day before. Learn says item permission changes can take up to two hours to arrive.
MFA for workshop accounts: a time-boxed trade-off
For one evening, in a dedicated workshop tenant separate from the company tenant, MFA prompts for new accounts were relaxed. It was a deliberate, time-boxed trade-off, not a default. The compensating controls were no admin roles, no mailbox, Fabric Free only, the password on the screen only, and accounts disabled the same night. Restoring every changed setting was a teardown step.
Three settings stood in the way. Security defaults require every user to register for MFA, with no grace period since July 29, 2024. Self-service password reset can add its own registration step. The Identity Protection MFA registration policy, set for all users, was the real gate. All three were relaxed between 4:59 and 5:50 PM, and only the last change let the browser test through. Learn describes security defaults as on or off, with no exclusions, so the change had to be tenant-wide.
What Microsoft Learn documents instead
- Conditional Access instead of security defaults. Learn says security defaults are probably not right for tenants with Microsoft Entra ID P1 or P2. It also says Conditional Access policies should go on as soon as security defaults go off.
- Exclusions. Conditional Access policies and the Identity Protection registration policy both accept excluded users and groups. Learn recommends excluding emergency access accounts. A workshop group is your own decision.
- Temporary Access Pass. A time-limited passcode that an admin issues, valid from 10 minutes to 30 days, for one use or several. It satisfies Conditional Access MFA requirements. Learn's guide for schools suggests at most four hours and one-time use. The cost is 50 codes instead of one password.
The better default for the next workshop is narrow. Keep tenant protections on, scope any exception to the workshop group, end it with the accounts, and prove it in a browser the day before. The Conditional Access trap in Fabric does not live in your VNet shows the same risk from the other side: one tenant-wide policy reaches more than you planned.
Fabric capacity for a workshop: the CU budget
An F32 provides 32 capacity units, which is 768 CU hours a day. An F16 provides 384. Using the example on Microsoft Learn, one data agent question costs 0.11 CU hours. Fifty people asking six questions each comes to about 33 CU hours, about 4 percent of an F32 day. That is an estimate. Token counts on the night were not measured.
| ID | Load | Number | Source |
|---|---|---|---|
| L1 | Daily budget | F32: 32 CU for 24 hours, 768 CU hours. F16: 384 CU hours. | Licenses |
| L2 | One data agent question, Learn's example of 2,000 input and 500 output tokens | 400 CU seconds, 0.11 CU hours, a background job | Data agent consumption |
| L3 | 50 people, 6 questions each | About 33 CU hours, about 4 percent of an F32 day. Estimate. | Arithmetic on L1 and L2 |
| L4 | Dashboard refreshes and KQL queries over 40 event rows | Interactive, smoothed over 5 to 64 minutes. Not measured. | Throttling policy |
| L5 | When throttling starts | When the next 10 minutes are fully booked. Then 20-second delays, then rejections past 60 minutes and past 24 hours. | Throttling policy |
| L6 | Playground Spark on the F16 | 32 Spark VCores, 96 with burst. About 12 Medium-node sessions at once. Estimate. | Spark concurrency |
Smoothing keeps the number small. Fabric spreads a background job over 24 hours, so 33 CU hours add about 1.4 CU to every timepoint, about 4 percent of an F32. Throttling needs the next 10 minutes fully booked, and the agent load alone cannot do that. Learn warns that instructions, example queries, and chat history add tokens, and that generated queries are billed to their engine. Even ten times the estimate stays under half of an F32 day.
Interactive work makes the spikes, smoothed over 5 to 64 minutes. Real-Time Intelligence skips the 20-second delay stage, so a live dashboard does not slow down first. When 60 minutes of capacity are booked, its new requests are rejected.
The playground risk is 50 people pressing Load to Tables at once. An F16 gives 32 Spark VCores, 96 with burst, and starter pools use Medium nodes of 8 VCores. At one node per session, about 12 sessions fit at once, an estimate. Learn says interactive notebook jobs are not queued. They fail with HTTP 430 when cores run out. On its own capacity, that failure stays in the playground.
Quota, not size, was the risk
Fabric quota is set per subscription and per region. The region chosen for the demo had a quota of 44 CU. An F64 failed on quota at once. A paused F8 from another team and three F2 capacities left from an earlier workshop held 14 CU. The F32 fit only after the three leftovers were deleted. A self-service request to raise the quota to 80 CU was accepted and later showed Failed.
Two regions add one constraint. Learn states that a data agent cannot query a source on a capacity in a different region. Each agent here sat next to its own sources, so the split held. Keep it that way when you copy the design.
What participants see when they sign in to Fabric
In a private window at app.fabric.microsoft.com, a participant sees four screens: a Fabric page that asks for an email, the Microsoft password page, “Stay signed in?”, and a “Welcome to the Fabric view” tour. Put all four on the sign-in slide and in the handout. Every screen nobody mentioned becomes a question in the room. A fifth screen, “Let's keep your account secure,” means a tenant policy wants MFA registration.
- A green Fabric page asks for a work or school email. It is Fabric's own pre-check. Type the workshop address and press Submit.
- The Microsoft password page opens with the address filled in.
- “Stay signed in?” Choose No.
- The tour pops up. Press Cancel, then open Workspaces in the left menu.
| ID | Screen | Cause | What to do |
|---|---|---|---|
| V1 | “Let's keep your account secure,” with Next only | A tenant policy requires MFA registration. Here it was the Identity Protection MFA registration policy. | Fix it before the session. Nobody can fix it from the room. |
| V2 | “More information required” | MFA or password reset registration | Same as V1 |
| V3 | “Start trial” or “Upgrade” | A license prompt | Close it. The capacity is already paid. |
| V4 | No New item button | The role in this workspace cannot create items | Build in the playground |
| V5 | Fabric home with no workspaces | The list is still loading after a first sign-in | Open Workspaces in the left menu and wait a minute |
Learn names the sources of a registration screen: the Identity Protection registration policy, per-user MFA, Conditional Access, password reset registration, and security defaults. In Doha, two were switched off and the screen stayed. The Identity Protection policy was the cause.
Why an API sign-in test misses these screens
The setup tests signed in through the API with a password grant, which has no user interface. Learn says this flow is incompatible with MFA. It also says Identity Protection asks for registration at the next interactive sign-in. A password grant is never interactive, so the API test passed while the browser stopped. A headless browser that clicked through each screen and saved a screenshot found the problem.
Learn recommends the password grant only for testing, in a separate test tenant, with test users. Use it to check roles and items, never as proof of sign-in. There is one more reason to sign in through the portal early. In Doha the data agent answered an account only after its first portal sign-in.
Eleven setup lessons for Fabric trainers
Each lesson cost time on October 14. Where Learn covers a point, the lesson says so. The rest are observations from one tenant.
- N1. Capacity names take lowercase letters and digits, start with a letter, and run 3 to 63 characters, per the Learn template reference. A name with a hyphen failed with “Invalid chars in resource name.”
- N2. Quota is per subscription and per region. This subscription had 0 CU in West and North Europe, 44 in Sweden Central, and 16 in smaller EU regions. Read it before you pick a region.
- N3. A self-service quota request can be accepted and still fail. Learn says to open a support request then.
- N4. Paused capacities still counted against the quota. Learn does not say either way. Delete what you do not need.
- N5. Fabric did not see a brand-new security group at once. Assign roles to the group and to each user.
- N6. A guest admin from another tenant could change directory settings, but Fabric workspace and capacity calls answered 404. A native admin with a Fabric license worked. Learn does not cover this case.
- N7. Security defaults block device code sign-in, as Learn confirms. Use the browser sign-in for command-line tools.
- N8. An API password sign-in skips interactive screens, so only a browser test finds them. Check the Identity Protection registration policy first.
- N9. Fabric shows its own email page before the Microsoft password page. Tell the room.
- N10. The data agent and Copilot need a paid F2 or larger. F64 matters only for Free users who view Power BI items.
- N11. Old workshops leave things behind. This tenant held 23 old workspaces and five old capacities, and they took the quota. Clean up every time.
What was measured on the night
The sign-in log at teardown showed 50 distinct workshop accounts, with the peak between 6:00 and 7:00 PM. The playground held 139 items when it was deleted. Those are the measured results. CU use, token counts, and the time each person needed to sign in were not measured.
Read the 50 with care. The afternoon checks signed in to every account, so the log count does not prove that 50 people signed in. The number of people in the room who signed in was not recorded. The peak hour and the 139 items are better evidence of use.
One lesson is worth a warning. If the handout names an end time for access, schedule the disable step for that time.
Fabric workshop teardown, in order
Tear down in an order that closes access first and deletes compute last. Restore security settings before you give up the roles that let you change them. In Doha the teardown ran the same night: 50 accounts disabled, item definitions exported, both workspaces deleted, both capacities and their resource group deleted, and the root elevation removed.
- T1. Disable every workshop account and revoke its sessions, two steps that Learn pairs. Keep the accounts a few days if someone may ask for their work.
- T2. Export the item definitions you want to keep. In Doha, eight hand-built items were exported first, and the lakehouse data rebuilds from a script.
- T3. Delete the workspaces. Participant items go with them.
- T4. Delete the capacities and their resource group. Deleting frees the quota. Pausing did not.
- T5. Restore every security setting you changed, and check each one in the portal.
- T6. Remove elevated roles last: the root User Access Administrator assignment and any subscription role you gave yourself. Learn says to remove elevated access once the changes are done.
One detail for scripts: a workspace delete once returned 404 with a token that could list the workspace, then succeeded a minute later. Retry a delete before you report a failure.
Checklist for your next Fabric workshop
Copy this list into your run sheet. It moves every step of the Doha afternoon to the days before.
Seven days before
- C1. Use a dedicated workshop tenant, separate from the company tenant.
- C2. Read the quota for each candidate region and delete leftover capacities. Request any raise now, through support if self-service fails.
- C3. Create two paid capacities, F2 or larger: demo and playground. Keep each agent in the region of its sources. Name capacities in lowercase letters and digits.
- C4. Create member accounts, assign Fabric Free, and create the security group.
- C5. Choose the MFA approach: a group-scoped exception with an end time, or a Temporary Access Pass. Write the restore steps now.
- C6. Turn on the tenant settings the hands-on needs, such as ontology Preview items.
- C7. Write the capacity budget and label it an estimate.
One day before
- C8. Assign roles to the group and to each user. Share items that need more than the role gives, such as lakehouse Files.
- C9. Publish the data agent. Learn says consumers can query only the published version.
- C10. Run a headless browser sign-in for every account and keep the screenshots. It also gives each account its first portal sign-in.
- C11. Print the handout without the password. Check that it names the roles as set.
Thirty minutes before
- C12. Sign in on a phone as one participant, open the dashboard, and ask the agent one question.
- C13. Check that both capacities are active and that no role changed since the last test.
- C14. Put the sign-in card on the screen: address pattern, password, workspaces, end time.
After the session
- C15. Disable the accounts and revoke sessions at the stated end time, on a schedule.
- C16. Export definitions, then delete workspaces, capacities, and the resource group.
- C17. Restore every security setting and check each one.
- C18. Remove elevated roles. Record what changed and when.
Access is half of a hands-on session. The other half is teaching, and Part 7 covers how to teach Fabric from zero in two hours. Part 5 covers the step from demo to production. The session kit is public on GitHub, and daily Fabric lessons are in the Fabric Falcons community. To plan a workshop environment with Dr. Kot, book a slot. For longer projects, see the Microsoft Fabric implementation guide.
Key facts at a glance
Numbers and rules from Microsoft Learn, checked on November 3, 2026.
| ID | Fact | Source |
|---|---|---|
| K1 | An F32 provides 32 capacity units, which is 768 CU hours a day. An F16 provides 16 capacity units, which is 384 CU hours. | Microsoft Fabric concepts and licenses |
| K2 | One data agent request with 2,000 input and 500 output tokens costs 400 CU seconds, or 0.11 CU hours. | Data agent in Fabric consumption |
| K3 | Data agent work is a background job, and Fabric smooths background jobs over 24 hours. | Understand the Fabric capacity throttling policy |
| K4 | Throttling starts when a capacity has used all its CU for the next 10 minutes. Real-Time Intelligence skips the 20-second delay stage. | Understand the Fabric capacity throttling policy |
| K5 | The data agent needs a paid F2 or larger capacity, and trial capacities do not support it. | Fabric data agent concepts |
| K6 | A Fabric Free license creates non-Power BI items on an F capacity. Viewing Power BI items with it needs F64 or larger. | Microsoft Fabric concepts and licenses |
| K7 | A Fabric capacity name starts with a lowercase letter, uses only lowercase letters and digits, and has 3 to 63 characters. | Microsoft.Fabric capacities template reference |
| K8 | An F16 has 32 Spark VCores, 96 with burst, and interactive notebook jobs are not queued. | Concurrency limits and queueing in Apache Spark for Fabric |
| K9 | A workspace holds at most 1,000 users or groups in roles, and a role change takes effect at the next sign-in. | Give users access to workspaces |
| K10 | Security defaults block device code flow and cannot be customized. | Security defaults in Microsoft Entra ID |
| K11 | A Temporary Access Pass lasts 10 minutes to 30 days and satisfies Conditional Access MFA requirements. | Configure Temporary Access Pass |
Frequently asked questions
How do you give 50 people access to Microsoft Fabric for a workshop?
Create member accounts in a dedicated tenant, assign each one the Fabric Free license, and add them to a security group. Give the group and each account a role on the workspaces, and put the workspaces on a paid F capacity. Then test every sign-in in a real browser, because an API sign-in skips the screens people see.
Can a Fabric trial capacity run a hands-on workshop?
Not if the workshop uses the data agent or Copilot. Microsoft Learn states that trial capacities do not support Copilot, data agents, AI functions, or AI services. The data agent needs a paid F2 or larger capacity, or a Power BI Premium P1 or larger capacity with Fabric enabled.
What Fabric capacity size does a workshop with a data agent need?
The data agent needs a paid F2 or larger, not an F64. By the example on Microsoft Learn, one data agent question costs 0.11 CU hours. Fifty people asking six questions each comes to about 33 CU hours, an estimate of 4 percent of an F32 day. Check the regional quota first, and put the playground on its own capacity.
Why do workshop accounts see “Let's keep your account secure” in Fabric?
A tenant policy requires MFA registration at sign-in. Microsoft Learn names the Identity Protection MFA registration policy, per-user MFA, Conditional Access, and security defaults as sources. In a tenant with no Conditional Access policy, check the Identity Protection registration policy first.
Why does a test script sign in as a participant while the browser gets stuck?
A script that signs in with a password grant has no user interface, so Microsoft Entra ID cannot show a registration screen. Microsoft Learn says users who need MFA are blocked in that flow, and Identity Protection asks for registration only at an interactive sign-in. Test with a real or headless browser.
Why can a Fabric capacity name not contain a hyphen?
The Azure template reference on Microsoft Learn sets the pattern for a Fabric capacity name: a lowercase letter first, then lowercase letters and digits only, 3 to 63 characters in all. A hyphen, an underscore, or a capital letter is rejected.
Should workshop accounts skip MFA?
Only in a dedicated workshop tenant, for a fixed time, with compensating controls such as no admin roles, no mailbox, and accounts disabled when the session ends. Microsoft Learn documents narrower tools: Conditional Access policies with excluded groups, and the Temporary Access Pass, a time-limited passcode that satisfies MFA requirements.
Sources
Microsoft Learn, checked on November 3, 2026. Session facts come from the session's own setup record, handout, and presenter clock.
- Microsoft Fabric concepts and licenses
- Data agent in Fabric consumption
- Understand the Fabric capacity throttling policy
- Concurrency limits and queueing in Apache Spark for Fabric
- Configure starter pools in Fabric
- Microsoft Fabric capacity quotas
- Microsoft.Fabric capacities template reference
- Fabric data agent concepts
- Fabric data agent sharing and permission management
- Try Microsoft Fabric for free
- Give users access to workspaces
- Workspace roles in Lakehouse
- How lakehouse sharing works
- Required tenant settings for ontology (preview)
- Security defaults in Microsoft Entra ID
- Configure the multifactor authentication registration policy
- Combined security information registration overview
- Require multifactor authentication for all users
- Protect security info registration with Conditional Access
- Configure Temporary Access Pass
- School-level Temporary Access Pass deployment guide
- Microsoft identity platform and OAuth 2.0 Resource Owner Password Credentials
- Run automated integration tests
- Revoke user access in Microsoft Entra ID
- Elevate access to manage all Azure subscriptions and management groups