Skip to content

what are the dependencies of implementing an Azure landing zone on understanding the applications workload profile

Of course. This is an excellent and crucial question. Implementing an Azure Landing Zone without understanding the application workload profiles is like building a custom house without knowing how many bedrooms are needed or where the owners want the windows. You might get the structure right, but the details will be wrong, leading to rework, cost overruns, and unhappy occupants.

The dependencies are profound and can be categorized into technical, security, operational, and financial domains.

Here is a detailed breakdown of the dependencies for implementing an Azure Landing Zone based on the applications’ workload profile.

Core Concept: The Workload Profile

A workload profile is a comprehensive blueprint of an application’s characteristics. It answers questions like:

  • What does it do? (e.g., public-facing web app, internal line-of-business app, data analytics platform)
  • What does it need? (CPU, memory, storage, network)
  • How critical is it? (Availability SLAs, RTO/RPO)
  • How does it communicate? (Internal/external dependencies, data flow)
  • What are its constraints? (Compliance, data sovereignty, cost)

Key Dependencies of an Azure Landing Zone on Workload Profiles

  1. Identity and Access Management (IAM) & Network Security

The workload profile directly dictates how you configure Azure Active Directory and network security controls.

  • Dependency: Network Topology and Segmentation.
    • Workload Profile Input: Is the application public-facing (Internet) or purely internal? Does it need to talk to on-premises systems (hybrid)? What are the data classification and compliance requirements (e.g., PCI DSS, HIPAA)?
    • Landing Zone Impact:
      • Hub-and-Spoke vs Virtual WAN: A complex hybrid workload might justify Azure Virtual WAN, while a simple cloud-native app might only need a single VNet.
      • Network Security Groups (NSGs) & Azure Firewall: The specific ports, protocols, and source/destination IPs required by the workload define the NSG and firewall rules. A web app needs ports 80/443 open to the world, while a database server should only accept connections from specific application subnets.
      • Private Endpoints: Workloads handling sensitive data will mandate the use of Private Endpoints for PaaS services (like Azure SQL, Storage) to keep traffic off the public internet.
  1. Governance, Security, and Compliance

Azure Policy and security baselines are not one-size-fits-all; they must be tailored to the workload’s sensitivity.

  • Dependency: Security and Compliance Baseline.
    • Workload Profile Input: What regulatory standards does the workload need to comply with (e.g., NIST, ISO 27001)? What is its data classification (Public, Internal, Confidential, Restricted)?
    • Landing Zone Impact:
      • Azure Policy Definitions: A workload processing credit card data will require a strict set of policies (e.g., “enforce encryption at rest,” “allow only specific VM SKUs,” “deny public blob containers”). A non-critical dev/test workload will have far more lenient policies.
      • Microsoft Defender for Cloud: The workload’s criticality determines which Defender plans (e.g., Defender for Servers, SQL, App Service) are enabled and how alerts are configured.
  1. Platform and Resource Configuration

The choice of services and their configuration is entirely dependent on the workload’s technical requirements.

  • Dependency: Compute, Storage, and Data Services.
    • Workload Profile Input: Is the application a monolithic VM-based app or a microservices-based container app? What are its performance characteristics (e.g., high I/O, GPU-intensive)? What are the data persistence requirements (database, blob storage, fileshares)?
    • Landing Zone Impact:
      • Subscription Design: High-scale, resource-intensive, or isolated workloads (e.g., SAP HANA) might need their own dedicated subscriptions to avoid hitting subscription-level quotas and for better cost tracking.
      • Resource Organization: The workload’s lifecycle (e.g., prod, dev, test) and owner determine its placement in the management group and resource group hierarchy.
      • Service Selection: The profile dictates whether you provision Azure Kubernetes Service (AKS), App Service Plans, Virtual Machine Scale Sets, or specific database tiers (e.g., Business Critical vs General Purpose).
  1. Operations and Management (Monitoring, Backup, DR)

The landing zone must be pre-configured to support the operational lifecycle of the workload.

  • Dependency: Reliability and Disaster Recovery (DR).
    • Workload Profile Input: What are the Recovery Time Objective (RTO) and Recovery Point Objective (RPO)? What is the expected availability SLA (e.g., 99.9%, 99.99%)?
    • Landing Zone Impact:
      • Azure Backup Vault & Policies: The workload’s RPO dictates the backup frequency (e.g., daily, every 4 hours) and retention period.
      • Azure Site Recovery: The workload’s RTO and RPO determine whether ASR is needed and how it is configured (replication frequency, target region).
      • Availability Zones/Region Pairing: A mission-critical workload requiring high availability will drive the decision to deploy across Availability Zones or even to a paired region.
  • Dependency: Monitoring and Alerting.
    • Workload Profile Input: What are the key performance indicators (KPIs) for this application? (e.g., response time < 200ms, error rate < 0.1%). What constitutes a critical failure?
    • Landing Zone Impact:
      • Azure Monitor & Log Analytics: The workload profile defines what logs (e.g., application insights, VM diagnostics) are collected and what queries and alerts are set up in Log Analytics.
      • Alert Rules: Specific performance counters or application errors from the workload profile become the basis for alert rules in Azure Monitor.
  1. Cost Management and Optimization

The financial governance of the landing zone is shaped by the cost profile of the workloads.

  • Dependency: Budgeting and Spending Controls.
    • Workload Profile Input: What is the estimated monthly cost? Is the workload cost-sensitive (e.g., a dev/test environment) or performance-critical (where cost is secondary)?
    • Landing Zone Impact:
      • Azure Budgets and Alerts: The estimated cost informs the budget set at the subscription or resource group level.
      • Tags and Chargeback: The workload’s cost center and application ID drive the mandatory tagging policy, enabling showback/chargeback and cost analysis.

The Consequence of Ignoring These Dependencies

If you build a generic, “standard” landing zone without workload context, you will face:

  1. Over-provisioning and Increased Cost: Implementing the highest security and availability controls for a non-critical workload wastes money.
  2. Under-provisioning and Risk: Applying lenient policies to a sensitive workload creates security gaps and compliance failures.
  3. Operational Inefficiency: The wrong monitoring and backup configurations mean you won’t detect issues or be able to recover effectively.
  4. Significant Rework: Retroactively applying strict network rules or policies to a running application often causes outages and requires complex migration projects.

Recommended Approach: Iterative and Aligned

The modern “Landing Zone Accelerator” approach from Microsoft is designed to accommodate this. You don’t build everything on day one.

  1. Start with a Foundation: Implement a minimum viable product (MVP) landing zone with core IAM, network, and security policies that are safe for any workload.
  2. Profile Your Workloads: Use the Azure Well-Architected Framework to assess and document your key workloads.
  3. Extend the Landing Zone: As you onboard each workload, extend the landing zone with custom Azure Policies, new network rules, and operational configurations specific to that workload’s profile.

This ensures your landing zone is both robust and perfectly tailored to the business applications it supports.

xxx

what is the difference between a BAU uplift approach and transformation approach to remediate an organisation’s cloud adoption.

Excellent question. This gets to the heart of two fundamentally different strategies for cloud improvement. The choice between them has massive implications for cost, timeline, risk, and long-term outcomes.

Here’s a detailed comparison between a BAU Uplift approach and a Transformation approach for cloud remediation.

Core Analogy

  • BAU Uplift: Renovating a house while living in it. You’re making incremental improvements—fixing a leaky roof, updating the kitchen, repainting rooms. The house’s fundamental structure, floor plan, and foundation remain the same. It’s continuous and less disruptive.
  • Transformation: Knocking down the house and building a new, modern one. You start from a clean slate (or a new foundation) with a new architectural design. It’s disruptive, takes longer, and is more expensive upfront, but the result is a purpose-built, optimal solution.

Detailed Comparison

Aspect

BAU Uplift Approach

Transformation Approach

Core Philosophy

Iterative Improvement: “Fix and optimize what we have.”

Fundamental Rethink: “Start over and do it right.”

Mindset

Tactical, Operational, Risk-Averse

Strategic, Visionary, Risk-Taking (for long-term gain)

Scope & Scale

Incremental & Localized: Focuses on specific, high-priority issues (e.g., resizing VMs, adding a backup, applying a security patch to a specific service).

Holistic & Foundational: Addresses the entire environment, including governance, security, operations, and application architecture.

Primary Driver

Risk Reduction & Cost Optimization: Driven by immediate threats (security findings, performance issues) and operational pain points.

Business Value & Innovation: Driven by a future-state vision to enable new capabilities, improve agility, and drastically reduce TCO.

Timeframe

Continuous / Short-Term: Ongoing process with quick wins. Measured in weeks or months.

Project-Based / Long-Term: A defined program with a beginning and end. Measured in quarters or years.

Technical Actions

• Resizing under/over-provisioned resources.
• Applying security patches & configuring NSGs.
• Enabling managed disks.
• Implementing basic tagging.
• “Lifting-and-Shifting” a VM to a similar cloud VM.

• Re-architecting applications to be cloud-native (e.g., breaking a monolith into microservices on AKS/ACA).
• Replatforming databases to PaaS services (SQL DB, Cosmos DB).
• Implementing a full IaC and DevOps pipeline.
• Rebuilding the entire landing zone.

Financial Model

Operational Expenditure (OpEx): Cost is absorbed into the regular cloud bill. Focus is on reducing monthly spend.

Capital Expenditure (CapEx) / Program Funding: Often requires a separate business case and budget approval due to high initial investment for long-term payoff.

Outcome

more efficient and secure version of the old environment. Technical debt is reduced but not eliminated. The fundamental constraints of the initial design remain.

new, modern cloud environment that is scalable, resilient, cost-effective, and aligned with cloud best practices. Technical debt is largely eliminated.

Best Suited For

• Environments that are “mostly okay.”
• When business disruption is unacceptable.
• Lack of funding for a major program.
• As a triage step before a transformation.

• Environments with deep-seated foundational problems.
• When the current state is hindering business growth.
• When there is a strong business driver for innovation (e.g., a new digital product).
• When the long-term TCO of BAU uplift is higher.

A Practical Example: Remediating a Security Finding

Scenario: An audit finds that storage accounts are not secured properly, with many allowing public access.

  • BAU Uplift Approach:
    1. Write a PowerShell script that finds all storage accounts with public access enabled.
    2. Run the script to set the allowBlobPublicAccess property to false on each non-compliant account.
    3. Create an Azure Policy to audit for this setting going forward and deny new non-compliant deployments.
    4. Result: The immediate risk is patched. The symptom is treated, but the cause (a lack of guardrails and developer education) is not fully addressed.
  • Transformation Approach:
    1. Recognize that misconfigured storage accounts are a symptom of a weak landing zone.
    2. Design and implement a new, secure landing zone using a platform-as-code approach (e.g., with Terraform or Bicep modules).
    3. This new landing zone has mandatory Azure Policies that prevent the creation of public storage accounts by default.
    4. It includes a centralized logging and monitoring solution to detect drift.
    5. Migrate applications and their storage accounts from the old environment to the new, governed one.
    6. Result: The root cause is fixed. The platform itself now prevents the misconfiguration from ever happening again, transforming the security posture.

