Skip to content

Commit 7628e0f

Browse files
authored
Merge pull request #292590 from MicrosoftDocs/main
Publish to live, Friday 4 AM PST, 1/3
2 parents 3b605b0 + beb5b01 commit 7628e0f

File tree

107 files changed

+853
-342
lines changed

Some content is hidden

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

107 files changed

+853
-342
lines changed

articles/app-service/overview-app-gateway-integration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,10 @@ To work around the default redirect, you can configure authentication to inspect
131131

132132
In multiple-instance deployments, [session affinity](./configure-common.md?tabs=portal#configure-general-settings) ensures that client requests are routed to the same instance for the life of the session. Session affinity can be configured to adapt the cookie domain to the incoming header from reverse proxy. By configuring [session affinity proxy](./configure-common.md?tabs=portal#configure-general-settings) to true, session affinity looks for `X-Original-Host` or `X-Forwarded-Host` and adapt the cookie domain to the domain found in this header. As a recommended practice when enabling session affinity proxy, you should configure your access restrictions on the site to ensure that traffic is coming from your reverse proxy.
133133

134-
You can also configure `sessionAffinityProxyEnabled` by using the following command:
134+
You can also configure `clientAffinityProxyEnabled` by using the following command:
135135

136136
```azurecli-interactive
137-
az resource update --resource-group myRG --name myWebApp --resource-type "Microsoft.Web/sites" --set properties.sessionAffinityProxyEnabled=true
137+
az resource update --resource-group myRG --name myWebApp --resource-type "Microsoft.Web/sites" --set properties.clientAffinityProxyEnabled=true
138138
```
139139

140140
## Next steps

articles/azure-signalr/howto-network-access-control.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ resource signalr 'Microsoft.SignalRService/SignalR@2024-08-01-preview' = {
9191

9292
You can configure rules to allow or deny specified request types for both the public network and each [private endpoint](howto-private-endpoints.md).
9393

94-
For example, [Server Connections](signalr-concept-internals.md#application-server-connections) are typically high-privileged. To enhance security, you may want to restrict their origin. You can configure rules to block all Server Connections from public network, and only allow they originate from a specifiec virtual network.
94+
For example, [Server Connections](signalr-concept-internals.md#application-server-connections) are typically high-privileged. To enhance security, you may want to restrict their origin. You can configure rules to block all Server Connections from public network, and only allow they originate from a specific virtual network.
9595

9696
If no rule matches, the default action is applied.
9797

@@ -114,7 +114,7 @@ If no rule matches, the default action is applied.
114114

115115
### [Configure Request Type Rules via Bicep](#tab/bicep)
116116

117-
The following template denies all requests from the public network except client connections. Additionally, it allows only Server Connections, REST API calls, and Trace calls from a specific private endpoint.
117+
The following template denies all requests from the public network except Client Connections. Additionally, it allows only Server Connections, REST API calls, and Trace calls from a specific private endpoint.
118118

119119
The name of the private endpoint connection can be inspected in the `privateEndpointConnections` sub-resource. It's automatically generated by the system.
120120

@@ -130,8 +130,8 @@ resource signalr 'Microsoft.SignalRService/SignalR@2024-08-01-preview' = {
130130
}
131131
privateEndpoints: [
132132
{
133-
name: 'foo.8e4d6671-8d62-4bb7-8c41-827dde9c1a05'
134-
allow: ['ServerConnection', 'ClientConnection', 'RESTAPI', 'Trace']
133+
name: 'foo.0000aaaa-11bb-cccc-dd22-eeeeee333333'
134+
allow: ['ServerConnection', 'RESTAPI', 'Trace']
135135
}
136136
]
137137
}

articles/azure-signalr/signalr-howto-troubleshoot-guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,8 @@ This issue often occurs when someone establishes a SignalR client connection in
311311
#### Solution
312312

313313
* Remember to close client connection if you use SignalR clients in Azure function or use SignalR client as a singleton.
314-
* Instead of using SignalR clients in Azure function, you can create SignalR clients anywhere else and use [Azure Functions Bindings for Azure SignalR Service](https://github.com/Azure/azure-functions-signalrservice-extension) to [negotiate](https://github.com/Azure/azure-functions-signalrservice-extension/blob/dev/samples/simple-chat/csharp/FunctionApp/Functions.cs#L22) the client to Azure SignalR. And you can also utilize the binding to [send messages](https://github.com/Azure/azure-functions-signalrservice-extension/blob/dev/samples/simple-chat/csharp/FunctionApp/Functions.cs#L40). Samples to negotiate client and send messages can be found [here](https://github.com/Azure/azure-functions-signalrservice-extension/tree/dev/samples). Further information can be found [here](https://github.com/Azure/azure-functions-signalrservice-extension).
315-
* When you use SignalR clients in Azure function, there might be a better architecture to your scenario. Check if you design a proper serverless architecture. You can refer to [Real-time serverless applications with the SignalR Service bindings in Azure Functions](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService).
314+
* Instead of using SignalR clients in Azure function, you can create SignalR clients anywhere else and use [Azure Functions Bindings for Azure SignalR Service](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService) to [negotiate](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService/tests/Samples/BasicNegotiate.cs) the client to Azure SignalR. And you can also utilize the binding to [send messages](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService/tests/Samples/SendMessages.cs). Samples to negotiate client and send messages can be found [here](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService/tests/Samples). Further information can be found [here](signalr-concept-serverless-development-config.md).
315+
* When you use SignalR clients in Azure function, there might be a better architecture to your scenario. Check if you design a proper serverless architecture. You can refer to [Real-time apps with Azure SignalR Service and Azure Functions](signalr-concept-azure-functions.md).
316316

317317
<a name="server_connection_drop"></a>
318318

Lines changed: 173 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,205 @@
11
---
22
title: Manage network access control to an endpoint
33
description: Learn how to control network access to your Azure Web PubSub resource.
4-
author: yjin81
5-
ms.author: yajin1
4+
author: ArchangelSDY
5+
ms.author: dayshen
66
ms.service: azure-web-pubsub
77
ms.topic: how-to
88
ms.date: 08/16/2024
99
---
1010

1111
# Manage network access control
1212

13+
Azure Web PubSub allows you to secure and manage access to your service endpoint based on request types and network subsets. When you configure network access control rules, only applications making requests from the specified networks can access your Azure Web PubSub instance.
14+
1315
You can configure Azure Web PubSub to secure and control the level of access to your service endpoint based on the request type and subset of networks used. When network rules are configured, only applications that request data over the specified set of networks can access your Web PubSub resource.
1416

15-
Azure Web PubSub has a public endpoint that is accessible through the internet. You can also create a [private endpoint for your Web PubSub resource](howto-secure-private-endpoints.md). A private endpoint assigns a private IP address from your virtual network to the Web PubSub resource. It also secures all traffic between your virtual network and the Web PubSub resource over a private link. The Web PubSub network access control provides access control for both a public endpoint and for private endpoints.
17+
:::image type="content" alt-text="Screenshot showing network access control decision flow chart." source="media\howto-secure-network-access-control\network-access-control-decision-flow-chart.png" :::
18+
19+
20+
## Public network access
21+
22+
We offer a single, unified switch to simplify the configuration of public network access. The switch has following options:
23+
24+
* Disabled: Completely blocks public network access. All other network access control rules are ignored for public networks.
25+
* Enabled: Allows public network access, which is further regulated by additional network access control rules.
26+
27+
### [Configure public network access via portal](#tab/azure-portal)
28+
29+
1. Go to the Azure Web PubSub instance you want to secure.
30+
1. Select **Networking** from the left side menu. Select **Public access** tab:
31+
32+
:::image type="content" alt-text="Screenshot showing how to configure public network access." source="media\howto-secure-network-access-control\portal-public-network-access.png" :::
33+
34+
1. Select **Disabled** or **Enabled**.
35+
36+
1. Select **Save** to apply your changes.
37+
38+
### [Configure public network access via bicep](#tab/bicep)
39+
40+
The following template disables public network access:
41+
42+
```bicep
43+
resource webpubsub 'Microsoft.SignalRService/WebPubSub@2024-08-01-preview' = {
44+
name: 'foobar'
45+
location: 'eastus'
46+
properties: {
47+
publicNetworkAccess: 'Disabled'
48+
}
49+
}
50+
```
51+
52+
-----
53+
54+
55+
## Default action
56+
57+
The default action is applied when no other rule matches.
58+
59+
### [Configure default action via portal](#tab/azure-portal)
1660

17-
Optionally, you can choose to allow or deny certain types of requests for a public endpoint and for each private endpoint.
61+
1. Go to the Azure Web PubSub instance you want to secure.
62+
1. Select **Network access control** from the left side menu.
1863

19-
An application that accesses a Web PubSub resource when network access control rules are in effect still requires proper authorization for the request.
64+
:::image type="content" alt-text="Screenshot showing default action on portal." source="media/howto-secure-network-access-control/portal-default-action.png" :::
2065

21-
The next sections describe your two options to control access to your Web PubSub resources:
66+
1. To edit the default action, toggle the **Allow/Deny** button.
67+
1. Select **Save** to apply your changes.
68+
69+
### [Configure default action via bicep](#tab/bicep)
2270

23-
- Deny all requests that originate in a public endpoint.
24-
- Allow only client connections from a public network.
71+
The following template sets the default action to `Deny`.
2572

26-
## Deny all public traffic
73+
```bicep
74+
resource webpubsub 'Microsoft.SignalRService/WebPubSub@2024-08-01-preview' = {
75+
name: 'foobar'
76+
location: 'eastus'
77+
properties: {
78+
networkACLs: {
79+
defaultAction: 'Deny'
80+
}
81+
}
82+
```
2783

28-
To completely deny all public traffic, first configure the public network rule to allow no request type. Then, configure rules that grant access to traffic from specific virtual networks. This configuration enables you to build a secure network boundary for your applications.
84+
-----
2985

30-
## Allow only client connections from a public network
3186

32-
In this scenario, you configure the public network rule to allow only client connections from a public network. You can then configure private network rules to allow other types of requests that originate from a specific virtual network. This configuration hides your app servers on a public network and establishes secure connections between your app servers and Azure Web PubSub.
87+
## Request type rules
3388

34-
## Manage network access control in the Azure portal
89+
You can configure rules to allow or deny specified request types for both the public network and each [private endpoint](howto-secure-private-endpoints.md).
3590

36-
You can manage network access control for Azure Web PubSub by using the Azure portal.
91+
For example, [REST API calls](reference-rest-api-data-plane.md) are typically high-privileged. To enhance security, you may want to restrict their origin. You can configure rules to block all REST API calls from public network, and only allow they originate from a specific virtual network.
3792

38-
1. In the Azure portal, go to the Web PubSub service you want to secure.
93+
If no rule matches, the default action is applied.
3994

40-
1. On the left menu under **Settings**, select **Network access control**.
95+
### [Configure request type rules via portal](#tab/azure-portal)
4196

42-
1. To edit the default action, select **Default action**.
97+
1. Go to the Azure Web PubSub instance you want to secure.
98+
1. Select **Network access control** from the left side menu.
4399

44-
> [!TIP]
45-
> The default action is the action that you take when no access control list (ACL) rules match. For example, if the default action is **Deny**, request types that are not explicitly approved are denied.
100+
:::image type="content" alt-text="Screenshot showing request type rules on portal." source="media/howto-secure-network-access-control/portal-request-type-rules.png" :::
46101

47-
:::image type="content" source="./media/howto-secure-network-access-control/portal-network-access-control.png" alt-text="Screenshot that shows the Network access control pane in the Azure portal.":::
102+
1. To edit public network rule, select allowed types of requests under **Public network**.
48103

49-
1. To edit a public network rule, under **Public network**, select the types of requests that you want to allow.
104+
:::image type="content" alt-text="Screenshot of selecting allowed request types for public network on portal." source="media/howto-secure-network-access-control/portal-public-network.png" :::
50105

51-
:::image type="content" source="./media/howto-secure-network-access-control/portal-public-network.png" alt-text="Screenshot that shows editing a public network access control list in the Azure portal.":::
106+
1. To edit private endpoint network rules, select allowed types of requests in each row under **Private endpoint connections**.
52107

53-
1. To edit private endpoint network rules, under **Private endpoint connections**, select the allowed types of requests in each row.
108+
:::image type="content" alt-text="Screenshot of selecting allowed request types for private endpoints on portal." source="media/howto-secure-network-access-control/portal-private-endpoint.png" :::
54109

55110
1. Select **Save** to apply your changes.
111+
112+
### [Configure request type rules via bicep](#tab/bicep)
113+
114+
The following template denies all requests from the public network except Client Connections. Additionally, it allows only REST API calls, and Trace calls from a specific private endpoint.
115+
116+
The name of the private endpoint connection can be inspected in the `privateEndpointConnections` sub-resource. It's automatically generated by the system.
117+
118+
```bicep
119+
resource webpubsub 'Microsoft.SignalRService/WebPubSub@2024-08-01-preview' = {
120+
name: 'foobar'
121+
location: 'eastus'
122+
properties: {
123+
networkACLs: {
124+
defaultAction: 'Deny'
125+
publicNetwork: {
126+
allow: ['ClientConnection']
127+
}
128+
privateEndpoints: [
129+
{
130+
name: 'foo.0000aaaa-11bb-cccc-dd22-eeeeee333333'
131+
allow: ['RESTAPI', 'Trace']
132+
}
133+
]
134+
}
135+
}
136+
```
137+
138+
-----
139+
140+
141+
## IP rules
142+
143+
IP rules allow you to grant or deny access to specific public internet IP address ranges. These rules can be used to permit access for certain internet-based services and on-premises networks or to block general internet traffic.
144+
145+
The following restrictions apply:
146+
147+
* You can configure up to 30 rules.
148+
* Address ranges must be specified using [CIDR notation](https://tools.ietf.org/html/rfc4632), such as `16.17.18.0/24`. Both IPv4 and IPv6 addresses are supported.
149+
* IP rules are evaluated in the order they are defined. If no rule matches, the default action is applied.
150+
* IP rules apply only to public traffic and cannot block traffic from private endpoints.
151+
152+
### [Configure IP rules via portal](#tab/azure-portal)
153+
154+
1. Go to the Azure Web PubSub instance you want to secure.
155+
1. Select **Networking** from the left side menu. Select **Access control rules** tab:
156+
157+
:::image type="content" alt-text="Screenshot showing how to configure IP rules." source="media\howto-secure-network-access-control\portal-ip-rules.png" :::
158+
159+
1. Edit the list under **IP rules** section.
160+
161+
1. Select **Save** to apply your changes.
162+
163+
### [Configure IP rules via bicep](#tab/bicep)
164+
165+
The following template has these effects:
166+
167+
* Requests from `123.0.0.0/8` and `2603::/8` are allowed.
168+
* Requests from all other IP ranges are denied.
169+
170+
```bicep
171+
resource webpubsub 'Microsoft.SignalRService/WebPubSub@2024-08-01-preview' = {
172+
name: 'foobar'
173+
location: 'eastus'
174+
properties: {
175+
networkACLs: {
176+
defaultAction: 'Deny'
177+
ipRules: [
178+
{
179+
value: '123.0.0.0/8'
180+
action: 'Allow'
181+
}
182+
{
183+
value: '2603::/8'
184+
action: 'Allow'
185+
}
186+
{
187+
value: '0.0.0.0/0'
188+
action: 'Deny'
189+
}
190+
{
191+
value: '::/0'
192+
action: 'Deny'
193+
}
194+
]
195+
}
196+
}
197+
}
198+
```
199+
200+
-----
201+
202+
203+
## Next steps
204+
205+
Learn more about [Azure Private Link](../private-link/private-link-overview.md).
75.9 KB
Loading
76.3 KB
Loading
88.9 KB
Loading
75.4 KB
Loading
61.5 KB
Loading

0 commit comments

Comments
 (0)