Skip to content

Commit 98fcf5b

Browse files
Hou Chi ChanCopilot
andcommitted
docs: add optional manual Front Door onboarding and failover findings
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent a108d3d commit 98fcf5b

11 files changed

Lines changed: 339 additions & 5 deletions

File tree

‎README.md‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ by SMS or voice. Start here to onboard **one deployment in one Azure region**.
66
For implementation details, configuration, packaging, and security behavior, see the
77
[technical reference](TECHNICAL.md).
88

9+
## Deployment options
10+
11+
| Option | Onboarding |
12+
|---|---|
13+
| Single region | Follow the guided steps below; `Setup-Epp.ps1` deploys one endpoint. |
14+
| Multiple regions behind Azure Front Door | Follow the [optional manual guide](docs/FRONTDOOR.md). No Front Door setup script is provided; a separately implemented readiness endpoint and coordinated regional configuration are required. |
15+
916
## What you will set up
1017

1118
You will connect a provider account to a dedicated Azure Function endpoint, validate SMS or voice
@@ -37,8 +44,9 @@ return **401 or 403**; neither is a successful evaluation.
3744
Choose a region with available Linux Premium EP1 capacity and sufficient quota in your subscription.
3845

3946
Application Insights provides operational telemetry. Provider API keys stay in Key Vault; supported
40-
OAuth integrations use managed identity. This guide covers only the single-region topology shown
41-
above. Multi-region deployment, failover, and resiliency guidance are deferred.
47+
OAuth integrations use managed identity. The guided steps below cover the single-region topology
48+
shown above. For one public URL backed by multiple regional origins, see the
49+
[manual Front Door option](docs/FRONTDOOR.md), including its observed transition failures.
4250

4351
## Before you start
4452

@@ -222,6 +230,7 @@ application behavior or configuration details, use the technical documentation b
222230

223231
## More documentation
224232

233+
- [Optional manual Azure Front Door onboarding](docs/FRONTDOOR.md) - regional origins, readiness, security, validation, and failover limitations; no automation supplied.
225234
- [Setup guide](setup/docs/README.md) - permissions, deployment prompts, validation, and manual rollback.
226235
- [Technical reference](TECHNICAL.md) - configuration, packages, provider behavior, and security.
227236
- [Detailed configuration and validation](docs/ONBOARDING.md) - local development and deployment checks.

‎TECHNICAL.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
For the single-region customer deployment flow, start with the
44
[main onboarding guide](README.md).
55