How to Choose the Right Approach

This is not an either/or decision. The most effective cloud adoption remediations often use a blend of both.

  1. Start with Triage (BAU Uplift): Immediately use a BAU uplift to address critical security vulnerabilities and “stop the bleeding.” This is non-negotiable.
  2. Assess the Landscape: Conduct a Well-Architected Framework review. Is the environment fundamentally sound but needs tuning? Or is it a “big ball of mud” built on outdated principles?
  3. Define the Future State: Where does the business want to be in 3-5 years? If the goal is simply “to be more secure and cheaper,” BAU uplift might suffice. If the goal is “to enable rapid feature development and enter new markets,” transformation is likely necessary.
  4. Create a Dual-Track Plan:
    • Track 1 (BAU): A continuous program of operational improvements managed by the cloud platform team.
    • Track 2 (Transformation): A separate, funded program for foundational changes, application modernization, and strategic replatforming.

Conclusion: A BAU Uplift makes your current cloud journey more efficient. A Transformation approach changes the destination and the vehicle itself. The right choice depends entirely on the gap between your current state and your desired future state.

Xxx

how to split m365 dsc work between an infrastructure team and apps team

Excellent question. Splitting Microsoft 365 DSC (Desired State Configuration) responsibilities between an Infrastructure and Apps team is a common and effective governance model. The key is to divide responsibilities based on the platform vs. application of the platform paradigm.

Here’s a detailed breakdown of how to split the work, including a RACI matrix and implementation guidance.

Core Governing Principle

  • Infrastructure Team: Owns the M365 Platform & Core Services. They define the “guardrails,” security baselines, and compliance policies that apply universally across the tenant. Their focus is on governance, security, and cost control.
  • Apps Team (or Business Units): Owns the configuration and usage of services within those guardrails to meet business application needs. Their focus is on collaboration, productivity, and business functionality.

Proposed Responsibility Split

  1. Tenant-Level & Identity Foundation (Primarily Infrastructure Team)

This layer is almost entirely owned by the Infrastructure team, as it forms the security and governance bedrock.

  • M365 Tenant Setup: Initial setup, domains, release ring.
  • Azure AD Connect / Sync: Configuration and management from on-premises AD.
  • Global Admin Roles: Custodianship and management of highly privileged roles.
  • Conditional Access Policies: Defining the baseline security policies (e.g., requiring MFA for all users, blocking legacy authentication).
  • Security & Compliance Center: Configuring default alert policies, data loss prevention (DLP) foundations, and retention labels/policies that are mandatory.
  • DSC Configuration: Writing the DSC code that enforces these tenant-wide settings.
  1. Teams & SharePoint (Shared Responsibility – Clear Boundaries)

This is where the split becomes most critical.

Component

Infrastructure Team Responsibility

Apps Team Responsibility

Teams

Platform Governance:
• Define & enforce naming conventions via DSC.
• Set expiration policies for unused teams.
• Configure allowed/inhibited apps (e.g., no flow for most users).
• Set network settings (e.g., trusted IPs for media).
• Define file sharing and guest access policies at the tenant level.

Team Lifecycle & Configuration:
• Create, archive, and delete teams for projects.
• Manage team membership (ownership is key).
• Create and manage channels within a team.
• Add/remove tabs, connectors, and bots allowed by policy.

SharePoint Online

Platform Governance:
• Create and manage the SharePoint hub site architecture.
• Enforce site creation policies (who can create sites).
• Configure default sharing settings (e.g., “New and existing guests”).
• Deploy and enforce site design templates via DSC.
• Manage tenant-wide Search settings.

Site Collection Management:
• Create new modern sites (which auto-apply the enforced site design).
• Manage site-level permissions and SharePoint groups.
• Customize the site (pages, lists, libraries) within the template.
• Manage content and site information architecture.

  1. Security & Compliance (Primarily Infrastructure, with App Team Awareness)
  • Infrastructure Team:
    • Creates and assigns Sensitivity Labels (for encryption and container-level settings for Teams/Groups/Sites).
    • Writes DSC to ensure these labels are published to the correct users.
    • Manages Data Loss Prevention (DLP) policies that protect regulated data like PII/PCI across the tenant.
    • Configures Microsoft Defender for Office 365 policies (Safe Links, Safe Attachments).
  • Apps Team:
    • Applies the Sensitivity Labels provided by Infrastructure to their Teams, Groups, and SharePoint sites based on the data’s sensitivity.
    • Must be aware of and operate within the boundaries of DLP policies (e.g., cannot disable a policy blocking credit card numbers from being emailed).
  1. Power Platform & Exchange Online
  • Power Platform (Power Apps, Automate, Virtual Agents):
    • Infrastructure Team: Manages Data Loss Prevention (DLP) Policies for Power Platform. This is their primary control lever, defining which connectors can talk to each other (e.g., “Business data” connectors cannot talk to “Public internet” connectors).
    • Apps Team: Creates and manages their own Flows, Apps, and Bots within the boundaries of the DLP policies set by the Infrastructure team.
  • Exchange Online:
    • Infrastructure Team: Manages organization-wide settings (e.g., accepted domains, connectors for hybrid flow, default anti-malware/anti-spam policies). They use DSC to enforce these baselines.
    • Apps Team: Manages delegated permissions (e.g., “Send As”), and creates/distributes distribution lists and shared mailboxes for their specific applications and projects.

RACI Matrix for M365 DSC Implementation & Management

This matrix clarifies who is Responsible, Accountable, Consulted, and Informed.

Activity

Infrastructure Team

Apps Team

Define Tenant-Wide Security Baseline

A/R

I

Write DSC code for Tenant-Wide policies

A/R

C

Define & Enforce Teams/SPO Governance (Naming, Expiry)

A/R

C

Create & Enforce Site Designs/Templates

A/R

C

Create a new Team for a Project

I

A/R

Manage Membership of a specific Team

I

A/R

Create a Sensitivity Label for “Highly Confidential”

A/R

C

Apply a Sensitivity Label to a specific Team/Site

I

A/R

Define Power Platform DLP Policies

A/R

C

Build a Power App that uses SharePoint & Outlook

I

A/R

Handle a DSC configuration drift alert

A/R (if platform policy) / I (if app config)

C / A/R (if their change caused drift)

Practical Implementation & Collaboration Model

  1. Treat M365 DSC as Infrastructure-as-Code (IaC):
    • The DSC configuration should be stored in a Git repository (e.g., Azure DevOps, GitHub).
    • The Infrastructure Team owns the main branch and is the gatekeeper for any changes to the core platform configuration.
  2. Implement a Change Process:
    • If the Apps Team needs a new setting or an exception (e.g., a new allowed app in Teams, a new site design feature), they must submit a Pull Request (PR) or a ticket.
    • The Infrastructure team reviews the PR for compliance with security and governance standards before merging.
  3. Use Layered Configurations:
    • M365 DSC allows for partial configurations. This is perfect for this model.
    • Infrastructure Team’s DSC Config: Deploys all tenant-wide, non-negotiable settings (e.g., Required MFA, Block Legacy Auth, Base DLP Policy).
    • Apps Team’s DSC Config (Optional): The Apps team could be given a limited, scoped configuration to manage settings for their own resources (e.g., a specific set of Sites or Teams they own). This requires a high level of maturity and trust.
  4. Communication and Education:
    • The Infrastructure team must publish and maintain a “Service Catalog” or “Playbook” that clearly documents what the Apps team can do on their own and what requires a request.
    • Regular meetings should be held to discuss new M365 features and how they will be governed.

By following this model, you empower the Apps team to be productive and agile while the Infrastructure team ensures the platform remains secure, compliant, and cost-effective. M365 DSC becomes the automated enforcement mechanism that makes this shared responsibility model work at scale.

Xx

M365 DSC Uses and Applications Overview

what are the uses of M365 DSC, eg for reporting, configuration?

Of course! This is an excellent question, as Microsoft 365 DSC (Desired State Configuration) is a powerful but often misunderstood tool.

In short, M365 DSC is primarily used for configuration managementcompliance monitoring, and drift remediation of a Microsoft 365 tenant. It treats your M365 environment as “infrastructure as code.”

Let’s break down its uses into the two main categories you mentioned, along with some other key applications.

  1. Configuration Management (The Core Use Case)

This is the “Desired State” part of the name. You define what your M365 environment should look like in code, and M365 DSC ensures it matches that definition.

  • Infrastructure as Code (IaC) for M365: You write PowerShell-based configuration scripts that declaratively define the settings for all M365 services (Exchange Online, SharePoint Online, Teams, Security & Compliance, etc.).
    • Example: Your script states “The default sharing link for the ‘Company Documents’ SharePoint site should be ‘People in your organization’.” M365 DSC makes it so.
  • Drift Detection and Remediation: This is a killer feature. M365 DSC continuously monitors your tenant.
    • Detection: It compares the actual state of your tenant against the desired state defined in your scripts.
    • Remediation: If it finds a deviation (e.g., an admin manually changed a Teams setting), it can automatically revert that setting back to its desired state. This enforces compliance and prevents configuration creep.
  • Standardization and Consistency: If you have multiple tenants (e.g., for development, testing, and production), you can use the same configuration script to ensure they are all set up identically. This eliminates human error and manual configuration.
  • Version Control and Change Management: Since your configuration is code, you can store it in a Git repository (like Azure DevOps or GitHub). This allows you to:
    • Track all changes to your M365 configuration over time.
    • Implement approval workflows (via Pull Requests) for any configuration change.
    • Roll back to a known-good configuration if a new change causes issues.
  1. Reporting and Compliance

While its primary strength is configuration enforcement, the monitoring capability makes it an excellent reporting tool.

  • Compliance Reporting: M365 DSC can generate detailed reports (in JSON or HTML format) that show the compliance status of your entire tenant against your defined baseline.
    • Example: You can run a daily report that shows all SharePoint sites that do not have the required sharing settings, all Teams that have guest access enabled against policy, etc.
  • Drift Reports: Get a clear, actionable list of every resource that is out of compliance (“drifted”) without automatically fixing it. This is useful for audit and review purposes before triggering remediation.
  • Evidence for Audits: The generated reports serve as concrete evidence for internal or external auditors, demonstrating that you have a controlled, automated process for managing your M365 configuration.

