Security & policy
Azure Policy, Defender, Key Vault, encryption and network segmentation apply across every platform boundary.
Architecture blueprint 01
A secure, observable application and insight platform with clear identity, integration, data and recovery boundaries.
Designed outcome
A scalable foundation for internal applications, controlled integrations and embedded decision support.
Architecture in one view
The logical flow shows the principal ownership boundaries. The detailed explorer below adds the identity, data, trust, observability and recovery decisions needed to make each hand-off safe and supportable.
Logical architecture / target state
A logical Azure pattern for secure internal applications, managed integration and embedded insight. Each lane marks an ownership boundary; the control plane applies end to end.
Read left to right
People & entry: Employees & partners, Service teams, business users and approved partner personas.; Secure portal, Role-aware navigation, task entry and embedded decision support.. Identity boundary: Microsoft Entra ID, Single sign-on, lifecycle control and managed identities.; MFA & conditional access, Risk, device and location-aware access decisions.; Roles & least privilege, Group-led access to applications, APIs and governed data.. Application layer: React applications, Accessible portals, operational tools and reporting surfaces.; Azure App Service, Managed compute, release slots and autoscale boundaries.. API & workflow: API Management, Authentication, throttling, versioning and policy enforcement.; Azure Functions, Event-driven services, scheduled jobs and lightweight APIs.; Logic Apps & messaging, Durable process orchestration, queues and managed connectors.. Business platforms: Dynamics 365, Customer, service and operational business processes.; Dataverse, Governed entities, business rules and secure service access.; Integration services, Controlled connections to ERP, ecommerce and external services.. Data & insight: Azure SQL, Application data, controlled replicas and resilient services.; Azure Data Lake, Replayable history, governed zones and lineage-aware storage.; Power BI Embedded, Secure semantic models surfaced inside role-aware applications.
Known users enter through one controlled experience.
Service teams, business users and approved partner personas.
Role-aware navigation, task entry and embedded decision support.
Identity provides the first and persistent control plane.
Single sign-on, lifecycle control and managed identities.
Risk, device and location-aware access decisions.
Group-led access to applications, APIs and governed data.
Composable experiences keep presentation separate from capability.
Accessible portals, operational tools and reporting surfaces.
Managed compute, release slots and autoscale boundaries.
Versioned contracts isolate applications from platform change.
Authentication, throttling, versioning and policy enforcement.
Event-driven services, scheduled jobs and lightweight APIs.
Durable process orchestration, queues and managed connectors.
Systems of engagement retain explicit ownership boundaries.
Customer, service and operational business processes.
Governed entities, business rules and secure service access.
Controlled connections to ERP, ecommerce and external services.
Operational storage and analytics are deliberately separated.
Application data, controlled replicas and resilient services.
Replayable history, governed zones and lineage-aware storage.
Secure semantic models surfaced inside role-aware applications.
Azure Policy, Defender, Key Vault, encryption and network segmentation apply across every platform boundary.
Application Insights, Log Analytics, platform metrics and audit trails connect service health to accountable ownership.
Tested backups, availability design, recovery objectives and runbooks protect the full business service, not isolated resources.
Logical view, not a deployment topology. Subscription design, regions, network routes, service tiers and recovery objectives should be validated against workload criticality.
Critical journeys, data sensitivity, SLO, RTO and RPO determine service tiers, zones and regions—not the other way around.
Identity, token audience, authorization and data purpose are re-evaluated whenever a journey crosses edge, API, platform or data boundaries.
Versioned APIs, events and data products isolate portal journeys from Dynamics, Dataverse and downstream platform lifecycles.
SLOs, policy, traces, reconciliation and recovery exercises turn the architecture into an operable service rather than a static diagram.
Nine-stage deep dive
Each stage names its Azure role, the boundary being crossed, the control gate, the assurance evidence and the trade-off being accepted. Arrow-key navigation follows the same order as the architecture flow.
Logical pattern / service and tier validation requiredSTAGE 01 / TARGET-STATE DECISION
Known people, explicit purpose, governed entry.
Separate employee, service-team, partner and privileged-administrator journeys before a technology route is selected. Each persona receives only the access, data and operating path needed for its role.
Use tenant identities for the workforce, governed B2B or External ID patterns for partners, and separate privileged identities for administration. Do not create application-local user stores or shared operator accounts.
Primary workforce identity and authentication authority.
Controlled partner onboarding without unmanaged local credentials.
Risk, device, location and authentication-strength policy.
Access packages, reviews and time-bound privileged access.
A person becomes a trusted actor only after tenant, persona and authentication-strength checks pass.
External tenants and unmanaged devices are treated as lower-trust channels with narrower permissions.
Sign-in risk, access-package assignment and privileged activation are retained as security evidence.
STAGE 02 / TARGET-STATE DECISION
One governed front door; no bypass to the workload.
Provide an accessible, role-aware entry point while containing internet, partner and corporate-network traffic at an explicit ingress boundary.
Select a single WAF-protected ingress pattern by audience: Azure Front Door Premium for globally distributed internet or partner access, or Application Gateway WAF for private and regional entry. Keep the App Service origin private where the approved tier and connectivity model support it.
Mutually selected edge, TLS, WAF and routing control.
Managed portal runtime with deployment slots and health probes.
Private origin and deterministic name resolution where justified.
Certificate and cryptographic material under RBAC control.
TLS termination, WAF inspection, host validation and route allow-listing occur before workload traffic is accepted.
The portal starts authentication but grants no capability until the API validates token audience, issuer and role claims.
Edge request IDs, WAF actions and origin traces are correlated without logging tokens or sensitive payloads.
DNS, certificates, WAF policy and origin routing are reproducible from code in the recovery region.
STAGE 03 / TARGET-STATE DECISION
Authenticate centrally; authorise at every capability.
Turn authenticated identities into bounded application permissions and remove durable secrets from service-to-service communication.
Define environment-specific app registrations, delegated scopes and application roles in Entra ID. APIs enforce authorization locally; workloads use managed identities and RBAC for Azure resources, with Key Vault reserved for credentials that cannot be eliminated.
Token audiences, delegated scopes and application roles.
Secretless workload authentication to supported Azure services.
Least-privilege resource control and eligible administration.
Controlled exception for certificates, keys and external secrets.
Human tokens, workload identities and deployment identities have distinct audiences, permissions and lifecycles.
Every API validates issuer, audience, expiry and required scope; the network location alone never confers trust.
Claims contain identifiers and authorization context, not sensitive business data or unrestricted group inventories.
Identity events and authorization denials are correlated to a pseudonymous subject and operation ID.
STAGE 04 / TARGET-STATE DECISION
Stateless services, bounded capabilities, reversible releases.
Host accessible React experiences and cohesive business services without coupling presentation, workflow and data-platform lifecycles.
Use Azure App Service as the default managed runtime for the portal and cohesive APIs. Keep instances stateless, move long-running work to messaging, and use deployment slots, health checks and feature flags for controlled releases. Introduce another compute platform only for a measured requirement.
Managed web and API runtime, scale-out and deployment slots.
Environment configuration and controlled feature flags.
Runtime retrieval for the small set of unavoidable secrets.
OpenTelemetry traces, dependencies, exceptions and journey health.
The runtime accepts traffic only from the approved ingress or API gateway and uses managed identity for dependencies.
Each service owns its operational data access; the browser never connects directly to SQL, Dataverse or analytics stores.
W3C trace context follows the user journey across portal, API, queue and downstream dependency.
Immutable artifacts, configuration-as-code and stateless instances permit rebuild in a second region.
STAGE 05 / TARGET-STATE DECISION
Contracts isolate change; queues contain failure.
Provide a governed capability boundary for synchronous APIs, durable business workflows and event-driven integration.
Publish versioned APIs through API Management. Use Service Bus for durable commands and integration events, Functions for bounded compute, and Logic Apps Standard for visible orchestration and managed connectors. Every asynchronous operation is idempotent, correlated and replayable.
OAuth enforcement, quotas, versioning, transformation and API analytics.
Durable queues/topics, dead-lettering and workload decoupling.
Event handlers, scheduled jobs and narrowly scoped compute.
Long-running orchestration and governed managed connectors.
Reactive notification for lightweight platform events.
APIM validates OAuth scopes and rate limits at ingress; managed identity authenticates to supported back ends.
Schemas are versioned, payloads are minimized and sensitive fields are excluded from gateway and workflow logs.
Correlation, causation, retry count, queue age and dead-letter reason form one operational narrative.
APIOps/IaC rebuilds the gateway; messaging replication or replay strategy is chosen from the agreed RPO.
STAGE 06 / TARGET-STATE DECISION
Systems of record stay authoritative, not entangled.
Connect Dynamics 365, Dataverse and external operational platforms through owned contracts while preserving system-of-record and data-stewardship boundaries.
Treat Dynamics 365 and Dataverse as governed SaaS capabilities, never as databases to bypass. Encapsulate connectors in integration services, prefer platform events or supported change mechanisms, and reconcile every write path to its accountable record owner.
Customer, service and operational business processes.
Governed business entities, rules, security roles and audit.
Policy-controlled SaaS and line-of-business integration.
Rate isolation, buffering and canonical integration events.
Environment, DLP, capacity and lifecycle governance.
Application users and service principals receive the smallest Dataverse security role and API scope needed.
Connectors are allowed by environment DLP policy; unsupported direct database access is prohibited.
Entity ownership, lawful purpose, retention and source-of-truth rules are explicit before synchronization.
API consumption, platform throttling, reconciliation drift and failed business operations are monitored together.
SaaS backup/restore capabilities, solution exports and downstream replay are tested as one recovery path.
STAGE 07 / TARGET-STATE DECISION
Separate workloads; preserve lineage; prove recovery.
Protect transactional performance while creating a replayable, governed route from source events to trusted analytical products.
Use Azure SQL Database for application-owned operational state and ADLS Gen2 for immutable landing, conformed and curated analytical zones. Orchestrate ingestion with Data Factory, catalogue critical data in Microsoft Purview, and expose data through contracts rather than shared database access.
Resilient operational data with point-in-time recovery and optional geo strategy.
Replayable raw, conformed and curated analytical zones.
Scheduled and event-triggered ingestion with monitored pipelines.
Catalogue, classification, lineage and accountable data ownership.
Private data-plane access and controlled cryptographic material.
Managed identities receive separate read, write and administration roles; analysts never inherit pipeline identities.
Firewalls, private endpoints and DNS contain the data plane, subject to tier and regional validation.
Raw, conformed and curated zones have distinct ownership, retention, quality gates and consumer contracts.
Freshness, completeness, schema drift, reconciliation and lineage are first-class service signals.
Zone redundancy, SQL failover groups or geo-restore, storage replication and tested restore points map to explicit RPO/RTO tiers.
STAGE 08 / TARGET-STATE DECISION
One semantic truth, filtered by identity and purpose.
Place governed, action-led insight inside the operational journey without turning browser filters or workspace membership into a security boundary.
Choose the Power BI embedding model by audience: embed for the organisation for licensed internal users, or app-owns-data with a service principal for external scenarios. Enforce row- and object-level security in semantic models and generate short-lived embed tokens server-side.
Dedicated analytical rendering capacity selected from measured demand.
Governed measures, row-level security and object-level security.
Scoped application identity for app-owns-data embedding.
Utilisation, throttling and user-experience signal.
Portal identity is translated to a permitted semantic role; service-principal permission is never treated as the end-user permission.
Embed tokens are issued server-side, short-lived, minimally scoped and never written to browser or telemetry logs.
RLS/OLS and workspace isolation protect data; client-side JavaScript filters improve UX but are not security controls.
Capacity saturation, render latency, refresh age, RLS denials and report audit events feed service health.
Deployment pipelines, source-controlled model definitions and a data refresh plan recreate the reporting surface.
STAGE 09 / TARGET-STATE DECISION
Policy, telemetry and recovery apply end to end.
Operate the architecture as one business service with preventative guardrails, traceable changes, actionable telemetry and tested recovery.
Place shared policy, security posture, connectivity and observability in platform subscriptions while keeping workload teams accountable for service SLOs and runbooks. Deploy resources and alerts through Bicep, and treat recovery evidence as a release requirement.
Preventative and detective guardrails across subscriptions.
Metrics, logs, traces, SLOs and actionable alert routing.
Cloud security posture and workload protection recommendations.
Optional security analytics and response for the approved SOC model.
Protected recovery points, platform awareness and repeatable rebuild.
Platform operators, workload operators, pipelines and emergency responders have separate eligible roles.
Policy prevents public exposure, weak TLS, unapproved regions and missing diagnostic settings where the workload baseline requires them.
Telemetry has a classification, redaction rule, retention period and cost owner; sensitive payload logging is prohibited.
Golden signals and business-journey SLOs drive alerts; resource health alone is insufficient.
IaC, backups, key access, routing, runbooks and people are exercised together against the declared RTO/RPO.
Use the stage buttons or the arrow keys to follow the architecture. Home and End move to the first and final control boundary.
Cross-cutting boundaries
The stages describe flow; these planes describe containment. A production design should be able to point to the decision and evidence for every one of them.
Separates people, privileged operators, deployment pipelines and managed workload identities.
DecisionTokens and RBAC establish access; network position and application UI state do not.
ProofRole catalogue, sign-in evidence, PIM export and managed-identity coverage.
Contains internet, partner and corporate traffic before it reaches portal or API runtimes.
DecisionOne WAF path, explicit origin isolation and no direct workload bypass.
ProofRoute inventory, WAF tests, DNS evidence and external attack-surface scan.
Separates portal, APIs, workflows, SaaS adapters and data services.
DecisionManaged identity, scoped APIs and private data-plane routes replace implicit network trust.
ProofData-flow diagram, API policy tests and dependency authorization failures.
Protects application and SaaS systems of record from unmanaged analytics and direct coupling.
DecisionWrites pass through an owned capability; change is published through a contract.
ProofSystem-of-record matrix, data contracts and reconciliation controls.
Separates raw, conformed, curated and semantic data products.
DecisionOnly quality-approved, classified and lineage-aware models cross into governed insight.
ProofPurview lineage, data-quality gates and RLS/OLS test results.
Correlates user journey, edge, runtime, API, queue, platform and data health.
DecisionOperation IDs cross components; sensitive payloads and credentials never enter telemetry.
ProofTrace coverage, redaction tests, SLO dashboard and alert-to-runbook drill.
Coordinates regional routing, rebuild, data failover/restore, messaging and human response.
DecisionRecovery tier is set per business flow and proven end to end, not inferred from individual service features.
ProofRecovery dependency map, timed exercise, reconciled data and signed exception log.
Non-functional requirements
Candidate targets are organised around the Azure Well-Architected pillars. They are starting hypotheses, not contractual commitments; workload owners must validate them against business impact, region and selected service tiers.
Baseline status / validate before detailed design| Pillar | Measure | Candidate target | Architecture response | Acceptance evidence |
|---|---|---|---|---|
| Reliability | Availability | Candidate Tier-1 portal/API SLO: 99.9% monthly, measured from an authenticated critical journey. | At least two instances, supported zone-redundant tiers, dependency timeouts and graceful degradation. | Synthetic journey, SLO burn-rate dashboard and dependency-failure test. |
| Reliability | Recovery | Candidate Tier-1 RTO ≤ 4 hours and RPO ≤ 15 minutes; lower tiers documented separately. | IaC rebuild, regional data strategy, replayable messaging and rehearsed decision authority. | Timed failover/restore exercise with data reconciliation and business sign-off. |
| Security | Identity & secrets | 100% of human access under MFA/Conditional Access; managed identity first; no shared production accounts. | PIM, scoped app roles, managed identities, Key Vault exception process and access reviews. | Identity coverage report, secret scan and privileged-access export. |
| Security | Data protection | All critical data classified, encrypted, owner-assigned and access-tested; no sensitive payload telemetry. | Private data plane where justified, RBAC, Purview, RLS/OLS, retention and redaction rules. | Classification/lineage export, authorization tests and telemetry redaction test. |
| Cost optimisation | Cost control | Budget and anomaly alerts in every environment; monthly unit-cost trend per active user or transaction. | Measured service tiers, non-production schedules, retention controls and capacity thresholds. | Cost allocation dashboard, forecast variance and documented tier decisions. |
| Operational excellence | Observability | 100% of Tier-1 journeys correlated; actionable detection within 5 minutes for known critical failure modes. | OpenTelemetry, golden signals, business events, owned alerts and linked runbooks. | Trace-coverage report and game-day alert-to-response timing. |
| Operational excellence | Deployability | All production infrastructure and policy deployed from reviewed code with a tested rollback path. | Bicep modules, policy-as-code, slots/canaries, automated smoke tests and immutable artifacts. | Pipeline evidence, drift report and successful rollback exercise. |
| Performance efficiency | Latency | Candidate p95 API latency < 750 ms for standard reads; portal LCP p75 < 2.5 s on the agreed device/network baseline. | Performance budgets, caching by data sensitivity, asynchronous long work and dependency budgets. | Load test and real-user/synthetic percentile dashboard. |
| Performance efficiency | Elasticity | Sustain 3× forecast peak without data loss; absorb 30 minutes of downstream interruption where queued. | Scale tests, queue-capacity model, backpressure and protected downstream limits. | Burst, soak and recovery-to-steady-state test results. |
| Product quality | Accessibility | WCAG 2.2 AA for critical portal journeys, including keyboard, screen-reader and 200% zoom use. | Accessible component baseline, automated checks and manual assistive-technology testing. | Accessibility conformance report and remediated journey audit. |
Risks & trade-offs
The target state deliberately avoids “maximum Azure” as a design goal. Each control changes cost, operability or user experience; residual risk remains visible after treatment.
A regional target is selected without an agreed RTO/RPO, dependency support or operating model.
Start with zone resilience and tested restore where it meets the objective; add warm standby or active paths only for an evidenced business flow.
Restore-led tiers accept longer regional recovery in exchange for materially lower cost and complexity.
Private endpoints are introduced without DNS ownership, private deployment agents, diagnostics or break-glass access.
Validate service/tier support, define DNS and deployment routes, and prove support access before public access is disabled.
Isolation is stronger, but incident diagnosis and developer onboarding take more engineering discipline.
Queued updates to Dataverse, ERP or analytical stores fail after the originating request is accepted.
Use idempotency, dead-letter ownership, business-level reconciliation, replay tooling and user-visible pending states.
Users may briefly see stale state; the design favours recoverability over distributed transactions.
Client filters are mistaken for authorization, or capacity is purchased before persona concurrency is measured.
Select embedding mode by audience, test RLS/OLS automatically and load-test realistic refresh/concurrency overlap.
Stronger tenant isolation can require more workspaces and deployment/capacity administration.
Verbose payload logging, indefinite retention and duplicate platform logs drive cost while alerts remain noisy.
Define signal purpose, sampling, redaction, retention and owner; review alert precision and unit cost monthly.
Sampling can reduce forensic depth, so security/audit events retain a separate evidence policy.
Every integration selects a new Azure service without a reusable golden path, owner or support model.
Default to the smallest approved pattern, record exceptions in ADRs and fund platform enablement before expansion.
A deliberate default can be less locally optimal but reduces cognitive load and recovery risk across the estate.
Delivery sequence
The sequence establishes the platform guardrails, proves one end-to-end journey, then adds integration, data and resilience. Exit evidence—not elapsed time—moves the architecture forward.
Name critical journeys, owners, data classes, users, constraints and candidate SLO/RTO/RPO targets.
Exit gateScope, decision authority, current-state evidence and measurable NFR hypotheses approved.
Subscriptions, policy, identity, ingress, DNS, private connectivity, logging and deployment identities.
Exit gateA production-like landing zone deploys from code and passes identity, route and policy tests.
Portal → Entra → APIM → application → SQL with traces, alert, rollback and accessible UI.
Exit gateOne end-to-end journey meets candidate latency, security, telemetry and deployment gates.
Service Bus, Functions/Logic Apps and a single business-platform adapter with replay and reconciliation.
Exit gateDependency failure, throttling, poison message and recovery scenarios pass a game day.
Operational change feed → lake zones → curated model → secured embedded report.
Exit gateLineage, freshness, quality, RLS/OLS and capacity evidence satisfy the named data owner.
Load, security, accessibility, failover/restore, cost and operational-readiness validation.
Exit gateService acceptance names support owners, residual risk, recovery evidence and improvement backlog.
Evidence & artifacts
These artifacts keep design, delivery and operations connected. Each has an owner, a refresh trigger and a specific claim it is expected to prove.
Context, options, trade-offs, service/tier validation, decision and review trigger.
Who calls what, data classification, identity, protocol, ownership and failure boundary.
Abuse cases, mitigations, residual risks and their test or policy evidence.
Compatibility, ownership, schema, classification, idempotency and deprecation path.
Azure Policy state, exemptions, privileged roles, public endpoints and secret inventory.
SLO, journey health, capacity, security signal, data freshness, incidents and unit cost.
Actual RTO/RPO, decision timing, restore/failover, key access, routing and reconciliation.
Support model, runbooks, alerts, ownership, licensing, cost, residual risk and rollback.
Design basis
Microsoft guidance informed the service roles and trade-offs. Detailed design still needs subscription, region, SKU, licensing, quota and feature validation at the time of delivery.
This is a logical reference architecture. It is not a promise that every service, private-endpoint option, availability-zone feature or recovery mode exists in every region or tier.
The authoritative delivery record is the approved ADR set plus exported configuration and test evidence. Documentation links are a design input, not production proof.
Architecture principles
Technology choices can evolve. These decision rules keep the architecture coherent as delivery moves from target state to transition and operation.
Identity is the first control plane
APIs isolate business capabilities
Operational and analytical workloads are separated
Monitoring and recovery are designed in, not added later