6+
Azure Front Door is an [optional manual multi-region design](docs/FRONTDOOR.md), not a feature
7+
enabled by the single-region setup script. Its additional readiness endpoint is not shipped in
8+
the release packages, and regional failover does not change the SendOtp contract.
9+
610
A provider-agnostic **OTP-delivery Azure Function** sample, implemented across multiple languages.
711
Each language folder is a self-contained implementation of the **same design and the same
812
[contract](docs/CONTRACT.md)**: one engine, drop-in provider adapters, env-provisioned config, and
@@ -273,6 +277,7 @@ authentication; [separate deployed security checks](docs/ONBOARDING.md#4-package
273277

274278
- **[README.md](README.md)**: single-region customer onboarding.
275279
- **[docs/ONBOARDING.md](docs/ONBOARDING.md)**: detailed configuration, security, deployment, and validation.
280+
- **[docs/FRONTDOOR.md](docs/FRONTDOOR.md)**: optional manual multi-region onboarding and observed failover limitations.
276281
- **[docs/CONTRACT.md](docs/CONTRACT.md)**: the language-agnostic contract every implementation follows.
277282
- **[Application logs](docs/CONTRACT.md#application-logs)**: separate service events, per-request summaries,
278283
and the meaning of Microsoft, Function and provider identifier fields.

‎docs/CONTRACT.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ The design selects one provider per deployment. The HTTP Function owns the reque
1111
API-specific credentials, paths, headers, payloads, response rules, outcomes and safe failure
1212
classifications remain inside each provider implementation.
1313

14+
An [optional manual Front Door topology](FRONTDOOR.md) can route this same API to regional origins.
15+
It does not change caller authentication, JWE validation, nonce semantics, or provider selection,
16+
and it does not add automatic provider failover or delivery deduplication. Any readiness endpoint
17+
is separate from this contract and must not deliver OTPs.
18+
1419
---
1520

1621
## 1. HTTP API

‎docs/FRONTDOOR.md‎

Lines changed: 281 additions & 0 deletions
Large diffs are not rendered by default.

‎docs/ONBOARDING.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ Provider (EPP) Function. Choose one language:
66
[JavaScript](../javascript/README.md), [Python](../python/README.md), or [.NET](../dotnet/README.md).
77
Use [CONTRACT.md](CONTRACT.md) for the full request contract and production limitations.
88

9+
For a single public URL backed by multiple regions, see the
10+
[optional manual Front Door guide](FRONTDOOR.md). That option requires customer-managed readiness,
11+
shared-key coordination, origin restrictions, and separate validation; this onboarding flow does
12+
not automate it.
13+
914
1. **Purchase a provider offer from Security Store.**
1015

1116
Open **Security Store > Provider offers**, purchase an offer, and activate the provider account.
230 KB
Loading

‎dotnet/README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ selected provider per deployment. Target: .NET 8 isolated worker, Azure Function
55

66
## Setup and deployment
77

8+
For multiple regional origins behind one URL, see [manual Front Door onboarding](../docs/FRONTDOOR.md).
9+
No Front Door deployment script or readiness handler is supplied. The reported multi-region trials
10+
used JavaScript; validate an equivalent .NET readiness implementation and deployment separately.
11+
812
1. Follow [customer onboarding](../docs/ONBOARDING.md). Set `EPP_PROVIDER_NAME` to the selected
913
adapter's `Name` (`<adapter-id>` is only a placeholder).
1014
2. Consult the selected adapter in [Src/Providers/](Src/Providers/) for required credentials and

‎javascript/README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ each provider owns its credentials, wire request, response interpretation, outco
77

88
## Setup
99

10+
For multiple regional origins behind one URL, see [manual Front Door onboarding](../docs/FRONTDOOR.md).
11+
The JavaScript evaluation trials used a separate readiness handler; it is not included in this
12+
sample's release package. No Front Door deployment script is supplied.
13+
1014
1. Follow [customer onboarding](../docs/ONBOARDING.md). Choose a bundled provider and set
1115
`EPP_PROVIDER_NAME` to its fixed id; `<provider-id>` is a placeholder, not a default.
1216
2. Consult the selected implementation in [src/functions/providers/](src/functions/providers/)

‎python/README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ provider per deployment. Target: Python 3.11, Azure Functions v4, Python v2 prog
55

66
## Setup and deployment
77

8+
For multiple regional origins behind one URL, see [manual Front Door onboarding](../docs/FRONTDOOR.md).
9+
No Front Door deployment script or readiness handler is supplied. The reported multi-region trials
10+
used JavaScript; validate an equivalent Python readiness implementation and deployment separately.
11+
812
1. Follow [customer onboarding](../docs/ONBOARDING.md). Set `EPP_PROVIDER_NAME` to the selected
913
adapter's registered manifest id (`<adapter-id>` is only a placeholder).
1014
2. Consult the selected adapter and its manifest in [src/providers/](src/providers/) for required

‎setup/docs/README.md‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ The customer does not clone this repository or download Bicep/support scripts se
77
`Setup-Epp.ps1` retrieves those files and the selected provider's JSON from GitHub.
88

99
This guide deploys **one Function endpoint in one Azure region**. It does not provision Azure
10-
Front Door or a second region. A successful single-region deployment or encrypted evaluation
11-
does not establish cross-region failover or recovery; Front Door onboarding is deferred until
12-
that validation is complete.
10+
Front Door or a second region. For the optional multi-region design, use the
11+
[manual Front Door onboarding guide](../../docs/FRONTDOOR.md). No Front Door setup script is
12+
provided. Do not rerun this single-region flow as a substitute for shared-key and multi-origin
13+
coordination. A successful deployment or evaluation does not prove live delivery or seamless failover.
1314

1415
## Availability
1516

0 commit comments

Comments
 (0)