Other Key Uses and Scenarios

  • Disaster Recovery / Tenant Reconstruction: In a catastrophic scenario where a tenant is badly misconfigured or you need to build a new one (e.g., for a merger), you can simply run your M365 DSC configuration to rebuild the core settings and policies from scratch, ensuring a rapid and consistent recovery.
  • Security Hardening: You can codify security best practices. For instance, your script can enforce:
    • Secure default sharing settings across all SharePoint sites.
    • Specific Sensitivity Labels and Data Loss Prevention (DLP) policies.
    • Mandatory MFA settings in Azure AD.
    • Blocking legacy authentication protocols.
  • Automated Provisioning: While not its main focus, it can be part of a provisioning workflow. For example, when a new SharePoint site is created (by other means), M365 DSC can ensure it automatically gets the correct compliance and sharing policies applied.

Concrete Examples in Practice

Use Case

What the M365 DSC Configuration Script Defines

Security Hardening

“Ensure the ‘Allow guests to access groups’ setting in Azure AD is set to False.”

SharePoint Governance

“Set the ‘Company Policy’ site to be ‘Read-Only’ for all members and block download on files with the ‘Confidential’ label.”

Teams Management

“All new Teams created must have a naming convention that includes the department prefix and must have guest access disabled by default.”

Exchange Online

“Apply the ‘Anti-Phishing Policy’ to all users and set the journaling rule to archive all sent mail.”

Compliance Reporting

“Generate a weekly HTML report showing all non-compliant resources and email it to the CISO.”

What M365 DSC is NOT

To avoid confusion, it’s important to know its limitations:

  • It is NOT a user/group provisioning tool. It doesn’t create user accounts or Microsoft 365 Groups. It configures the policies and settings that apply to those objects.
  • It is NOT a real-time monitoring/alerting tool. It runs on a schedule (e.g., via Azure Automation), so there’s a delay between a drift occurring and its detection/remediation.
  • It does NOT replace the native M365 Admin Centers. It works alongside them, providing an automated, codified layer of control on top of them.

Summary

Think of M365 DSC as the “group policy for your entire Microsoft 365 tenant.” Instead of manually clicking through admin centers or writing one-off PowerShell scripts, you define your desired state once in code, and M365 DSC works tirelessly in the background to enforce it, report on it, and fix any deviations. This is crucial for organizations serious about security, compliance, and operational efficiency in the cloud.

Xx

M365 DSC Uses and Applications Overview

what are the uses of M365 DSC, eg for reporting, configuration?

Of course! This is an excellent question, as Microsoft 365 DSC (Desired State Configuration) is a powerful but often misunderstood tool.

In short, M365 DSC is primarily used for configuration managementcompliance monitoring, and drift remediation of a Microsoft 365 tenant. It treats your M365 environment as “infrastructure as code.”

Let’s break down its uses into the two main categories you mentioned, along with some other key applications.

  1. Configuration Management (The Core Use Case)

This is the “Desired State” part of the name. You define what your M365 environment should look like in code, and M365 DSC ensures it matches that definition.

  • Infrastructure as Code (IaC) for M365: You write PowerShell-based configuration scripts that declaratively define the settings for all M365 services (Exchange Online, SharePoint Online, Teams, Security & Compliance, etc.).
    • Example: Your script states “The default sharing link for the ‘Company Documents’ SharePoint site should be ‘People in your organization’.” M365 DSC makes it so.
  • Drift Detection and Remediation: This is a killer feature. M365 DSC continuously monitors your tenant.
    • Detection: It compares the actual state of your tenant against the desired state defined in your scripts.
    • Remediation: If it finds a deviation (e.g., an admin manually changed a Teams setting), it can automatically revert that setting back to its desired state. This enforces compliance and prevents configuration creep.
  • Standardization and Consistency: If you have multiple tenants (e.g., for development, testing, and production), you can use the same configuration script to ensure they are all set up identically. This eliminates human error and manual configuration.
  • Version Control and Change Management: Since your configuration is code, you can store it in a Git repository (like Azure DevOps or GitHub). This allows you to:
    • Track all changes to your M365 configuration over time.
    • Implement approval workflows (via Pull Requests) for any configuration change.
    • Roll back to a known-good configuration if a new change causes issues.
  1. Reporting and Compliance

While its primary strength is configuration enforcement, the monitoring capability makes it an excellent reporting tool.

  • Compliance Reporting: M365 DSC can generate detailed reports (in JSON or HTML format) that show the compliance status of your entire tenant against your defined baseline.
    • Example: You can run a daily report that shows all SharePoint sites that do not have the required sharing settings, all Teams that have guest access enabled against policy, etc.
  • Drift Reports: Get a clear, actionable list of every resource that is out of compliance (“drifted”) without automatically fixing it. This is useful for audit and review purposes before triggering remediation.
  • Evidence for Audits: The generated reports serve as concrete evidence for internal or external auditors, demonstrating that you have a controlled, automated process for managing your M365 configuration.

Other Key Uses and Scenarios

  • Disaster Recovery / Tenant Reconstruction: In a catastrophic scenario where a tenant is badly misconfigured or you need to build a new one (e.g., for a merger), you can simply run your M365 DSC configuration to rebuild the core settings and policies from scratch, ensuring a rapid and consistent recovery.
  • Security Hardening: You can codify security best practices. For instance, your script can enforce:
    • Secure default sharing settings across all SharePoint sites.
    • Specific Sensitivity Labels and Data Loss Prevention (DLP) policies.
    • Mandatory MFA settings in Azure AD.
    • Blocking legacy authentication protocols.
  • Automated Provisioning: While not its main focus, it can be part of a provisioning workflow. For example, when a new SharePoint site is created (by other means), M365 DSC can ensure it automatically gets the correct compliance and sharing policies applied.

Concrete Examples in Practice

Use Case

What the M365 DSC Configuration Script Defines

Security Hardening

“Ensure the ‘Allow guests to access groups’ setting in Azure AD is set to False.”

SharePoint Governance

“Set the ‘Company Policy’ site to be ‘Read-Only’ for all members and block download on files with the ‘Confidential’ label.”

Teams Management

“All new Teams created must have a naming convention that includes the department prefix and must have guest access disabled by default.”

Exchange Online

“Apply the ‘Anti-Phishing Policy’ to all users and set the journaling rule to archive all sent mail.”

Compliance Reporting

“Generate a weekly HTML report showing all non-compliant resources and email it to the CISO.”

What M365 DSC is NOT

To avoid confusion, it’s important to know its limitations:

  • It is NOT a user/group provisioning tool. It doesn’t create user accounts or Microsoft 365 Groups. It configures the policies and settings that apply to those objects.
  • It is NOT a real-time monitoring/alerting tool. It runs on a schedule (e.g., via Azure Automation), so there’s a delay between a drift occurring and its detection/remediation.
  • It does NOT replace the native M365 Admin Centers. It works alongside them, providing an automated, codified layer of control on top of them.

Summary

Think of M365 DSC as the “group policy for your entire Microsoft 365 tenant.” Instead of manually clicking through admin centers or writing one-off PowerShell scripts, you define your desired state once in code, and M365 DSC works tirelessly in the background to enforce it, report on it, and fix any deviations. This is crucial for organizations serious about security, compliance, and operational efficiency in the cloud.

Xxx

how to split exchange online dsc work between an infrastructure team and apps team

Of course. Splitting Exchange Online management between Infrastructure and Apps teams requires a clear, security-focused model that aligns with the principle of least privilege. This is different from server DSC, as we’re dealing with a SaaS platform and sensitive data.

Core Governing Principle: The “Platform vs. Content” Model

  • Infrastructure Team: Owns the platform, security, and governance. They are the “Exchange Administrators” who configure the system, set policies, and enable features.
  • Apps Team: Owns the configuration required for their application to function. They manage specific service accounts, application mailboxes, and distribution groups needed for their app’s workflows.

This split is best implemented using Azure AD Administrative Units and Role-Based Access Control (RBAC).

Responsibility Matrix: Who Owns What?

Configuration Area

Infrastructure Team Responsibility

Apps Team Responsibility

Collaboration & Technical Implementation

Tenant-Wide Configuration & Security

OWNERS.
• Configure domains, connectors, and accepted domains.
• Manage anti-spam/anti-malware policies (ATP).
• Set up DKIM, DMARC, and DNS records.
• Configure tenant-wide sharing policies (external access).
• Manage OAuth apps and application access policies.
• Monitor message trace and audit logs for security incidents.

NO ACCESS. They are consumers of the secure platform.

Infra team uses the Exchange Online PowerShell module with high-privilege roles like Organization Management.

Mailbox Provisioning & Lifecycle

OWNERS of the process and standard.
• Define mailbox types and sizes (standards for User, Shared, Room mailboxes).
• Manages the underlying Azure AD user objects (for user mailboxes).
• Implements and manages retention/archive policies.
• Handles legal/compliance holds and eDiscovery.

REQUESTERS for application-specific mailboxes.
• Requests creation of Shared Mailboxes or Resource Mailboxes for their application (e.g., noreply-myapp@company.com, conf-room-app@company.com).

Process: Apps team submits a request via a service catalog (e.g., ServiceNow). Infra team provisions the mailbox according to standard templates.

Permissions & Delegation

ENABLERS.
• Creates Administrative Units (AUs) for each app team.
• Creates Custom RBAC Roles (e.g., “App Mailbox Management”).
• Assigns Apps team members to a limited admin role scoped to their AU.

MANAGERS within their scope.
• Manages Send As and Full Access permissions for the mailboxes in their AU.
• Manages membership of distribution groups in their AU.

This is the key technical split. The Infra team gives the Apps team a “fenced-off” section of Exchange Online to manage.

Distribution Groups & Lists

OWNERS of company-wide groups (e.g., all-company@).
• Sets naming policies and creation policies.

OWNERS of application-specific groups.
• Creates and manages DLs for application notifications (e.g., alerts-myapp@company.com).
• Manages the membership of these groups.

The Infra team can create a dynamic distribution group policy that allows Apps teams to create groups within a specific naming convention (e.g., app-*).

Mail Flow (Transport) Rules

OWNERS.
• Creates and manages all mail flow rules for compliance, security, and routing.

REQUESTERS.
• Can request a mail flow rule for their application (e.g., “BCC all emails from myapp@ to a log mailbox”).

All rules are implemented and owned by the Infra team to maintain security and prevent conflicts.

Application/Service Account Configuration

PROVIDERS of the account.
• Creates the underlying Azure AD service account or user account.

