Every claim in this handbook carries a tag, so you can tell documentation from observation from opinion.
- DDocumented. Documented by Microsoft on Learn, Support, Message center, GitHub or an official blog, as of the dates in Appendix E
- OObserved. Observed first-hand on 7 November 2026 in a live Copilot Code cloud session: its tools, its sandbox, an example tenant's policy verdicts, and the repository of a production partner-sales app
- CCommunity. Reported by the community (MVP blogs, forums, videos, GitHub issues) and not confirmed by Microsoft
- IInference. Inference or recommendation by the author; test it before you rely on it
Part 15
Giving people access
- What it isThe four separate checks behind every share, how to share from each tool, what recipients experience, and how to revoke access.
- What you doLine up play, edit, data permissions and runtime coverage on one Entra group, and test with an ordinary colleague's account.
- Watch outEdit access grants write access to the repository, guests can't open apps yet, and play and edit must be removed separately.
Decide this in the setup Step 7: Access and licensing
Sharing a managed app is four decisions, not one. Section 15.1 shows them; the rest of this part shows how to make each one from every tool, and how to undo it.
Swipe sideways to see the whole figure, or read it as text below.
Read the figure as text
One Entra group is used four ways: the app is shared with it for play, edit goes only to co-owners, the same group holds the list or table permissions, and the same group gets Power Apps Premium or a runtime spending policy. Sharing grants checks 1 and 2; checks 3 and 4 are made for every person, every time.
Numbers from the claim register: 0.1 credit per API call D (section 1).
The four checks
Access is four separate checks. Sharing the app covers only the first two; data permissions and runtime coverage are checked for every person, every time.
Open the app (play)
Run-only access, granted as the Microsoft App Reader role. Microsoft states plainly that environment access and app sharing are separate controls. DO
Change the app (edit)
Contributor rights on the app's source repository, which let someone clone, push, see the preview and deploy. Play and edit are independent: granting one never grants or removes the other. Copilot Studio sharing never grants edit. DO
Reach the data
Recipients need "the appropriate source permissions and connections." The app calls each source as that person, so someone without access to the list sees an empty screen, not your data. D
Pay for runtime
Each person needs Power Apps Premium or Copilot credits under a spending policy: 0.1 credit per API call, plus a per-launch charge whose rate is not published. A Microsoft 365 Copilot license is not required just to run an app. D
15.2Sharing from each tool
| Tool | How to share | Notes |
|---|---|---|
| Cowork | Open the app for editing, test it, select Publish, then select Share to generate a sharing link and send it | Every later change needs Publish again; the link carries play access only D |
| Copilot Code | Say "Publish it", then "Share it with the Partner Sales group so they can use it" or "...so they can edit it" | Code looks up the people or groups first and grants by Entra object id, up to 20 at a time, on the play or edit level. It can list current grants but can't create an organization-wide link DO |
| Copilot Studio Apps | Publish, open and check the URL, select Share, choose people, a Microsoft 365 or security group, or a permitted link, review the connections, then send the invitation or copy the link | Studio sharing is use access only; it never grants editing D |
| ms CLI | ms app share <people> --access play or --access edit; ms app share link create for an organization link | The only route with a full, scriptable inventory and revocation D |
| Coding-agent plugin | /share and /share-link | Asks for confirmation, then runs the same CLI commands D |
15.3Command-line reference
ms auth status
ms app share alice@contoso.com,bob@contoso.com --access play
ms app share dev-team@contoso.com --access edit
ms app share list --access play
ms app share list --access edit
ms app unshare alice@contoso.com --access play
ms app share link create
ms app share link list --json
ms app share link revoke --link-id <id>
ms app list --permission play- Principals are a comma-separated list of email addresses or Entra object ids. Unresolved addresses produce warnings while the rest go through, so read the output rather than assuming everyone was added. D
share listneeds--access; run it for both levels. The flag is--access; there is no--role. D- An organization link is revocable and scoped to your tenant, never anonymous. Redeeming it grants Microsoft App Reader, and revoking it removes the role from everyone who redeemed it. D
15.4What the recipient experiences
- They can open the link you send, or find every app shared with them at managedapps.cloud.microsoft. D
- On first open they sign in and, for apps that use connectors, see a connection consent dialog listing the sources and actions. Single sign-on is attempted, and they can sign in manually to repair a failed connection. D
- If their environment, license or data permissions are missing, the app opens but fails at the first data call, or is blocked after 20 app operations or five minutes. Always test with an ordinary colleague's account, never only your own. DI
- For Teams, Microsoft's documented route is posting the link in a channel. Pinning a managed app as a Teams tab is not documented, and the content security policy's frame-ancestors rule controls where an app may be embedded. D
- Whether recipients get an automatic email is not documented for Cowork or the CLI, so send the link yourself with a line on what the app is for. DI
15.5Groups, environments and admin controls
- Share with groups, not lists of people. Entra security groups and Microsoft 365 groups are supported. Distribution lists are not documented, so use a security group's object id when in doubt. D
- One group for all four checks. Use the same group to share the app, grant the SharePoint or Dataverse permissions and assign the license or spending policy; joiners and leavers then change in one place. I
- Environment security group. If an admin restricts the environment to a security group (Power Platform admin center, Manage, Environments, the environment, Edit, Security group), a person needs that membership and the app share; sharing doesn't bypass the group, and joining the group doesn't share any app. D
- Organization rules. Admins set organization-wide and guest sharing for managed apps under Microsoft 365 admin center, Apps, Settings, Environment groups, the group, Sharing; these rules are separate from general Power Platform sharing settings. D
- Inventory. Admins see every app under Apps, All apps (details, usage, monitoring, data and tools), can block an app (access stops, app and data kept) or delete it, and see changes within about 15 minutes. Numeric sharing caps are not documented. D
15.6Edit access and ownership
- Edit access is repository collaboration, not co-ownership. No ownership transfer or co-owner procedure is documented yet, so make a named backup owner an editor from day one and record both names in README.md. DI
15.7Guests and partners
15.8Revoking and offboarding
- Remove play and edit separately; no single operation removes both. D
- Revoke organization links you no longer need, then list grants again to confirm. D
- Remove the person from the data source's group too; app access and data access end independently. I
- Keep the share inventories from
ms app share list --access playand--access editwith each release record, since a published audit-event catalog for app sharing doesn't exist yet. DI
15.9Sharing checklist
- The live version is the one you tested, and publishing and sharing are treated as separate steps. D
- Play and edit inventories are reviewed; link ids and warnings are saved. D
- The environment's security group, sharing rules, data permissions and runtime coverage all include the audience. D
- One ordinary user, one read-only user and one person with no data access have tried the published app. I
- The backup owner, support contact, budget owner and revocation steps are written in README.md. I
Part 16
Data, security and governance
- What it isThe security view of sharing, what users and admins can see, guardrails inside the app, tenant governance defaults and how to ask for an exception.
- What you doEnforce row and column rules in the source, add send checks with tests, and ask admins for the narrowest exception at the group level.
- Watch outHiding a column is not security, admins can't see which actions an app ran, and no managed-app audit events are documented yet.
Decide this in the setup Step 8: Governance
16.1Sharing: play, edit and links
Part 15 walks through sharing step by step; this section is the security view of the same controls.
- Apps are private until shared. You can share with people or groups, including Entra security groups, or with a "People in your organization" link; revoking a link removes access for everyone who used it. D
- If the environment has a security group, it still applies: sharing does not bypass it, and joining the group grants nothing by itself. D
Access is four separate checks. Sharing the app covers only the first two; data permissions and runtime coverage are checked for every person, every time.
Open the app (play)
Run-only access, granted as the Microsoft App Reader role. Microsoft states plainly that environment access and app sharing are separate controls. DO
Change the app (edit)
Contributor rights on the app's source repository, which let someone clone, push, see the preview and deploy. Play and edit are independent: granting one never grants or removes the other. Copilot Studio sharing never grants edit. DO
Reach the data
Recipients need "the appropriate source permissions and connections." The app calls each source as that person, so someone without access to the list sees an empty screen, not your data. D
Pay for runtime
Each person needs Power Apps Premium or Copilot credits under a spending policy: 0.1 credit per API call, plus a per-launch charge whose rate is not published. A Microsoft 365 Copilot license is not required just to run an app. D
From a security view, check 2 matters most: give edit only to co-owners, because the sharing tool observed in Code grants a repository contributor role, which also unlocks the preview. DO
Partner-facing managed apps are not possible today, so pick one of these alternatives instead.
16.2What users can see
By default each person runs the app on their own connection and sees only what their permissions allow, after approving the connection the first time. D An app can instead use a shared connection with a service identity, but shared references must declare their allowed actions or packaging and deployment fail, the CLI can create a shared reference without asking when a connector's sign-in type is shareable, and a shared table read does not restrict which rows each person sees. Check ms.config.json after every binding. DC
Anything the app downloads is visible to the person using it, because browser tools show request and response payloads. Hiding a column in the interface is not security; enforce row and column rules at the source. D
The documentation disagrees with itself here. Cowork's page warns that anyone with the link can open the app "including its data"; the Copilot Code and Studio pages say sharing never grants data access. Both can be true, depending on whether the app uses per-user or shared connections. Test with a non-owner account before you share widely. DI
16.3Guardrails inside the app
A production partner-sales app adds its own guardrails on top of the platform's. O
- Send checks on every path that sends or saves anything outside the app, with a test that fails if any path bypasses them.
- Recipient guards that warn on unknown domains and block contacts the source system marks as off-limits.
- Read-only adapters for systems the team doesn't own, with a test that fails on any write call.
- An identity check: if a sender can't be matched to a known organization, no data is attributed to that organization.
- Plain-text rendering, or sanitizing, of anything that came from mail, files, Copilot or the web.
- A kill switch, planned as team-shared configuration, to turn a feature off without a release.
16.4Tenant governance in brief
Re-check after Ignite
| Control | Default | Where it is set |
|---|---|---|
| Cowork app creation | On through Frontier onboarding | Frontier program |
| Copilot Studio app creation | On; can be limited to security groups | Microsoft 365 admin center, or a pac admin tenant setting |
| CLI app creation | Off | Power Platform admin center, Copilot, Settings, Managed apps; or an environment-group rule |
| Code tab | Copilot Code is gated by a Copilot spending policy that includes Code, plus Frontier membership and, on Windows, the Beta channel. There is no separate Code on/off switch, but your admin has to act; it is not automatic for everyone. Local coding sessions are off by default. | Copilot spending policy and Copilot admin controls |
| Routing to personal developer environments | On for everyone; can't be turned off; makers who match no rule can't create apps | Environment groups |
| Connectors and MCP servers | 18 connectors and 12 MCP servers; risky actions blocked | Apps, Settings, Environment groups |
| Sharing | Organization on; guests off, and guests can't open apps yet | Environment-group sharing rule |
| Content security policy | Same-origin, enforced; report-only mode available | Environment-group CSP rule |
| External build artifacts | Off | Power Platform admin center |
| Spending | Spending policies per product, with per-user limits | Copilot, Cost management |
If your tenant already uses advanced connector policies and classic DLP, the most restrictive result wins, and the admin center can show "no connectors allowed" for an older environment group even while classic DLP is what actually governs it. D
16.5What admins see, and what they don't
- The inventory under Apps, All apps lists owner (which can differ from the creator), status, hosting region and environment group, with tabs for details, usage, monitoring and data and tools; it exports to CSV and refreshes within 15 minutes. Admins can block an app, which keeps the app and its data, or delete it permanently. D
- Monitoring shows app-open success, time to interactive at the 75th percentile, sessions, data-request success and latency, aggregated hourly or daily and kept 28 days, with up to five alert rules per tenant. D
- Admins cannot see exact destinations, the actions an app ran or each user's data permissions, and no managed-app events are documented in the Purview audit log yet; one community report found none after 24 hours. Code's own actions are audited: code generated, commands run and files read or written. DC
16.6Policy settings that surprise builders
- Taking full control freezes the defaults. When an admin takes full control of an environment group's connector policy, Microsoft's automatic updates to that policy stop, so new first-party connectors no longer appear on their own. D
- Group rules lock environment settings. A published environment-group rule supersedes and locks the matching environment setting, and per-environment exceptions aren't supported. Ask for changes at the group level. D
- Personal developer environments are Managed Environments without Dataverse at first. Routing is always on; makers who match no routing rule can be blocked from creating apps until an admin adds one. D
- CLI creation and external artifacts are separate switches. CLI app creation lives under Power Platform admin center, Copilot, Settings, Managed apps; uploading externally built artifacts has its own setting. D
- Billing has two halves. Building is billed through each tool (Cowork's spending policy, Code's Copilot credits, the environment for Copilot Studio); running is covered by Power Apps Premium or a spending policy for managed apps under Microsoft 365 admin center, Copilot, Cost management. Work IQ calls are billed separately. D
16.7Asking for an exception
There is no self-service exception request, so make the admin's decision easy. Send one message with these fields, and ask for the narrowest change, at the group level. DI
| Field | What to write |
|---|---|
| App | Name, app id, environment and environment group |
| Change requested | The exact connector and action, MCP server, or content security directive and origin (copy the blocked origin from the browser console) |
| Why | The business justification: the outcome and who benefits |
| Data | Classification of the data that will flow, and its system of record |
| Scope and duration | Group level or narrower; permanent or until a date; report-only mode first for content security changes |
| Evidence | Reproduction steps, the blocked origin or error from the browser console, and test results from a preview build |
| Owner | Builder, backup owner and the admin contact who approved it |