Skip to content

Commit 94721ac

Browse files
authored
Merge pull request #249467 from MicrosoftDocs/main
Publish to live, Monday 4 AM PST, 8/28
2 parents b2ac5eb + 78acf44 commit 94721ac

File tree

112 files changed

+706
-973
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+706
-973
lines changed

.openpublishing.redirection.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "articles/migrate/tutorial-assess-webapps-physical.md",
5+
"redirect_URL": "tutorial-assess-webapps",
6+
"redirect_document_id": false
7+
},
8+
{
9+
"source_path": "articles/migrate/tutorial-assess-webapps-hyper-v.md",
10+
"redirect_URL": "tutorial-assess-webapps",
11+
"redirect_document_id": false
12+
},
313
{
414
"source_path": "articles/route-server/tutorial-protect-route-server.md",
515
"redirect_URL": "/azure/route-server/tutorial-protect-route-server-ddos",

articles/active-directory/app-provisioning/inbound-provisioning-api-grant-access.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,6 @@ This section describes how you can assign the necessary permissions to a managed
8686
## Next steps
8787
- [Quick start using cURL](inbound-provisioning-api-curl-tutorial.md)
8888
- [Quick start using Postman](inbound-provisioning-api-postman.md)
89-
- [Quick start using Postman](inbound-provisioning-api-graph-explorer.md)
89+
- [Quick start using Graph Explorer](inbound-provisioning-api-graph-explorer.md)
9090
- [Frequently asked questions about API-driven inbound provisioning](inbound-provisioning-api-faqs.md)
9191

articles/active-directory/external-identities/customers/how-to-web-app-node-use-certificate.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ ms.custom: developer, devx-track-js
1919

2020
Azure Active Directory (Azure AD) for customers supports two types of authentication for [confidential client applications](../../../active-directory/develop/msal-client-applications.md); password-based authentication (such as client secret) and certificate-based authentication. For a higher level of security, we recommend using a certificate (instead of a client secret) as a credential in your confidential client applications.
2121

22-
In production, you should purchase a certificate signed by a well-known certificate authority, and use [Azure Key Vault](https://azure.microsoft.com/products/key-vault/) to manage certificate access and lifetime for you. However, for testing purposes, you can create a self-signed certificate and configure your apps to authenticate with it.
22+
In production, you should purchase a certificate signed by a well-known certificate authority, and use [Azure Key Vault](https://azure.microsoft.com/products/key-vault/) to manage certificate access and lifetime for you. However, for testing purposes, you can create a self-signed certificate and configure your apps to authenticate with it.
2323

24-
In this article, you learn to generate a self-signed certificate by using [Azure Key Vault](https://azure.microsoft.com/products/key-vault/) on the Azure portal, OpenSSL or Windows PowerShell.
24+
In this article, you learn to generate a self-signed certificate by using [Azure Key Vault](https://azure.microsoft.com/products/key-vault/) on the Azure portal, OpenSSL or Windows PowerShell. If you have a client secret already, you'll learn how to safely delete it.
2525

2626
When needed, you can also create a self-signed certificate programmatically by using [.NET](/azure/key-vault/certificates/quick-create-net), [Node.js](/azure/key-vault/certificates/quick-create-node), [Go](/azure/key-vault/certificates/quick-create-go), [Python](/azure/key-vault/certificates/quick-create-python) or [Java](/azure/key-vault/certificates/quick-create-java) client libraries.
2727

@@ -88,11 +88,13 @@ After the command finishes execution, you should have a *.crt* and a *.key* file
8888

8989
[!INCLUDE [active-directory-customers-app-integration-add-user-flow](./includes/register-app/add-client-app-certificate.md)]
9090

91+
[!INCLUDE [remove-client-secret](./includes/remove-client-secret.md)]
92+
9193
## Configure your Node.js app to use certificate
9294

9395
Once you associate your app registration with the certificate, you need to update your app code to start using the certificate:
9496

95-
1. Locate the file that contains your MSAL configuration object, such as `msalConfig` in *authConfig.js*, then update it to look similar to the following code:
97+
1. Locate the file that contains your MSAL configuration object, such as `msalConfig` in *authConfig.js*, then update it to look similar to the following code. If you have a client secret present, make sure you remove it:
9698

9799
```javascript
98100
require('dotenv').config();
@@ -124,7 +126,6 @@ Once you associate your app registration with the certificate, you need to updat
124126
auth: {
125127
clientId: process.env.CLIENT_ID || 'Enter_the_Application_Id_Here', // 'Application (client) ID' of app registration in Azure portal - this value is a GUID
126128
authority: process.env.AUTHORITY || `https://${TENANT_SUBDOMAIN}.ciamlogin.com/`,
127-
//clientSecret: process.env.CLIENT_SECRET || 'Enter_the_Client_Secret_Here', // Client secret generated from the app registration in Azure portal
128129
clientCertificate: {
129130
thumbprint: "YOUR_CERT_THUMBPRINT", // replace with thumbprint obtained during step 2 above
130131
privateKey: privateKey
@@ -174,14 +175,13 @@ Once you associate your app registration with the certificate, you need to updat
174175
175176
You can use your existing certificate directly from Azure Key Vault:
176177
177-
1. Locate the file that contains your MSAL configuration object, such as `msalConfig` in *authConfig.js*, then comment the `clientSecret` property:
178+
1. Locate the file that contains your MSAL configuration object, such as `msalConfig` in *authConfig.js*, then remove the `clientSecret` property:
178179
179180
```java
180181
const msalConfig = {
181182
auth: {
182183
clientId: process.env.CLIENT_ID || 'Enter_the_Application_Id_Here', // 'Application (client) ID' of app registration in Azure portal - this value is a GUID
183184
authority: process.env.AUTHORITY || `https://${TENANT_SUBDOMAIN}.ciamlogin.com/`,
184-
//clientSecret: process.env.CLIENT_SECRET || 'Enter_the_Client_Secret_Here', // Client secret generated from the app registration in Azure portal
185185
},
186186
//...
187187
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
author: cilwerner
3+
ms.service: active-directory
4+
ms.subservice: ciam
5+
ms.topic: include
6+
ms.date: 08/28/2023
7+
ms.author: cwerner
8+
---
9+
10+
If you've a client secret already in place for your application, you need to delete it to avoid a malicious application for impersonating your application:
11+
12+
1. Go to the **Client secrets** tab, and select the **Delete** icon.
13+
2. In the pop-up window that appears, select **Yes**.

articles/active-directory/saas-apps/uber-tutorial.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ Complete the following steps to enable Azure AD single sign-on in the Azure port
6969

7070
## Configure Uber SSO
7171

72-
To configure single sign-on on **Uber** side, you need to send the downloaded **Certificate (PEM)** and appropriate copied URLs from Azure portal to [Uber support team](mailto:business-api-[email protected]). They set this setting to have the SAML SSO connection set properly on both sides.
72+
To configure single sign-on on **Uber** side, you need to send the downloaded **Certificate (PEM)** and appropriate copied URLs from Azure portal to [Uber support team](mailto:[email protected]). They set this setting to have the SAML SSO connection set properly on both sides.
7373

7474
### Create Uber test user
7575

76-
In this section, you create a user called Britta Simon in Uber. Work with [Uber support team](mailto:business-api[email protected]) to add the users in the Uber platform. Users must be created and activated before you use single sign-on. Uber also supports automatic user provisioning, you can find more details [here](uber-provisioning-tutorial.md) on how to configure automatic user provisioning.
76+
In this section, you create a user called Britta Simon in Uber. Work with [Uber support team or your Uber POC](mailto:[email protected]) to add the users in the Uber platform. Users must be created and activated before you use single sign-on. Uber also supports automatic user provisioning, you can find more details [here](uber-provisioning-tutorial.md) on how to configure automatic user provisioning.
7777

7878
## Test SSO
7979

articles/ai-services/speech-service/bring-your-own-storage-speech-resource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ General rule is that you need to pass this JSON string as a value of `--storage`
154154

155155
To create a BYOS-enabled Speech resource with a REST Request to Cognitive Services API, we use [Accounts - Create](/rest/api/cognitiveservices/accountmanagement/accounts/create) request.
156156

157-
You need to have a meaning of authentication. The example in this section uses [Microsoft Azure Active Directory token](/azure/active-directory/develop/access-tokens).
157+
You need to have a means of authentication. The example in this section uses [Microsoft Azure Active Directory token](/azure/active-directory/develop/access-tokens).
158158

159159
This code snippet generates Azure AD token using interactive browser sign-in. It requires [Azure Identity client library](/dotnet/api/overview/azure/identity-readme):
160160
```csharp

articles/app-service/environment/networking.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,22 @@ The size of the subnet can affect the scaling limits of the App Service plan ins
2525
>
2626
> Sample calculation:
2727
>
28-
> For each App Service plan instance, you need:
29-
> 5 Windows Container apps = 5 IP addresses
30-
> 1 IP address per App Service plan instance
28+
> For each App Service plan instance, you need:
29+
> 5 Windows Container apps = 5 IP addresses
30+
> 1 IP address per App Service plan instance
3131
> 5 + 1 = 6 IP addresses
3232
>
33-
> For 25 instances:
33+
> For 25 instances:
3434
> 6 x 25 = 150 IP addresses per App Service plan
3535
>
3636
> Since you have 2 App Service plans, 2 x 150 = 300 IP addresses.
3737
3838
If you use a smaller subnet, be aware of the following limitations:
3939

40-
- Any particular subnet has five addresses reserved for management purposes. In addition to the management addresses, App Service Environment dynamically scales the supporting infrastructure, and uses between 4 and 27 addresses, depending on the configuration and load. You can use the remaining addresses for instances in the App Service plan. The minimal size of your subnet is a `/27` address space (32 addresses).
41-
40+
- Any particular subnet has five addresses reserved for management purposes. In addition to the management addresses, App Service Environment dynamically scales the supporting infrastructure, and uses between 7 and 27 addresses, depending on the configuration and load. You can use the remaining addresses for instances in the App Service plan. The minimal size of your subnet is a `/27` address space (32 addresses).
41+
- For any App Service plan OS/SKU combination used in your App Service Environment like I1v2 Windows, one standby instance is created for every 20 active instances. The standby instances also require IP addresses.
42+
- When scaling App Service plans in the App Service Environment up/down, the amount of IP addresses used by the App Service plan is temporarily doubled while the scale operation completes. The new instances need to be fully operational before the existing instances are deprovisioned.
43+
- Platform upgrades need free IP addresses to ensure upgrades can happen without interruptions to outbound traffic. Finally, after scale up, down, or in operations complete, there might be a short period of time before IP addresses are released.
4244
- If you run out of addresses within your subnet, you can be restricted from scaling out your App Service plans in the App Service Environment. Another possibility is that you can experience increased latency during intensive traffic load, if Microsoft isn't able to scale the supporting infrastructure.
4345

4446
## Addresses
@@ -58,11 +60,11 @@ You can find details in the **IP Addresses** portion of the portal, as shown in
5860

5961
![Screenshot that shows details about IP addresses.](./media/networking/networking-ip-addresses.png)
6062

61-
As you scale your App Service plans in your App Service Environment, you'll use more addresses out of your subnet. The number of addresses you use varies, based on the number of App Service plan instances you have, and how much traffic there is. Apps in the App Service Environment don't have dedicated addresses in the subnet. The specific addresses used by an app in the subnet will change over time.
63+
As you scale your App Service plans in your App Service Environment, you use more addresses out of your subnet. The number of addresses you use varies, based on the number of App Service plan instances you have, and how much traffic there is. Apps in the App Service Environment don't have dedicated addresses in the subnet. The specific addresses used by an app in the subnet will change over time.
6264

6365
## Ports and network restrictions
6466

65-
For your app to receive traffic, ensure that inbound network security group (NSG) rules allow the App Service Environment subnet to receive traffic from the required ports. In addition to any ports you'd like to receive traffic on, you should ensure that Azure Load Balancer is able to connect to the subnet on port 80. This port is used for health checks of the internal virtual machine. You can still control port 80 traffic from the virtual network to your subnet.
67+
For your app to receive traffic, ensure that inbound network security group (NSG) rules allow the App Service Environment subnet to receive traffic from the required ports. In addition to any ports, you'd like to receive traffic on, you should ensure that Azure Load Balancer is able to connect to the subnet on port 80. This port is used for health checks of the internal virtual machine. You can still control port 80 traffic from the virtual network to your subnet.
6668

6769
It's a good idea to configure the following inbound NSG rule:
6870

@@ -95,11 +97,11 @@ The normal app access ports inbound are as follows:
9597

9698
You can set route tables without restriction. You can tunnel all of the outbound application traffic from your App Service Environment to an egress firewall device, such as Azure Firewall. In this scenario, the only thing you have to worry about is your application dependencies.
9799

98-
Application dependencies include endpoints that your app needs during runtime. Besides APIs and services the app is calling, dependencies could also be derived endpoints like certificate revocation list (CRL) check endpoints and identity/authentication endpoint, for example Azure Active Directory. If you're using [continuous deployment in App Service](../deploy-continuous-deployment.md), you might also need to allow endpoints depending on type and language. Specifically for [Linux continuous deployment](https://github.com/microsoft/Oryx/blob/main/doc/hosts/appservice.md#network-dependencies), you'll need to allow `oryx-cdn.microsoft.io:443`.
100+
Application dependencies include endpoints that your app needs during runtime. Besides APIs and services the app is calling, dependencies could also be derived endpoints like certificate revocation list (CRL) check endpoints and identity/authentication endpoint, for example Azure Active Directory. If you're using [continuous deployment in App Service](../deploy-continuous-deployment.md), you might also need to allow endpoints depending on type and language. Specifically for [Linux continuous deployment](https://github.com/microsoft/Oryx/blob/main/doc/hosts/appservice.md#network-dependencies), you need to allow `oryx-cdn.microsoft.io:443`.
99101

100102
You can put your web application firewall devices, such as Azure Application Gateway, in front of inbound traffic. Doing so allows you to expose specific apps on that App Service Environment.
101103

102-
Your application will use one of the default outbound addresses for egress traffic to public endpoints. If you want to customize the outbound address of your applications on an App Service Environment, you can add a NAT gateway to your subnet.
104+
Your application uses one of the default outbound addresses for egress traffic to public endpoints. If you want to customize the outbound address of your applications on an App Service Environment, you can add a NAT gateway to your subnet.
103105

104106
> [!NOTE]
105107
> Outbound SMTP connectivity (port 25) is supported for App Service Environment v3. The supportability is determined by a setting on the subscription where the virtual network is deployed. For virtual networks/subnets created before 1. August 2022 you need to initiate a temporary configuration change to the virtual network/subnet for the setting to be synchronized from the subscription. An example could be to add a temporary subnet, associate/dissociate an NSG temporarily or configure a service endpoint temporarily. For more information and troubleshooting, see [Troubleshoot outbound SMTP connectivity problems in Azure](../../virtual-network/troubleshoot-outbound-smtp-connectivity.md).
@@ -119,7 +121,7 @@ For more information about Private Endpoint and Web App, see [Azure Web App Priv
119121

120122
## DNS
121123

122-
The following sections describe the DNS considerations and configuration that apply inbound to and outbound from your App Service Environment. The examples use the domain suffix `appserviceenvironment.net` from Azure Public Cloud. If you're using other clouds like Azure Government, you'll need to use their respective domain suffix.
124+
The following sections describe the DNS considerations and configuration that apply inbound to and outbound from your App Service Environment. The examples use the domain suffix `appserviceenvironment.net` from Azure Public Cloud. If you're using other clouds like Azure Government, you need to use their respective domain suffix.
123125

124126
### DNS configuration to your App Service Environment
125127

@@ -153,7 +155,7 @@ In addition to setting up DNS, you also need to enable it in the [App Service En
153155

154156
### DNS configuration from your App Service Environment
155157

156-
The apps in your App Service Environment will use the DNS that your virtual network is configured with. If you want some apps to use a different DNS server, you can manually set it on a per app basis, with the app settings `WEBSITE_DNS_SERVER` and `WEBSITE_DNS_ALT_SERVER`. `WEBSITE_DNS_ALT_SERVER` configures the secondary DNS server. The secondary DNS server is only used when there's no response from the primary DNS server.
158+
The apps in your App Service Environment uses the DNS that your virtual network is configured with. If you want some apps to use a different DNS server, you can manually set it on a per app basis, with the app settings `WEBSITE_DNS_SERVER` and `WEBSITE_DNS_ALT_SERVER`. `WEBSITE_DNS_ALT_SERVER` configures the secondary DNS server. The secondary DNS server is only used when there's no response from the primary DNS server.
157159

158160
## More resources
159161

0 commit comments

Comments
 (0)