CONFIGURATORS of Exchange properties.
• For an account like svc-myapp@company.com, the Apps team configures its mailbox settings, delegates permissions, etc., within their AU scope.

The Infra team places the service account’s mailbox into the Apps team’s Administrative Unit during provisioning.

Recommended Technical Implementation: Administrative Units & RBAC

This is the Microsoft-recommended way to achieve this split securely.

Step 1: Infrastructure Team Creates the Structure

The Infra team, using a high-privilege account, sets up the delegation framework.

powershell

# Connect to Exchange Online as Org Management

Connect-ExchangeOnline -UserPrincipalName admin@company.com

 

# 1. Create an Administrative Unit for the “XYZ” Application Team

New-AzureADMSAdministrativeUnit -DisplayName “AU-AppTeam-XYZ” -Description “Mailboxes for the XYZ Application”

 

# 2. Create a CUSTOM RBAC Role (if built-in ones are too broad)

# Let’s create a role that allows managing mailboxes but NOT deleting them or changing their type.

$RoleEntry = @(

    “Read-AddressList”, “Get-Mailbox”, “Set-Mailbox”,

    “Get-RecipientPermission”, “Add-RecipientPermission”, “Remove-RecipientPermission”,

    “Get-MailboxPermission”, “Add-MailboxPermission”, “Remove-MailboxPermission”,

    “Get-DistributionGroup”, “New-DistributionGroup”, “Set-DistributionGroup”, “Remove-DistributionGroup”,

    “Get-DistributionGroupMember”, “Add-DistributionGroupMember”, “Remove-DistributionGroupMember”

)

# Create the new Role from a base template (like “User Options”)

New-ManagementRole -Name “AppTeam-Mailbox-Managers” -Parent “User Options”

foreach ($Entry in $RoleEntry) {

    Add-ManagementRoleEntry “AppTeam-Mailbox-Managers\$Entry”

}

 

# 3. Assign the RBAC Role to the Apps Team, SCOPED to their Administrative Unit

$AppTeamGroup = Get-AzureADGroup -SearchString “SG-AppTeam-XYZ-MailboxAdmins”

New-RoleGroup -Name “RG-AppTeam-XYZ-Admins” -Roles “AppTeam-Mailbox-Managers”, “Distribution Groups” -AzureADMembers $AppTeamGroup.ObjectId -AdministrativeUnits “AU-AppTeam-XYZ”

Step 2: Daily Operations – How the Split Works

Scenario: The “XYZ” app needs a new notification mailbox.

  1. Provisioning (Infra Team):

powershell

# Infra Team runs this. Mailbox is created in the tenant.

New-Mailbox -Shared -Name “Notifications-XYZ” -DisplayName “XYZ App Notifications” -Alias “notifications-xyz”

 

# Add the new mailbox to the App Team’s Administrative Unit

Add-AzureADMSAdministrativeUnitMember -ObjectId $AU.ObjectId -RefObjectId (Get-Mailbox “notifications-xyz”).ExternalDirectoryObjectId

  1. Configuration (Apps Team):
    The Apps team member, who is a member of the RG-AppTeam-XYZ-Admins role group, can now manage this mailbox. Their permissions are scoped only to mailboxes in their AU.

powershell

# The Apps Team admin connects. They can only see objects in their AU.

Connect-ExchangeOnline -UserPrincipalName appadmin@company.com

 

# This works because the mailbox is in their AU

Set-Mailbox -Identity “notifications-xyz” -MaxSendSize 50MB

Add-MailboxPermission -Identity “notifications-xyz” -User “svc-xyzapp@company.com” -AccessRights FullAccess

Add-RecipientPermission -Identity “notifications-xyz” -Trustee “alerts-xyz@company.com” -AccessRights SendAs

 

# They can also create a new Distribution Group within their AU

New-DistributionGroup -Name “DL-XYZ-Alerts” -Alias “alerts-xyz”

Step 3: Source Control for “DSC-like” Configuration

While not classic DSC, you can manage this configuration as code using the Exchange Online V2 PowerShell Module in scripts checked into Git.

  • Infrastructure Team Git Repo:
    • TenantConfig/Connectors.ps1
    • TenantConfig/SecurityPolicies.ps1
    • TenantConfig/AdminUnits-And-Roles.ps1 (The setup script from Step 1)
  • Apps Team Git Repo:
    • App-XYZ/Exchange/MailboxConfig.ps1 (Scripts to set mailbox sizes, permissions)
    • App-XYZ/Exchange/DistributionGroups.ps1

The Apps team can run their scripts via a CI/CD pipeline, which uses a service principal with the delegated, scoped admin role, ensuring their changes are automated and documented.

Summary: The “Paved Road” for Exchange Online

  • Infrastructure Team: Builds the secure highway, with guardrails (policies), on-ramps (connectors), and rules of the road (compliance). They also build the “service lanes” (Administrative Units) for the Apps teams to drive in.
  • Apps Team: Drives their application vehicles in their designated lane. They can load their cargo (configure mailboxes) and pick up passengers (manage group members) without being able to alter the highway itself.

This model provides safety, scalability, and autonomy, preventing the Infra team from becoming a bottleneck for every small application change while maintaining overall security and governance.

Xxx


how to split exchange online dsc work between an infrastructure team and apps team

Of course. Splitting Exchange Online management between Infrastructure and Apps teams requires a clear, security-focused model that aligns with the principle of least privilege. This is different from server DSC, as we’re dealing with a SaaS platform and sensitive data.

Core Governing Principle: The “Platform vs. Content” Model

  • Infrastructure Team: Owns the platform, security, and governance. They are the “Exchange Administrators” who configure the system, set policies, and enable features.
  • Apps Team: Owns the configuration required for their application to function. They manage specific service accounts, application mailboxes, and distribution groups needed for their app’s workflows.

This split is best implemented using Azure AD Administrative Units and Role-Based Access Control (RBAC).

Responsibility Matrix: Who Owns What?

Configuration Area

Infrastructure Team Responsibility

Apps Team Responsibility

Collaboration & Technical Implementation

Tenant-Wide Configuration & Security

OWNERS.
• Configure domains, connectors, and accepted domains.
• Manage anti-spam/anti-malware policies (ATP).
• Set up DKIM, DMARC, and DNS records.
• Configure tenant-wide sharing policies (external access).
• Manage OAuth apps and application access policies.
• Monitor message trace and audit logs for security incidents.

NO ACCESS. They are consumers of the secure platform.

Infra team uses the Exchange Online PowerShell module with high-privilege roles like Organization Management.

Mailbox Provisioning & Lifecycle

OWNERS of the process and standard.
• Define mailbox types and sizes (standards for User, Shared, Room mailboxes).
• Manages the underlying Azure AD user objects (for user mailboxes).
• Implements and manages retention/archive policies.
• Handles legal/compliance holds and eDiscovery.

REQUESTERS for application-specific mailboxes.
• Requests creation of Shared Mailboxes or Resource Mailboxes for their application (e.g., noreply-myapp@company.com, conf-room-app@company.com).

Process: Apps team submits a request via a service catalog (e.g., ServiceNow). Infra team provisions the mailbox according to standard templates.

Permissions & Delegation

ENABLERS.
• Creates Administrative Units (AUs) for each app team.
• Creates Custom RBAC Roles (e.g., “App Mailbox Management”).
• Assigns Apps team members to a limited admin role scoped to their AU.

MANAGERS within their scope.
• Manages Send As and Full Access permissions for the mailboxes in their AU.
• Manages membership of distribution groups in their AU.

This is the key technical split. The Infra team gives the Apps team a “fenced-off” section of Exchange Online to manage.

Distribution Groups & Lists

OWNERS of company-wide groups (e.g., all-company@).
• Sets naming policies and creation policies.

OWNERS of application-specific groups.
• Creates and manages DLs for application notifications (e.g., alerts-myapp@company.com).
• Manages the membership of these groups.

The Infra team can create a dynamic distribution group policy that allows Apps teams to create groups within a specific naming convention (e.g., app-*).

Mail Flow (Transport) Rules

OWNERS.
• Creates and manages all mail flow rules for compliance, security, and routing.

REQUESTERS.
• Can request a mail flow rule for their application (e.g., “BCC all emails from myapp@ to a log mailbox”).

All rules are implemented and owned by the Infra team to maintain security and prevent conflicts.

Application/Service Account Configuration

PROVIDERS of the account.
• Creates the underlying Azure AD service account or user account.

CONFIGURATORS of Exchange properties.
• For an account like svc-myapp@company.com, the Apps team configures its mailbox settings, delegates permissions, etc., within their AU scope.

The Infra team places the service account’s mailbox into the Apps team’s Administrative Unit during provisioning.

Recommended Technical Implementation: Administrative Units & RBAC

This is the Microsoft-recommended way to achieve this split securely.

Step 1: Infrastructure Team Creates the Structure

The Infra team, using a high-privilege account, sets up the delegation framework.

powershell

# Connect to Exchange Online as Org Management

Connect-ExchangeOnline -UserPrincipalName admin@company.com

 

# 1. Create an Administrative Unit for the “XYZ” Application Team

New-AzureADMSAdministrativeUnit -DisplayName “AU-AppTeam-XYZ” -Description “Mailboxes for the XYZ Application”

 

# 2. Create a CUSTOM RBAC Role (if built-in ones are too broad)

# Let’s create a role that allows managing mailboxes but NOT deleting them or changing their type.

$RoleEntry = @(

    “Read-AddressList”, “Get-Mailbox”, “Set-Mailbox”,

    “Get-RecipientPermission”, “Add-RecipientPermission”, “Remove-RecipientPermission”,

    “Get-MailboxPermission”, “Add-MailboxPermission”, “Remove-MailboxPermission”,

    “Get-DistributionGroup”, “New-DistributionGroup”, “Set-DistributionGroup”, “Remove-DistributionGroup”,

    “Get-DistributionGroupMember”, “Add-DistributionGroupMember”, “Remove-DistributionGroupMember”

)

# Create the new Role from a base template (like “User Options”)

New-ManagementRole -Name “AppTeam-Mailbox-Managers” -Parent “User Options”

foreach ($Entry in $RoleEntry) {

    Add-ManagementRoleEntry “AppTeam-Mailbox-Managers\$Entry”

}

 

# 3. Assign the RBAC Role to the Apps Team, SCOPED to their Administrative Unit

$AppTeamGroup = Get-AzureADGroup -SearchString “SG-AppTeam-XYZ-MailboxAdmins”

New-RoleGroup -Name “RG-AppTeam-XYZ-Admins” -Roles “AppTeam-Mailbox-Managers”, “Distribution Groups” -AzureADMembers $AppTeamGroup.ObjectId -AdministrativeUnits “AU-AppTeam-XYZ”

