You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add Microsoft 365 deployment toolkits and policy validation - #7
Add the Defender, Entra and Intune deployment toolkits alongside Purview, with configuration files, operator guides and deployment reports. Update Purview with offline deployment plans and read-only tenant configuration validation.
This is a source-snapshot import, not a transfer of the source repository's Git history. See each product README for supported operations and release limitations.
Review fixes
Correct Conditional Access role, guest and application targeting, the device-or-MFA alternative, and managed-control readback. New policies remain report-only by default. Guest MFA targets guests and external users across the tenant, not the workforce pilot group.
Preserve existing policies for manual migration review where scope or controls have changed. Do not silently adopt, overwrite or duplicate them.
Verify Intune policy settings, scheduled-action children and exact assignments on creation and reruns. Recognize the documented enrollment restriction shapes and report incomplete evidence accurately.
Bind Defender authentication to the requested operator and customer tenant, and give failed operations precedence over blocked report entries.
Regression tests use synthetic service responses, not tenant credentials or customer exports. Guest targeting, readback and Defender authentication failures were reproduced before their fixes. Scoped independent reviews supplement these checks; they are not a full migration audit.
GPT-5.4 performed the rubber-duck reviews. GPT-5.5 independently reviewed the guest-targeting and Defender authentication follow-ups. Those scoped reviews found no concrete blockers; they do not certify the full migration or replace maintainer review.
No live tenant deployment was performed for these fixes. Independent maintainer approval, effective permissions and approved pilot-tenant validation remain required. Tenant reports and other private evidence are not included.
Verified API and runtime clarifications
Some automated findings did not require code changes:
Existing phishing-resistant policy migration and unmanaged app-protection collision guards were retained. The single-platform enrollment restriction is a valid beta resource, not a misspelled legacy discriminator.
Merge plan
Preserve the review commits while this PR is open. After outstanding review is complete, use Squash and merge for one commit on main, with the PR title as its subject and a concise summary instead of the concatenated intermediate commit messages.
<!-- BEGIN pr-telemetry -->
assistance: agentic-cli
type: feature
agent-tool: copilot-cli
agent-model: gpt-6-astra
work-item: AB#n/a
<!-- END pr-telemetry -->
Prevent incomplete policy deployments from being reported as verified.
Correct Conditional Access targeting and the device-or-MFA alternative,
preserve manual migration for existing policies, and verify managed
settings and assignments before reporting success.
Keep tenant identity permissions least-privileged, make operation failures
visible in Defender summaries, and document the corrected behavior.
Add offline regression checks with synthetic Graph responses. These
checks do not replace approved pilot-tenant validation.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Hitesh Jonnalagadda (hiteshsai)
changed the title
Migrate Microsoft 365 best-practice deployment toolkit to open source
Add Microsoft 365 deployment toolkits and policy validation
Sep 25, 2026
Replace the pilot-group placeholder with the documented guest/external
user selector so workforce pilot members are not included by this policy.
Keep report-only defaults and require manual review of existing policies
instead of changing their scope or enforcement through adoption.
Reject unexpected guest exclusions during readback. Add regressions for
guest-only targeting, tenant-wide mode, legacy-policy preservation and
corrupt readback, and document the guest-wide scope explicitly.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Target delegated customer sign-in explicitly instead of relying on a
home-tenant or cached Graph context. Reuse a session only after matching
the requested operator, delegated mode, scopes and live tenant identity.
Reject an unexpected account after sign-in and recheck it in preflight.
Keep existing permission and app-only restrictions. Add isolated connection
regressions and update the operator guidance.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
On every rerun, any toolkit-tagged officeSuiteApp is reported as AlreadyCompliant with Readback='Verified' without checking its managed fields or assignment. If an operator or another process changed the channel, products, or target after creation, the next run will silently accept the drift; perform the same exact readback on existing objects or report them as unverified/guided instead of claiming verification.
After creating and assigning each app-protection policy, this path only records the POSTs as successful and never reads back the policy settings, targeted apps, or exact assignment. A successful response can still leave a partial or incorrectly scoped policy, so the run can claim a completed deployment without the readback guarantee described by the toolkit and PR summary; add bounded readback (or report the result as unverified) before treating this operation as successful.
Align Defender release status across documentation
Products/Defender/README.md:14
This release status conflicts with the repository's product table, which still marks Defender as “Candidate; release authorization required” (README.md:14). Operators can therefore read this page as authorizing a release that the top-level documentation says is not yet authorized; use one consistent status and release boundary across both pages.
Removed initialization of the $result variable as an ordered hashtable. This is a validated issue and the suggestion resolves the issue.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Entra identity read requests an unnecessarily broad Graph scope
Products/Entra/Config/EntraConfig.psd1:64
Entra's only tenant-identity Graph read selects id,verifiedDomains from /organization; this product does not use /subscribedSkus. Requesting delegated Organization.Read.All here therefore grants broader directory read than the operation needs, unlike the repository's User.Read identity contract (for example, Products/Defender/Config/DefenderConfig.psd1:211-215). Remove this delegated scope so the consent prompt remains least-privilege.
-Detail 'Created a cloud-only break-glass account. It has no admin role yet: assign it Global Administrator, reset its password in the portal, and store the credentials securely. The next run confirms the role; the account is excluded from every Conditional Access policy automatically.'
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
agentic-cliWork primarily authored by a terminal AI agentdocsDocumentation changesdocumentationImprovements or additions to documentationenhancementNew feature or requestfeatureNew or expanded product functionality
4 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add the Defender, Entra and Intune deployment toolkits alongside Purview, with configuration files, operator guides and deployment reports. Update Purview with offline deployment plans and read-only tenant configuration validation.
This is a source-snapshot import, not a transfer of the source repository's Git history. See each product README for supported operations and release limitations.
Review fixes
Validation
Executed locally under PowerShell 7:
pwsh -NoProfile -File .\scripts\verify.ps1pwsh -NoProfile -File .\scripts\Test-IdentityReviewFixes.ps1pwsh -NoProfile -File .\scripts\Test-IntuneReviewFixes.ps1pwsh -NoProfile -File .\scripts\Test-DefenderConnectionGuards.ps1Regression tests use synthetic service responses, not tenant credentials or customer exports. Guest targeting, readback and Defender authentication failures were reproduced before their fixes. Scoped independent reviews supplement these checks; they are not a full migration audit.
GPT-5.4 performed the rubber-duck reviews. GPT-5.5 independently reviewed the guest-targeting and Defender authentication follow-ups. Those scoped reviews found no concrete blockers; they do not certify the full migration or replace maintainer review.
No live tenant deployment was performed for these fixes. Independent maintainer approval, effective permissions and approved pilot-tenant validation remain required. Tenant reports and other private evidence are not included.
Verified API and runtime clarifications
Some automated findings did not require code changes:
User.Readpermits the organization fields used for tenant identity.OrderedHashtableinheritsHashtable.Update-MgDeviceManagementexposes-Settings.GuestsOrExternalUsersis a documented Graph user selector.Existing phishing-resistant policy migration and unmanaged app-protection collision guards were retained. The single-platform enrollment restriction is a valid beta resource, not a misspelled legacy discriminator.
Merge plan
Preserve the review commits while this PR is open. After outstanding review is complete, use Squash and merge for one commit on
main, with the PR title as its subject and a concise summary instead of the concatenated intermediate commit messages.