You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit cf87465
Browse filesBrowse the repository at this point in the historyBrowse files
@@ -54,7 +67,7 @@ Use a **dedicated nonproduction tenant and subscription** for your first deploym
54
67
55
68
| Requirement | What to prepare |
56
69
|---|---|
57
-
| Provider | An offer from a provider in **Security Store**, with the required SMS or voice route, account/sender registration, and provider onboarding completed. Confirm the provider is supported by the guided setup. |
70
+
| Provider | An offer from [Microsoft Security Store](https://securitystore.microsoft.com/private-solutions), with the required SMS or voice route, account/sender registration, and EPP account access. Guided setup supports Telesign and Soprano only. |
58
71
| Workstation | Windows with PowerShell 7+ and Azure CLI 2.60.0+ for FC1 or 2.48.1+ for EP1 on `PATH`. Certificates are issued inside Key Vault, not the local certificate store. End-to-end setup from Linux or Azure Cloud Shell has not been validated. |
59
72
| Network access | Access to GitHub, Azure, Microsoft Graph, and Key Vault. FC1 publication and EP1 Python builds also require access to the Function's SCM endpoint. |
60
73
| Azure permissions | An Azure user account permitted to deploy at subscription scope, register required resource providers, and create scoped role assignments. |
@@ -72,11 +85,17 @@ deploying. If Azure reports `SubscriptionIsOverQuotaForSku`, follow the
The customer-designated **onboarding owner** coordinates the Azure operator, tenant/policy
89
+
administrator, provider administrator, and Microsoft support. This repository does not supply
90
+
a named contact. If the offer or required feature/test procedure is unavailable, follow the
91
+
[access gate](docs/ONBOARDING.md#before-purchasing-or-deploying), not a workaround that weakens authentication.
92
+
75
93
## Onboard your endpoint
76
94
77
95
### 1. Set up your provider and application
78
96
79
-
In **Security Store > Provider offers**, purchase an offer and complete the provider's account,
97
+
In [Microsoft Security Store](https://securitystore.microsoft.com/private-solutions), review the
98
+
provider offer, then purchase and complete the provider's account,
80
99
sender, and channel onboarding. Confirm that the provider supports the required SMS or voice route.
81
100
Purchasing the offer does not deploy the Function.
82
101
@@ -97,11 +116,17 @@ Have the following values ready before running setup:
97
116
| Subscription ID | Selects the Azure subscription where resources will be deployed. |
98
117
| Application client ID | Identifies the dedicated endpoint app you just registered. |
99
118
| Azure region | Places this deployment in one region. |
100
-
| Channel and provider scope | Selects SMS or voice and the provider's Global or EU route. Provider scope is separate from the Azure region. |
101
-
| Language | Selects one of the equivalent Function implementations below. |
119
+
| Channel and provider scope | Selects one SMS or voice route and the provider's Global or EU label. This is separate from Azure region and is not a data-residency guarantee. |
120
+
| Language | Selects one Function implementation below. The HTTP contract is shared; caching and telemetry differ by runtime. |
102
121
| Service plan | Selects Flex Consumption FC1 or Premium EP1. Required explicitly for unattended setup. |
103
122
| Resource prefix | Use 2-8 lowercase letters or digits, starting with a letter, such as `contoso`. Setup adds resource-specific names and a suffix. |
104
123
124
+
Use the [central values table](docs/ONBOARDING.md#values-and-ownership) for exact portal locations,
125
+
parameter names, client-ID versus Object-ID distinctions, and settings setup creates automatically.
126
+
For a second independent channel/provider endpoint, use a new prefix and dedicated app.
127
+
Changing channel/provider/region with the same subscription/app/prefix is a reconfiguration,
128
+
not an additional deployment; see [deployment separation](docs/ONBOARDING.md#inputs-you-supply-to-setup).
129
+
105
130
### 2. Deploy the endpoint
106
131
107
132
No repository clone is needed. Download [Setup-Epp.ps1](setup/Setup-Epp.ps1), inspect it, then run it
@@ -149,6 +174,9 @@ consent, and prerequisite-installation prompts are separate from deployment appr
149
174
150
175
#### What successful setup produces
151
176
177
+
**Setup has already deployed the code and Azure settings.** Skip local configuration and manual
178
+
ZIP publication unless you are developing a custom implementation.
179
+
152
180
- A dedicated resource group, selected Linux FC1 or EP1 plan, Function App, and storage account.
153
181
- Key Vault and the encryption certificate/key configuration.
154
182
- Managed identities, scoped role assignments, and Easy Auth caller restrictions.
@@ -161,7 +189,8 @@ an authentication error**; it is the endpoint's caller-authentication gate.
161
189
Save the public certificate and timestamped deployment summary from `epp-output` beside the
162
190
downloaded script, or your selected output directory. Confirm the tenant, application client ID,
163
191
endpoint URL, and encryption key ID with your EPP onboarding owner. Private keys are not included
164
-
in the summary.
192
+
in the summary. Use the [summary field guide](setup/docs/README.md#read-the-deployment-summary)
193
+
to locate the vault, Function, telemetry resources, and version information.
165
194
166
195
The encryption certificate is issued inside Key Vault; setup downloads only the public certificate.
167
196
The Function is pinned to a specific private-key secret version. Certificate renewal and the
@@ -180,15 +209,19 @@ action depends on the authentication method supported by its integration:
180
209
181
210
| Authentication method | Required action |
182
211
|---|---|
183
-
| API key or token | Store the required credentials and any matching account/customer identifier in Key Vault using the integration's documented secret names. Confirm the Function identity has Key Vault Secrets User access. |
184
-
| OAuth with managed identity | Complete the provider's consent/application-role onboarding for the existing multitenant application. Setup configures the supported outbound managed-identity federation, but does not grant access to the provider API. |
212
+
|Telesign API key | Enter `telesign-api-key`and `telesign-customer-id`in the setup-created vault using the [safe portal steps](docs/ONBOARDING.md#telesign-enter-and-verify-the-two-vault-secrets). Setup already grants the Function system identity Key Vault Secrets User. |
213
+
|Soprano OAuth | Complete the [provider-admin handoff](docs/ONBOARDING.md#soprano-provider-administrator-handoff)for the existing multitenant application. Setup configures the outbound federation, but does not grant access in the provider tenant. |
185
214
186
215
Replace any test provider values before live validation. Never put API keys in source code or local
187
216
settings. See [provider authentication](docs/ONBOARDING.md#provider-credential-names) for details.
188
217
189
218
#### Validate before activation
190
219
191
-
Use the supported EPP test procedure with your onboarding owner. Validate the deployed endpoint,
220
+
Arrange Microsoft's approved EPP test procedure with your onboarding owner. This repository has
221
+
offline tests, **not a self-service authorized caller/token tool**. A normal customer CLI token
222
+
cannot impersonate the allowlisted Microsoft caller. See the
223
+
[test handoff, negative check, and evidence checklist](docs/ONBOARDING.md#validate-the-deployed-endpoint).
224
+
If the authorized procedure is unavailable, stop before activation. Validate the deployed endpoint,
192
225
not just a locally running Function.
193
226
194
227
| Check | Expected result |
@@ -198,9 +231,10 @@ not just a locally running Function.
198
231
| Controlled live test | The provider accepts the selected SMS or voice request and the test recipient receives the message or call. Provider acceptance alone is not proof of delivery. |
199
232
| Operational visibility | Review Application Insights for the request outcome without recording phone numbers, message bodies, tokens, private keys, or nonce values in shared logs. |
200
233
201
-
Configured workers can acquire and refresh provider credentials in the background without sending
202
-
an OTP, even while evaluation requests run. Check for `credential_refresh_failed` warnings before
203
-
live testing; an evaluation success does not validate provider credentials.
234
+
Configured workers can acquire credentials at startup without sending an OTP; JavaScript/Python
235
+
also poll for refresh, whereas .NET retrieves replacements on cache misses. Check collected
236
+
`credential_refresh_failed` warnings before live testing; an evaluation success or absence of
237
+
warnings does not validate provider credentials.
204
238
205
239
Stop and resolve failed checks before changing the authentication policy. A successful package
206
240
deployment is not evidence that provider credentials, caller authentication, or handset delivery work.
@@ -218,6 +252,8 @@ method policy using the endpoint URL and application client ID from the deployme
218
252
**Setup does not activate policy.** If the supported policy fields are unavailable, stop and obtain
219
253
the supported procedure from Microsoft rather than guessing an update. Policy backup and rollback
220
254
remain administrator-owned; deleting Azure resources does not roll back policy.
255
+
Public Graph SMS/voice resource documentation does not document the EPP `url`/`appId` fields;
256
+
this is an assisted product-specific step, not a public PATCH example.
221
257
222
258
Follow the [validation and activation procedure](setup/docs/README.md#step-3---manually-validate-and-activate-policy)
223
259
before using the endpoint.
@@ -229,7 +265,13 @@ before using the endpoint.
229
265
-[ ] Unauthorized callers are rejected and authorized evaluation succeeds without delivery.
230
266
-[ ] A controlled live test confirms both provider acceptance and recipient delivery.
231
267
-[ ] An administrator has backed up, activated, and read back the selected authentication policy.
232
-
-[ ] The owner has retained the deployment summary and documented the manual rollback procedure.
268
+
-[ ] Request/log ingestion is verified for the chosen runtime, and alert notifications are tested.
269
+
-[ ] Credential and certificate-renewal owners, expiry reminders, and retention/cost controls are assigned.
270
+
-[ ] The owner has retained the deployment summary and documented [rollback and teardown](setup/docs/README.md#rollback-and-decommissioning).
271
+
272
+
Setup creates Application Insights and a workspace, **not alerts, action groups, availability
273
+
tests, or certificate contacts**. Complete the [monitoring setup](docs/MONITORING.md#5-set-up-notifications-and-alert-rules)
274
+
and [certificate lifecycle](setup/docs/README.md#encryption-certificate-lifecycle) steps manually.
233
275
234
276
For setup failures, start with the [troubleshooting guide](setup/docs/Troubleshooting.md). For
235
277
application behavior or configuration details, use the technical documentation below.
@@ -241,5 +283,6 @@ application behavior or configuration details, use the technical documentation b
241
283
-[Optional manual Azure Front Door onboarding](docs/FRONTDOOR.md) - regional setup, readiness, security, and test results. No deployment script is provided.
242
284
-[Setup guide](setup/docs/README.md) - permissions, deployment prompts, validation, and manual rollback.
243
285
-[Technical reference](TECHNICAL.md) - configuration, packages, provider behavior, and security.
244
-
-[Detailed configuration and validation](docs/ONBOARDING.md) - local development and deployment checks.
0 commit comments