Step 2: Daily Operations – How the Split Works

Scenario: The “XYZ” app needs a new notification mailbox.

  1. Provisioning (Infra Team):

powershell

# Infra Team runs this. Mailbox is created in the tenant.

New-Mailbox -Shared -Name “Notifications-XYZ” -DisplayName “XYZ App Notifications” -Alias “notifications-xyz”

 

# Add the new mailbox to the App Team’s Administrative Unit

Add-AzureADMSAdministrativeUnitMember -ObjectId $AU.ObjectId -RefObjectId (Get-Mailbox “notifications-xyz”).ExternalDirectoryObjectId

  1. Configuration (Apps Team):
    The Apps team member, who is a member of the RG-AppTeam-XYZ-Admins role group, can now manage this mailbox. Their permissions are scoped only to mailboxes in their AU.

powershell

# The Apps Team admin connects. They can only see objects in their AU.

Connect-ExchangeOnline -UserPrincipalName appadmin@company.com

 

# This works because the mailbox is in their AU

Set-Mailbox -Identity “notifications-xyz” -MaxSendSize 50MB

Add-MailboxPermission -Identity “notifications-xyz” -User “svc-xyzapp@company.com” -AccessRights FullAccess

Add-RecipientPermission -Identity “notifications-xyz” -Trustee “alerts-xyz@company.com” -AccessRights SendAs

 

# They can also create a new Distribution Group within their AU

New-DistributionGroup -Name “DL-XYZ-Alerts” -Alias “alerts-xyz”

Step 3: Source Control for “DSC-like” Configuration

While not classic DSC, you can manage this configuration as code using the Exchange Online V2 PowerShell Module in scripts checked into Git.

  • Infrastructure Team Git Repo:
    • TenantConfig/Connectors.ps1
    • TenantConfig/SecurityPolicies.ps1
    • TenantConfig/AdminUnits-And-Roles.ps1 (The setup script from Step 1)
  • Apps Team Git Repo:
    • App-XYZ/Exchange/MailboxConfig.ps1 (Scripts to set mailbox sizes, permissions)
    • App-XYZ/Exchange/DistributionGroups.ps1

The Apps team can run their scripts via a CI/CD pipeline, which uses a service principal with the delegated, scoped admin role, ensuring their changes are automated and documented.

Summary: The “Paved Road” for Exchange Online

  • Infrastructure Team: Builds the secure highway, with guardrails (policies), on-ramps (connectors), and rules of the road (compliance). They also build the “service lanes” (Administrative Units) for the Apps teams to drive in.
  • Apps Team: Drives their application vehicles in their designated lane. They can load their cargo (configure mailboxes) and pick up passengers (manage group members) without being able to alter the highway itself.

This model provides safety, scalability, and autonomy, preventing the Infra team from becoming a bottleneck for every small application change while maintaining overall security and governance.

how to split sharepoint online dsc work between an infrastructure team and apps team

Of course. Splitting SharePoint Online management requires a nuanced approach that balances centralized governance with application team autonomy. Unlike traditional DSC, we’re managing a SaaS platform where “configuration” involves sites, permissions, and apps.

Core Governing Principle: The “Hub, Hub-Spoke, and Spoke” Model

  • Infrastructure Team: Owns the platform, governance, security, and central services. They are the “tenant admins” who set the guardrails and provide curated templates.
  • Apps Team: Owns the sites, content, and applications they build and maintain. They manage their specific sites and solutions within the boundaries set by the Infrastructure team.

This split is implemented using SharePoint Admin Roles, Hub Sites, and Site Templates.

Responsibility Matrix: Who Owns What?

Configuration Area

Infrastructure Team Responsibility

Apps Team Responsibility

Collaboration & Technical Implementation

Tenant-Wide Settings

OWNERS.
• Tenant-level settings (release preferences, sharing capabilities).
• Data Loss Prevention (DLP) policies.
• Default storage limits and content type hub.
• App permission policies (tenant-scoped).
• Configure and associate Hub Sites.

NO ACCESS. They operate within the configured tenant settings.

Infra team uses SharePoint Online PowerShell (PnP) and the SharePoint Admin Center with the SharePoint Administrator role.

Information Architecture & Hub Sites

ARCHITECTS.
• Creates and manages Hub Sites for major business units or functions (e.g., “HR Hub,” “Engineering Hub”).
• Defines global navigation in the hubs.
• Manages the tenant app catalog for globally deployed solutions.

CONTRIBUTORS to the structure.
• Requests a new hub site for their application domain.
• Associates their application sites with the appropriate hub.
• Manages local navigation within their own sites.

The Infra team provides the hub structure. Apps teams can associate their sites to hubs if they meet the criteria. This creates a unified, discoverable intranet.

Site Provisioning & Templates

PROVIDERS of the “Paved Road.”
• Creates and manages Site Designs and Site Scripts for automated provisioning.
• Maintains custom site templates in the tenant app catalog (e.g., “Project Site,” “Department Collaboration Site”).
• Manages the lifecycle of self-service site creation.

CONSUMERS and EXTENDERS.
• Uses the approved Site Designs to create new sites for their applications.
• Can create and manage their own site columns/content types within their site collection.
• Can save their own configured site as a template for their own use.

The Infra team’s templates include mandatory compliance metadata, retention labels, and a standard information architecture. Apps teams build on this foundation.

Permissions & Security

GUARDIANS of the boundary.
• Manages Microsoft 365 Groups creation policies (who can create groups).
• Configures tenant-wide sharing settings (external sharing limits).
• Manages Azure AD Security Groups used for broad access.
• Monitors compliance and audit logs.

OWNERS of their content.
• Manages membership of Microsoft 365 Groups associated with their sites.
• Manages SharePoint-specific permissions within their site collections.
• Controls sharing of individual files/folders (within tenant policy).

The Infra team uses Azure AD Administrative Units to scope admin roles if needed. Apps teams are granted Site Owner permissions on their specific sites, not tenant admin.

Apps & Customizations

CURATORS of the global catalog.
• Manages the tenant app catalog.
• Approves and deploys SPFx solutions, third-party apps, and custom web parts for broad use.
• Sets app permission policies.

DEVELOPERS and CONSUMERS.
• Develops SPFx web parts and applications for their specific use case.
• Deploys solutions to the Site Collection App Catalog of their site.
• Adds approved third-party apps from the tenant app catalog to their sites.

The Infra team provides a CI/CD pipeline and approval process for promoting apps from a site collection catalog to the tenant app catalog.

Content & Data Management

PLATFORM PROVIDERS.
• Implements retention labels and policies at the tenant level.
• Configures sensitivity labels for encryption and protection.
• Manages search schema and result sources at the tenant level.

CONTENT AUTHORS and CURATORS.
• Applies retention and sensitivity labels to their documents and sites.
• Manages the structure of lists, libraries, and pages within their sites.
• Configures search settings within their site collection.

The Infra team defines the “what” (the labels and policies). The Apps team is responsible for the “how” (applying them correctly to their content).

Recommended Technical Implementation: Hub Sites, Templates, and Scoped Admin Roles

Step 1: Infrastructure Team Sets the Foundation

The Infra team uses SharePoint Admin PowerShell (PnP.PowerShell) to create the governance structure.

powershell

# Connect as SharePoint Admin

Connect-PnPOnline -Url https://contoso-admin.sharepoint.com -Interactive

 

# 1. CREATE HUB SITES for major divisions

$HRHub = Register-PnPHubSite -Site “https://contoso.sharepoint.com/sites/hr”

$EngineeringHub = Register-PnPHubSite -Site “https://contoso.sharepoint.com/sites/engineering”

 

# 2. CREATE AND DEPLOY A SITE TEMPLATE via Site Design

# This script adds a standard welcome page, creates a “Projects” list, and applies a theme.

$SiteScript = @”

{

    “$schema”: “schema.json”,

    “actions”: [

        {

            “verb”: “setSiteExternalSharingCapability”,

            “capability”: “ExistingExternalUserSharingOnly”

        },

        {

            “verb”: “createSPList”,

            “listName”: “Projects”,

            “templateType”: 100

        }

    ],

    “bindata”: { },

    “version”: 1

}

“@

 

$Script = Add-PnPSiteScript -Title “App Team Project Site” -Content $SiteScript

Add-PnPSiteDesign -Title “App Team Project Site” -SiteScriptIds $Script.Id -WebTemplate “64”

Step 2: Delegating Control to Apps Teams

The key is to grant specific, scoped admin roles, not the full SharePoint Admin role.

Option A: SharePoint Admin Center Roles (Simpler)

  • Grant users the “SharePoint Administrator” role but use Administrative Units (if available for SharePoint) to limit their scope (this is still evolving in Microsoft 365).

Option B: Granular Site Collection Admin (Practical & Safe)

  • The Infra team creates the site collection, then adds the Apps Team as Site Collection Administrators.

powershell

# Infra team creates the site collection for the “Phoenix” app team

New-PnPSite -Type TeamSite -Title “Phoenix Application” -Alias “phoenix-app” -IsPublic

 

# Then, grant the App Team’s security group as Site Collection Admin

$AppTeamGroup = Get-AzureADGroup -SearchString “SG-AppTeam-Phoenix”

Set-PnPTenantSite -Url “https://contoso.sharepoint.com/sites/phoenix-app” -Owners $AppTeamGroup.ObjectId

Now, the Apps Team has full control over their site collection only.

Step 3: Daily Operations – How the Split Works

Scenario: The “Phoenix” app team needs a new project site.

  1. The Apps Team Lead (as a Site Owner) runs their provisioning:

powershell

# Apps team connects to THEIR site

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/phoenix-app -Interactive

 

# They can create a new sub-site using an Infra-provided template

# They manage permissions within their site

Add-PnPMicrosoft365GroupOwner -Group “phoenix-app” -Users “new.dev@contoso.com”

 

# They deploy their custom SPFx web part to their SITE COLLECTION app catalog

Add-PnPApp -Path “./phoenix-webpart.sppkg” -Scope Site

  1. The Infrastructure Team monitors and governs:

powershell

# Infra team monitors site usage and storage across the tenant

Get-PnPTenantSite | Where-Object { $_.StorageUsage -gt 1024 } | Format-Table Url, StorageUsage

 

# They can run compliance checks

Get-PnPSite -IncludeRecycleBin -Template “SITEPAGEPUBLISHING#0”

Source Control & “Configuration as Code” Strategy

  • Infrastructure Team Git Repo:
    • Tenant/Hub-Sites.ps1 (Hub site creation and configuration)
    • Tenant/Site-Designs/ (JSON files for site scripts and designs)
    • Tenant/Policies/Retention-Labels.ps1
    • Tenant/SPFx/ (Globally deployed SPFx solutions)
  • Apps Team Git Repo:
    • App-Phoenix/SharePoint/Site-Structure.ps1 (Scripts to create lists, libraries, and pages)
    • App-Phoenix/SPFx/ (Their custom web parts and extensions)
    • App-Phoenix/Config/Content-Types.ps1 (Their custom content types and site columns)

Summary: The “City Planning” Analogy

  • Infrastructure Team: The city planners and government. They zone the land (Hub Sites), build the core infrastructure (tenant settings), set the building codes (Site Templates), and provide public services (tenant app catalog).
  • Apps Team: The architects and business owners. They build their specific buildings (sites) on the zoned land, following the building codes. They own everything inside their building (content, permissions, customizations) and can even design their own interior layouts (site columns, custom web parts).

This model empowers Apps teams to move quickly and own their digital workspace, while the Infrastructure team ensures the entire “city” remains secure, compliant, and well-organized.

how to split microsoft teams dsc work between an infrastructure team and apps team

Of course. Splitting Microsoft Teams management is crucial because Teams sits at the intersection of identity, collaboration, and applications. The split must balance governance with the agility needed for team-based work.

Core Governing Principle: The “Orchestrator vs. Conductor” Model

  • Infrastructure Team: The Orchestrator. Owns the platform, sets the policies, defines the templates, and ensures security/compliance across the entire “orchestra.”
  • Apps Team: The Conductor. Owns their specific “ensemble” (their teams and channels). They manage membership, content, and apps within their teams, using the instruments and sheet music provided by the Infra team.

This split is implemented using Teams Policies, Templates, and Sensitivity Labels.

Responsibility Matrix: Who Owns What?

Configuration Area

Infrastructure Team Responsibility

Apps Team Responsibility

Collaboration & Technical Implementation

Tenant-Wide Settings & Governance

OWNERS.
• Tenant-wide settings (external access, guest access).
• Teams upgrade settings (coexistence mode).
• Network settings (Teams IP/URL requirements).
• Data Loss Prevention (DLP) policies for Teams.
• Retention Policies for Teams messages and files.

NO ACCESS. They operate within the configured tenant boundaries.

Infra team uses Teams Admin Center and Teams PowerShell module with the Teams Administrator role.

Teams Policies (The Guardrails)

DEFINERS & ASSIGNERS.
• Teams Policies: Who can create private/channels, use @mentions.
• Meeting Policies: Who can schedule, record, use video.
• Messaging Policies: Chat features, read receipts, voice messages.
• App Permission Policies: Which apps are allowed/blocked.
• Live Events Policies: For large-scale broadcasts.

CONSUMERS.
• Request changes to policies for their specific use case (e.g., “We need a policy that allows external participants for webinars”).
• Choose the appropriate policy when creating a team (via Sensitivity Labels).

Policies are assigned to users/groups. The Infra team creates a portfolio of “blessed” policy packages (e.g., “Standard User,” “Project Team Lead,” “External Collaborator”).

Team Provisioning & Templates

PLATFORM PROVIDERS.
• Creates and manages Teams Templates (e.g., “Project Team,” “Department Team,” “Event Management”).
• Configures Sensitivity Labels (from Purview) to automatically apply settings (privacy, guest access, external sharing, data classification) upon team creation.
• Manages self-service team creation settings.

CONSUMERS & INITIATORS.
• Uses the approved Templates and Sensitivity Labels when creating a new team for their application or project.
• Defines the business need for the team (purpose, initial members, required channels).

This is the key technical split. The Infra team’s templates and labels automatically set up the team with the right guardrails, so the Apps team can create teams safely without manual Infra intervention.

Team & Channel Management

LIFECYCLE GOVERNORS.
• Implements expiration policies and archival for inactive teams.
• Manages team-wide settings they retain as owners (e.g., restoring deleted teams, managing org-wide teams).

OWNERS of their teams.
• Creates new teams (using approved templates/labels).
• Manages channel creation and moderation within their teams.
• Manages team membership (add/remove members, change roles).
• Manages channel-specific tabs, connectors, and bots.

The Apps team is granted the Team Owner role on the teams they create/manage. The Infra team does not need to be involved in day-to-day membership changes.

Apps & Customizations

CURATORS of the store.
• Manages the Teams app setup policy (pinning core apps for all users).
• Manages the Teams app permission policy (which third-party/ custom apps are allowed).
• Uploads and approves custom apps and Line-of-Business apps to the tenant app catalog.

CONSUMERS & BUILDERS.
• Adds approved apps from the app store or tenant catalog to their teams and channels.
• Develops and submits custom apps (using App Studio) for their specific use case to the Infra team for approval and tenant-wide deployment.

The Infra team provides a “sandbox” or test tenant for Apps teams to develop and validate their custom apps before promotion to production.

Voice & Telephony

OWNERS.
• Configures calling plans and direct routing.
• Manages auto-attendants and call queues.
• Assigns phone numbers and resource accounts.

REQUESTERS.
• Requests a call queue for their application’s support line (e.g., “Support for Phoenix App”).

A formal request process for voice-related configurations, which are inherently centralized.

Recommended Technical Implementation: Templates, Sensitivity Labels, and PowerShell

Step 1: Infrastructure Team Sets the Guardrails with Policies & Templates

The Infra team uses PowerShell and the Admin Center to create the “paved road.”

powershell

# Connect to Microsoft Teams

Connect-MicrosoftTeams

 

# 1. CREATE A CUSTOM TEAMS POLICY for application projects

New-CsTeamsMessagingPolicy -Identity “AppProjectPolicy” -AllowChannelMentions $true -AllowOwnerDeleteMessage $true -AllowUserEditMessage $true -AllowUserDeleteMessage $true

 

# 2. CREATE A CUSTOM TEAMS TEMPLATE for application projects

# This can be done via Admin Center, but the structure is defined in JSON.

# A template pre-defines channels, tabs, and apps.

$AppTeamTemplate = @”

{

    “templateName”: “Application Project Team”,

    “description”: “Standard template for application development and support teams.”,

    “channelTemplates”: [

        { “displayName”: “Announcements 📢”, “isFavoriteByDefault”: true },

        { “displayName”: “General”, “isFavoriteByDefault”: true },

        { “displayName”: “Development 🛠️”, “isFavoriteByDefault”: true },

        { “displayName”: “Support 🚨”, “isFavoriteByDefault”: true }

    ]

}

“@

# Note: Template creation is often done via Admin Center UI or Graph API.

 

# 3. CONFIGURE SENSITIVITY LABELS (in Microsoft Purview Compliance Center) to auto-apply team settings.

# This is the most powerful governance tool. A label can automatically:

# – Set the team to Public/Private

# – Allow/Block Guest access

# – Apply a specific Teams Template

Step 2: The Provisioning Process – How a Team is Created

  1. An Apps Team member needs a new team for the “Phoenix” project.
  2. They go to the Teams client and click “Create a team.”
  3. They select the “Application Project Team” template provided by the Infra team.
  4. They assign the “Internal – Confidential” Sensitivity Label. This label, configured by the Infra team, automatically:
    • Sets the team to Private
    • Blocks guest access
    • Applies the “AppProjectPolicy” messaging policy
  5. The team is created instantly, conforming to all Infra guardrails, and the Apps Team member is the Owner.

Step 3: Delegated Administration (Optional)

For large organizations, you can create a custom admin role for Apps Team leads to manage all teams within a certain classification.

powershell

# Create a custom admin role that can manage all teams but not tenant settings

# This is done by creating a custom Azure AD role with specific permissions or using Teams’ own admin roles.

# The built-in “Teams Communications Support Specialist” can be a good starting point.

 

# More commonly, the Infra team would simply ensure the right users are “Owners” of their respective teams.

Step 4: Daily Operations – The Split in Action

Apps Team creates a channel and adds an app:

powershell

# An Apps Team Owner can use PowerShell for their own team

Connect-MicrosoftTeams

# This cmdlet only works for teams they own

New-TeamChannel -GroupId “a1b2c3d4-1234-1234-1234-123456789012” -DisplayName “Deployment Logs”

Add-TeamApp -GroupId “a1b2c3d4-1234-1234-1234-123456789012” -AppId “12345678-1234-1234-1234-123456789012”

Infrastructure Team monitors and governs:

powershell

# Infra team can run tenant-wide reports

Get-Team | Where-Object {$_.DisplayName -like “*Phoenix*”} | Format-List DisplayName, Visibility, Archived

Get-TeamUser -GroupId “a1b2c3d4-1234-1234-1234-123456789012” -Role Owner

Source Control & “Configuration as Code” Strategy

  • Infrastructure Team Git Repo:
    • Teams/Policies/Teams-Messaging-Policies.ps1
    • Teams/Policies/Meeting-Policies.ps1
    • Teams/Templates/Application-Project-Template.json
    • Teams/Lifecycle/Team-Expiration-Policy.ps1
  • Apps Team Git Repo:
    • App-Phoenix/Teams/Team-Structure.ps1 (Script to add standard channels post-creation)
    • App-Phoenix/Teams/Teams-App-Manifest/ (Their custom app manifest for approval)

Summary: The “Constitution and Citizens” Analogy

  • Infrastructure Team: Writes the Constitution. They define the fundamental laws (policies), the process for forming new states (templates/sensitivity labels), and the bill of rights (security/compliance).
  • Apps Team: Are the Citizens and Mayors. They form their own cities (teams) according to the constitution, govern their own citizens (members), and build their own infrastructure (channels, tabs, apps) within the constitutional framework.

This model enables self-service and agility for Apps teams while ensuring the Infra team maintains overall control, security, and compliance across the Microsoft 365 tenant.

what is the RACI for exchange online dsc work between an infrastructure team and apps team

Here’s a comprehensive RACI matrix for splitting Exchange Online work between Infrastructure and Apps teams. This builds on our previous discussions and provides clear accountability boundaries.

Exchange Online Management RACI Matrix

Legend

  • R = Responsible (does the work)
  • A = Accountable (owns the outcome, has veto power)
  • C = Consulted (two-way communication)
  • I = Informed (one-way communication)

Core Exchange Online Services RACI

Activity

Infrastructure Team

Apps Team

Collaboration/Security Team

Tenant Configuration

   

Domain Management (Add/Remove)

A/R

I

C

Connector Configuration (Inbound/Outbound)

A/R

I

C

Accepted Domains

A/R

I

I

Organization Configuration

A/R

I

I

Security & Compliance

   

Anti-Spam/Anti-Malware Policies

A/R

I

C

Safe Links/Attachments Policies

A/R

I

C

DKIM/DMARC Configuration

A/R

I

C

Data Loss Prevention (DLP) Policies

A/R

C

A/R

Retention/Archive Policies

A/R

C

A/R

eDiscovery & Legal Hold

A/R

C

A/R

Mailbox Management

   

User Mailbox Provisioning

A/R

I

I

Shared Mailbox Creation

A/R

R

I

Resource Mailbox Management

A/R

R

I

Mailbox Permissions (Full Access/Send As)

A/R

R

I

Mailbox Size/Quota Management

A/R

C

I

Distribution Groups

   
  • Dynamic Distribution Groups | A/R | C | I |
    | Distribution Group Creation | A/R | R | I |
    | Group Membership Management | A | R | I |
    | Naming Policies | A/R | C | I |
    Mail Flow | | | |
    | Transport Rules | A/R | C | C |
    | Journal Rules | A/R | I | C |
    | Accepted Domains | A/R | I | I |
    Client Access | | | |
    | Outlook on the Web Policies | A/R | C | I |
    | Mobile Device Policies | A/R | C | C |
    Administrative Units & RBAC | | | |
    | Administrative Unit Creation | A/R | C | I |
    | Custom RBAC Roles | A/R | C | C |
    | Role Assignment | A/R | C | I |

Application-Specific Exchange Online RACI

Activity

Infrastructure Team

Apps Team

Collaboration/Security Team

Application Mailboxes

   

Service Account Mailbox Creation

A/R

R

I

Application Mailbox Configuration

A

R

I

Application Mailbox Permissions

A

R

I

Application Mail Flow

   

Connector for Application SMTP

A/R

R

C

Transport Rules for Applications

A/R

R

C

Monitoring & Reporting

   

Message Trace (Platform Issues)

A/R

I

I

Message Trace (Application Issues)

I

A/R

I

Audit Logs (Security)

A/R

I

C

Audit Logs (Application)

I

A/R

I

Application Integration

   

Graph API Permissions

A/R

R

C

OAuth App Registrations

A/R

R

C

SMTP Authentication

A/R

R

C

Key Decision Points & Escalation Matrix

When Infrastructure Team is Primary Contact:

  • Tenant-wide configuration changes
  • Security and compliance incidents
  • Mail flow issues affecting multiple users
  • Platform performance or availability issues
  • RBAC and permission model changes

When Apps Team is Primary Contact:

  • Application-specific mailbox issues
  • Distribution group management for their applications
  • Application-specific transport rule requests
  • Monitoring their application’s mail flow
  • Service account mailbox management

Escalation Path:

text

Apps Team → Infrastructure Team → Collaboration/Security Team

     ↓              ↓                    ↓

Application   Platform Issues    Security/Compliance

  Issues                        Policy Violations

Implementation Guidelines

  1. Access Control Strategy
  • Infrastructure Team: Exchange Administrator role
  • Apps Team: Custom RBAC role scoped to Administrative Units
  • Use Administrative Units to delegate control over application mailboxes
  1. Request Process
  2. Communication Protocols
  • I (Informed): Automated notifications, status reports
  • C (Consulted): Design reviews, change advisory boards
  • R (Responsible): Work tickets, implementation plans
  • A (Accountable): Approval workflows, sign-off requirements
  1. Key Performance Indicators
  • Infrastructure Team: Tenant health, security compliance, platform availability
  • Apps Team: Application mail delivery success, mailbox availability, user satisfaction

This RACI matrix ensures clear accountability while maintaining the flexibility needed for both teams to operate effectively within their domains of expertise.

what is the RACI for sharepoint online dsc work between an infrastructure team and apps team

Here’s a comprehensive RACI matrix for SharePoint Online work between Infrastructure and Apps teams, focusing on the “configuration as code” and administrative responsibilities.

SharePoint Online Management RACI Matrix

Legend

  • R = Responsible (does the work)
  • A = Accountable (owns the outcome, has veto power)
  • C = Consulted (two-way communication)
  • I = Informed (one-way communication)

Core Platform & Governance RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Tenant Administration

   

Tenant-wide Settings

A/R

I

C

SharePoint Admin Center Access

A/R

I

C

Storage and Resource Management

A/R

I

I

Information Architecture

   

Hub Site Creation & Management

A/R

C

I

Hub Site Association

A/R

R

I

Tenant-wide Term Store

A/R

C

I

Security & Compliance

   

Data Loss Prevention (DLP) Policies

A/R

C

A/R

Sensitivity Labels

A/R

C

A/R

Retention Policies

A/R

C

A/R

eDiscovery & Legal Hold

A/R

C

A/R

Access Control

   

External Sharing Settings

A/R

C

C

Azure AD Security Groups

A/R

C

C

Admin Role Definitions

A/R

I

C

Monitoring & Reporting

   

Usage Analytics & Reports

A/R

C

I

Audit Log Review

A/R

I

C

Performance Monitoring

A/R

I

I

Site Collection & Content Management RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Site Provisioning

   

Site Creation Policies

A/R

C

C

Self-Service Site Creation

A/R

C

C

Site Templates & Designs

   

Site Design Creation

A/R

C

I

Site Script Development

A/R

R

I

Template Management

A/R

C

I

Site Collection Management

   

Site Collection Creation

A/R

R

I

Site Collection Deletion

A/R

R

I

Site Collection Admin Assignment

A/R

R

I

Storage Quota Management

A/R

C

I

Content Management

   

Content Type Hub Management

A/R

C

I

Site Columns (tenant-wide)

A/R

C

I

Document Library Setup

I

A/R

I

List Creation & Management

I

A/R

I

Application Development & Customization RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

App Catalog Management

   

Tenant App Catalog

A/R

C

C

Site Collection App Catalog

A

R

I

App Deployment Approval

A/R

R

C

SPFx Solutions

   

SPFx Development

I

A/R

I

SPFx Package Validation

A/R

R

C

SPFx Deployment

A/R

R

I

Customizations

   

Custom Web Parts

I

A/R

I

Page Layouts & Designs

I

A/R

I

Power Platform Integration

A/R

R

C

API & Automation

   

PnP PowerShell Scripts

A/R

R

I

Microsoft Graph API Usage

A/R

R

C

Flow/Power Automate

I

A/R

I

Permissions & Security RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Site-Level Permissions

   

Permission Strategy

A/R

C

C

Site Group Management

I

A/R

I

User Permission Assignment

I

A/R

I

Information Rights Management

   

IRM Configuration

A/R

C

A/R

IRM Template Application

I

A/R

I

Sharing Management

   

Sharing Link Policies

A/R

C

C

Guest User Access

A/R

R

C

Access Request Management

I

A/R

I

Key Decision Authority Matrix

Infrastructure Team Owns:

  • ✅ Tenant-wide settings and policies
  • ✅ Hub site architecture
  • ✅ Security and compliance framework
  • ✅ App catalog governance
  • ✅ Performance and capacity management

Apps Team Owns:

  • ✅ Site content and structure
  • ✅ Application customizations
  • ✅ User permissions within their sites
  • ✅ Business process automation
  • ✅ Application-specific configurations

Shared Ownership:

  • 🔄 Site designs and templates
  • 🔄 SPFx solution deployment
  • 🔄 External sharing decisions
  • 🔄 Retention policy application

Escalation Path & Support Model

Level 1 (Apps Team Self-Service):

  • Site creation using approved templates
  • Permission management within owned sites
  • Content organization and metadata
  • Custom web part development

Level 2 (Infrastructure Team):

Level 3 (Vendor/Microsoft):

  • Platform outages
  • Feature requests to Microsoft
  • Technical support cases

Implementation Guardrails

  1. Automated Governance

powershell

# Infrastructure Team maintains these scripts

# Site Provisioning Template

New-PnPSiteScript -Title “App Team Site Template” -Content {

    “bindata”: {},

    “version”: 1,

    “actions”: [

        {

            “verb”: “createSiteColumn”,

            “fieldType”: “Text”,

            “internalName”: “AppID”,

            “displayName”: “Application ID”

        }

    ]

}

  1. Permission Boundaries
  • Infrastructure Team: SharePoint Administrator role
  • Apps Team: Site Collection Administrator on their sites
  • Developers: Site Owner with app deployment rights
  1. Change Control Process
  • Standard Changes: Apps team can self-service (site creation, content updates)
  • Normal Changes: Require Infrastructure team review (new web parts, custom scripts)
  • Major Changes: Require CAB approval (new integrations, security changes)

This RACI matrix ensures clear accountability while enabling Apps teams to move quickly within their defined boundaries, with the Infrastructure team providing the secure, governed platform.

what is the RACI for microsoft teams dsc work between an infrastructure team and apps team

Here’s a comprehensive RACI matrix for Microsoft Teams work between Infrastructure and Apps teams, focusing on governance, configuration, and ongoing management.

Microsoft Teams Management RACI Matrix

Legend

  • R = Responsible (does the work)
  • A = Accountable (owns the outcome, has veto power)
  • C = Consulted (two-way communication)
  • I = Informed (one-way communication)

Core Platform & Governance RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Tenant-wide Settings

   

Organization-wide Settings

A/R

I

C

External Access (Federation)

A/R

I

C

Guest Access Settings

A/R

C

A/R

Teams Upgrade Settings

A/R

I

I

Policy Framework

   

Teams Policy Packages

A/R

C

C

Messaging Policies

A/R

C

I

Meeting Policies

A/R

C

I

Live Events Policies

A/R

C

I

App Permission Policies

A/R

C

C

Security & Compliance

   

Data Loss Prevention (DLP)

A/R

C

A/R

Retention Policies

A/R

C

A/R

eDiscovery & Legal Hold

A/R

C

A/R

Audit Log Monitoring

A/R

I

C

Network & Performance

   

Network Assessment

A/R

I

I

QoS Configuration

A/R

I

I

Usage Reports & Analytics

A/R

C

I

Team & Channel Management RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Team Provisioning

   

Team Creation Policies

A/R

C

C

Team Template Creation

A/R

C

I

Sensitivity Labels Setup

A/R

C

A/R

Team Lifecycle

   

Team Creation (Standard)

I

A/R

I

Team Creation (Sensitive)

A/R

R

C

Team Archiving/Deletion

A

R

I

Team Expiration Policies

A/R

C

I

Channel Management

   

Channel Creation

I

A/R

I

Private Channel Management

I

A/R

I

Channel Moderation

I

A/R

I

Shared Channel Setup

A/R

R

C

Apps & Customization RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

App Ecosystem

   

App Permission Policies

A/R

C

C

App Setup Policies

A/R

C

I

Tenant App Catalog Management

A/R

C

C

Custom Apps

   

Custom App Development

I

A/R

I

App Validation & Approval

A/R

R

C

App Deployment

A/R

R

I

Integrations

   

Bot Framework Registration

A/R

R

C

Connector Configuration

I

A/R

I

Tab Configuration

I

A/R

I

Power Platform Integration

A/R

R

C

Meetings & Voice RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Meeting Management

   

Meeting Policy Configuration

A/R

C

I

Meeting Template Creation

A/R

C

I

Live Events Configuration

A/R

C

I

Voice & Telephony

   

Calling Plan Setup

A/R

I

I

Direct Routing Configuration

A/R

I

I

Auto Attendant & Call Queue

A/R

R

I

Resource Account Management

A/R

R

I

Device Management

   

Teams Phone Setup

A/R

I

I

Teams Room Configuration

A/R

C

I

Permission & Membership RACI

Activity

Infrastructure Team

Apps Team

Security/Compliance Team

Team Membership

   

Team Owner Assignment

I

A/R

I

Team Member Management

I

A/R

I

Guest User Management

A

R

C

Role Management

   

Teams Admin Roles

A/R

I

C

Custom Admin Roles

A/R

C

C

Permission Management

   

Team-level Permissions

I

A/R

I

  • Channel-level Permissions | I | A/R | I |

Key Decision Authority Matrix

Infrastructure Team Owns (The “Constitution”):

  • ✅ Tenant-wide settings and policies
  • ✅ Security and compliance framework
  • ✅ Network and performance standards
  • ✅ App governance and approval
  • ✅ Voice and telephony infrastructure

Apps Team Owns (The “Citizens & Mayors”):

  • ✅ Team creation and lifecycle
  • ✅ Channel structure and management
  • ✅ Team membership and permissions
  • ✅ App integration within their teams
  • ✅ Meeting coordination and management

Shared Ownership:

  • 🔄 Team template design
  • 🔄 Custom app deployment
  • 🔄 Guest access decisions
  • 🔄 Policy exception requests

Escalation Path & Support Model

Level 1: Apps Team Self-Service (Automated)

powershell

# Apps Team can run these for their owned teams

New-Team -DisplayName “Project Phoenix” -Description “Team for Phoenix application”

New-TeamChannel -GroupId $teamId -DisplayName “development”

Add-TeamUser -GroupId $teamId -User “user@company.com”

Level 2: Infrastructure Team Support

Level 3: Vendor/Microsoft Support

  • Platform-wide outages
  • Feature availability issues
  • Technical support escalations

Implementation Guardrails & Boundaries

  1. Automated Governance with Sensitivity Labels

powershell

# Infrastructure Team maintains these policies

New-CsTeamTemplate -Name “Application Project” -Description “Template for app teams”

Set-CsTeamsMessagingPolicy -Identity “AppTeamPolicy” -AllowUserEditMessages $true

 

# Apps Team uses these guardrails automatically

New-Team -DisplayName “App Team” -Template “Application Project”

  1. Permission Boundaries
  • Infrastructure Team: Teams Administrator, Teams Communications Administrator
  • Apps Team: Team Owner on their created teams
  • End Users: Team Member with appropriate policy assignments
  1. Change Control Process
  • Standard Changes: Apps team self-service (team creation, channel management)
  • Normal Changes: Infrastructure team review (policy changes, app approvals)
  • Major Changes: CAB approval (tenant-wide settings, security policies)
  1. Monitoring & Compliance
  • Infrastructure Team Monitors: Tenant health, policy compliance, security incidents
  • Apps Team Monitors: Team activity, application-specific usage, user satisfaction
  • Shared Monitoring: Guest access, data leakage risks, adoption metrics

This RACI matrix enables Apps teams to move quickly and autonomously within their Teams environment while ensuring the Infrastructure team maintains overall governance, security, and platform stability. The key is balancing empowerment with appropriate guardrails.

what is the RACI for M365 dsc work between an infrastructure team and apps team

Here’s a comprehensive RACI matrix for Microsoft 365 (M365) work between Infrastructure and Apps teams, covering the entire M365 ecosystem.

Microsoft 365 Enterprise Management RACI Matrix

Legend

  • R = Responsible (does the work)
  • A = Accountable (owns the outcome, has veto power)
  • C = Consulted (two-way communication)
  • I = Informed (one-way communication)

Core Identity & Access Management RACI

Activity

Infrastructure Team

Apps Team

Security Team

Azure AD Management

   

Tenant Configuration

A/R

I

C

User Provisioning/Lifecycle

A/R

I

I

Group Management (Security/M365)

A/R

R

C

Conditional Access Policies

A/R

C

A/R

Identity Protection

A/R

I

A/R

Privileged Identity Management

A/R

I

A/R

Administrative Units

   

AU Structure Design

A/R

C

C

AU Membership

A/R

R

I

App Registrations

   

Enterprise App Configuration

A/R

C

C

Custom App Registrations

A

R

C

API Permissions

A/R

R

C

Productivity & Collaboration RACI

Activity

Infrastructure Team

Apps Team

Security Team

Exchange Online

   

Tenant Configuration

A/R

I

C

Mailbox Provisioning

A/R

R

I

Transport Rules

A/R

C

C

SharePoint Online

   

Tenant Settings

A/R

I

C

Site Collection Creation

A/R

R

I

Hub Site Management

A/R

C

I

Microsoft Teams

   

Tenant Configuration

A/R

I

C

Team/Channel Creation

I

A/R

I

Teams Policies

A/R

C

C

OneDrive for Business

   

Configuration Policies

A/R

I

I

Storage Management

A/R

I

I

Viva Suite

   

Viva Connections

A/R

R

I

Viva Learning

A/R

R

I

Viva Insights

A/R

C

C

Security & Compliance RACI

Activity

Infrastructure Team

Apps Team

Security Team

Microsoft Purview

   

Data Loss Prevention

A/R

C

A/R

Information Protection

A/R

C

A/R

Retention Policies

A/R

C

A/R

eDiscovery

A/R

C

A/R

Defender Suite

   

Defender for Office 365

A/R

I

A/R

Defender for Cloud Apps

A/R

I

A/R

Defender for Identity

A/R

I

A/R

Intune (Endpoint Management)

   

Compliance Policies

A/R

I

C

Configuration Policies

A/R

C

C

App Protection Policies

A/R

C

C

Windows Update Rings

A/R

I

I

Power Platform RACI

Activity

Infrastructure Team

Apps Team

Security Team

Environment Management

   

Environment Creation

A/R

R

I

Data Loss Prevention Policies

A/R

C

A/R

Power Apps

   

Canvas App Development

I

A/R

I

Model-Driven Apps

I

A/R

I

App Sharing & Permissions

A

R

C

Power Automate

   

Flow Development

I

A/R

I

Flow Governance

A/R

C

C

Power BI

   

Workspace Management

A/R

R

I

Report Development

I

A/R

I

Data Gateway Management

A/R

R

I

Application Management RACI

Activity

Infrastructure Team

Apps Team

Security Team

App Catalog Management

   

Tenant App Catalog

A/R

C

C

App Permission Policies

A/R

C

C

Custom Development

   

SPFx Solutions

A

R

C

Teams Apps

A

R

C

Graph API Integration

A/R

R

C

Third-Party Integrations

   

SaaS App Integration

A/R

R

C

API Management

A/R

R

C

Monitoring & Governance RACI

Activity

Infrastructure Team

Apps Team

Security Team

Service Health

   

Incident Monitoring

A/R

I

I

Service Request Management

A/R

I

I

Usage Analytics

   

Adoption Metrics

A/R

C

I

License Management

A/R

I

I

Cost Management

   

Subscription Management

A/R

I

I

Cost Optimization

A/R

C

I

Backup & Recovery

   

Data Protection Policies

A/R

C

C

Disaster Recovery

A/R

I

C

Key Decision Authority Matrix

Infrastructure Team Owns (Platform & Foundation):

  • ✅ Tenant-wide configuration and settings
  • ✅ Core identity and access management
  • ✅ Security and compliance framework
  • ✅ License and subscription management
  • ✅ Network and connectivity
  • ✅ Service health and monitoring

Apps Team Owns (Application Layer):

  • ✅ Application development and customization
  • ✅ Team/site content and structure
  • ✅ Business process automation
  • ✅ Application-specific configurations
  • ✅ User training and adoption
  • ✅ Business data management

Security Team Owns (Guardrails):

  • ✅ Security policy enforcement
  • ✅ Compliance monitoring
  • ✅ Risk assessment
  • ✅ Incident response
  • ✅ Data protection standards

Escalation Path & Support Model

Level 1: Apps Team Self-Service

powershell

# Apps Team manages within their boundaries

New-Team -DisplayName “Project Team”

New-PnPSite -Type TeamSite -Title “Project Site”

New-DistributionGroup -Name “Project DL”

Level 2: Infrastructure Team Support

Level 3: Vendor/Microsoft Support

  • Service incidents
  • Feature requests
  • Technical escalations

Implementation Guardrails & Automation

  1. Infrastructure as Code (IaC) Boundaries

powershell

# Infrastructure Team maintains foundation

# Tenant-wide policies

New-MgPolicyFeatureRolloutPolicy -DisplayName “Standard Release”

Set-MgIdentityConditionalAccessPolicy -DisplayName “Baseline Policy”

 

# Apps Team manages their resources

# Application-specific configurations

New-MgGroup -DisplayName “App Team” -MailEnabled:$false -SecurityEnabled:$true

  1. Permission Model
  • Infrastructure Team: Global Admin, SharePoint Admin, Teams Admin
  • Apps Team: Limited admin roles scoped to Administrative Units
  • Developers: Application-specific permissions
  • End Users: Standard user licenses with self-service capabilities
  1. Change Control Framework
  • Standard Changes: Automated self-service (team creation, site provisioning)
  • Normal Changes: Peer review + automated testing (app deployment, policy updates)
  • Major Changes: CAB approval + security review (tenant-wide changes, new services)
  1. Monitoring & Compliance

Cross-Team Collaboration Model

Weekly Sync Meetings:

  • Infrastructure + Apps: Platform updates, upcoming changes
  • Infrastructure + Security: Security review, compliance status
  • Apps + Security: Application security, data protection

Quarterly Planning:

  • Joint roadmap development
  • Capacity planning and license management
  • Service improvement initiatives

This comprehensive RACI matrix ensures clear accountability across the entire M365 ecosystem while enabling collaboration and innovation. The Infrastructure team provides the secure, governed platform, while Apps teams leverage M365 services to deliver business value quickly and safely.