Skip to content

Commit d0ce998

Browse files
authored
Merge pull request #230404 from MicrosoftDocs/main
Publish to live, Monday 4 AM PST, 3/13
2 parents c922140 + 406a6bb commit d0ce998

File tree

34 files changed

+282
-126
lines changed

34 files changed

+282
-126
lines changed

articles/active-directory/develop/custom-claims-provider-overview.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.workload: identity
1212
ms.topic: conceptual
13-
ms.date: 03/06/2023
13+
ms.date: 03/13/2023
1414
ms.author: davidmu
1515
ms.reviewer: JasSuri
1616
ms.custom: aaddev
@@ -24,6 +24,9 @@ When a user authenticates to an application, a custom claims provider can be use
2424

2525
Key data about a user is often stored in systems external to Azure AD. For example, secondary email, billing tier, or sensitive information. Some applications may rely on these attributes for the application to function as designed. For example, the application may block access to certain features based on a claim in the token.
2626

27+
The following short video provides an excellent overview of the Azure AD custom extensions and custom claims providers:
28+
> [!VIDEO https://www.youtube.com/embed/BYOMshjlwbc]
29+
2730
Use a custom claims provider for the following scenarios:
2831

2932
- **Migration of legacy systems** - You may have legacy identity systems such as Active Directory Federation Services (AD FS) or data stores (such as LDAP directory) that hold information about users. You'd like to migrate these applications, but can't fully migrate the identity data into Azure AD. Your apps may depend on certain information on the token, and can't be rearchitected.

articles/active-directory/develop/custom-extension-get-started.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.topic: how-to
1212
ms.workload: identity
13-
ms.date: 03/06/2023
13+
ms.date: 03/13/2023
1414
ms.author: davidmu
1515
ms.custom: aaddev
1616
ms.reviewer: JasSuri
@@ -21,7 +21,9 @@ ms.reviewer: JasSuri
2121

2222
This article describes how to configure and setup a custom claims provider with the [token issuance start event](custom-claims-provider-overview.md#token-issuance-start-event-listener) type. This event is triggered right before the token is issued, and allows you to call a REST API to add claims to the token.
2323

24-
This how-to guide demonstrates the token issuance start event with a REST API running in Azure Functions and a sample OpenID Connect application.
24+
This how-to guide demonstrates the token issuance start event with a REST API running in Azure Functions and a sample OpenID Connect application. Before you start, take a look at following video, which demonstrates how to configure Azure AD custom claims provider with Function App:
25+
26+
> [!VIDEO https://www.youtube.com/embed/r-JEsMBJ7GE]
2527
2628
## Prerequisites
2729

@@ -488,7 +490,7 @@ To protect your Azure function, follow these steps to integrate Azure AD authent
488490
> [!NOTE]
489491
> If the Azure function app is hosted in a different Azure tenant than the tenant in which your custom extension is registered, skip to [using OpenID Connect identity provider](#51-using-openid-connect-identity-provider) step.
490492

491-
1. In the [Azure portal](https://poral.azure.com), navigate and select the function app you previously published.
493+
1. In the [Azure portal](https://portal.azure.com), navigate and select the function app you previously published.
492494
1. Select **Authentication** in the menu on the left.
493495
1. Select **Add Identity provider**.
494496
1. Select **Microsoft** as the identity provider.
@@ -503,7 +505,7 @@ To protect your Azure function, follow these steps to integrate Azure AD authent
503505

504506
If you configured the [Microsoft identity provider](#step-5-protect-your-azure-function), skip this step. Otherwise, if the Azure Function is hosted under a different tenant than the tenant in which your custom extension is registered, follow these steps to protect your function:
505507

506-
1. In the [Azure portal](https://poral.azure.com), navigate and select the function app you previously published.
508+
1. In the [Azure portal](https://portal.azure.com), navigate and select the function app you previously published.
507509
1. Select **Authentication** in the menu on the left.
508510
1. Select **Add Identity provider**.
509511
1. Select **OpenID Connect** as the identity provider.

articles/azure-resource-manager/bicep/decompile.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
title: Decompile ARM template JSON to Bicep
33
description: Describes commands for decompiling Azure Resource Manager templates to Bicep files.
44
ms.topic: conceptual
5-
ms.date: 11/11/2022
5+
ms.date: 03/03/2023
6+
ms.custom: devx-track-azurepowershell
67
---
78

89
# Decompiling ARM template JSON to Bicep
@@ -11,6 +12,8 @@ This article describes how to decompile Azure Resource Manager templates (ARM te
1112

1213
> [!NOTE]
1314
> From Visual Studio Code, you can directly create resource declarations by importing from existing resources. For more information, see [Bicep commands](./visual-studio-code.md#bicep-commands).
15+
>
16+
> Visual Studio Code enables you to paste JSON as Bicep. It automatically runs the decompile command. For more information, see [Paste JSON as Bicep](./visual-studio-code.md#paste-as-bicep-preview).
1417
1518
Decompiling an ARM template helps you get started with Bicep development. If you have a library of ARM templates and want to use Bicep for future development, you can decompile them to Bicep. However, the Bicep file might need revisions to implement best practices for Bicep.
1619

269 KB
Loading

articles/azure-resource-manager/bicep/migrate.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Describes the recommended workflow when migrating Azure resources a
44
author: joshuawaddell
55
ms.author: jowaddel
66
ms.topic: conceptual
7-
ms.date: 11/11/2022
7+
ms.date: 03/03/2023
88
---
99
# Migrate to Bicep
1010

@@ -32,6 +32,8 @@ The convert phase consists of two steps, which you complete in sequence:
3232

3333
> [!NOTE]
3434
> You can import a resource by opening the Visual Studio Code command palette. Use <kbd>Ctrl+Shift+P</kbd> on Windows and Linux and <kbd>⌘+Shift+P</kbd> on macOS.
35+
>
36+
> Visual Studio Code enables you to paste JSON as Bicep. For more information, see [Paste JSON as Bicep](./visual-studio-code.md#paste-as-bicep-preview).
3537
3638
## Phase 2: Migrate
3739

@@ -43,7 +45,7 @@ The migrate phase consists of three steps, which you complete in sequence:
4345

4446
1. **Copy each resource from your decompiled template.** Copy each resource individually from the converted Bicep file to the new Bicep file. This process helps you resolve any issues on a per-resource basis and to avoid any confusion as your template grows in size.
4547

46-
1. **Identify and recreate any missing resources.** Not all Azure resource types can be exported through the Azure portal, Azure CLI, or Azure PowerShell. For example, virtual machine extensions such as the DependencyAgentWindows and MMAExtension (Microsoft Monitoring Agent) aren't supported resource types for export. For any resource that wasn't exported, such as virtual machine extensions, you'll need to recreate those resources in your new Bicep file. You can recreate resources using a variety of tools and approaches, including [Azure Resource Explorer](../templates/export-template-portal.md?azure-portal=true), the [Bicep and ARM template reference documentation](/azure/templates/?azure-portal=true), and the [Azure Quickstart Templates](https://azure.microsoft.com/resources/templates?azure-portal=true) site.
48+
1. **Identify and recreate any missing resources.** Not all Azure resource types can be exported through the Azure portal, Azure CLI, or Azure PowerShell. For example, virtual machine extensions such as the DependencyAgentWindows and MMAExtension (Microsoft Monitoring Agent) aren't supported resource types for export. For any resource that wasn't exported, such as virtual machine extensions, you need to recreate those resources in your new Bicep file. You can recreate resources using various tools and approaches, including [Azure Resource Explorer](../templates/export-template-portal.md?azure-portal=true), the [Bicep and ARM template reference documentation](/azure/templates/?azure-portal=true), and the [Azure Quickstart Templates](https://azure.microsoft.com/resources/templates?azure-portal=true) site.
4749

4850
## Phase 3: Refactor
4951

@@ -55,7 +57,7 @@ The deploy phase consists of eight steps, which you complete in any order:
5557

5658
1. **Review the linter suggestions in your new Bicep file.** When you use the [Bicep extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep&azure-portal=true) to create Bicep files, the [Bicep linter](linter.md) runs automatically and highlights suggestions and errors in your code. Many of the suggestions and errors include an option to apply a quick fix of the issue. Review these recommendations and adjust your Bicep file.
5759

58-
1. **Revise parameters, variables, and symbolic names.** It's possible the names of parameters, variables, and symbolic names generated by the decompiler won't match your standard naming convention. Review the generated names and make adjustments as necessary.
60+
1. **Revise parameters, variables, and symbolic names.** It's possible the names of parameters, variables, and symbolic names generated by the decompiler don't match your standard naming convention. Review the generated names and make adjustments as necessary.
5961

6062
1. **Simplify expressions.** The decompile process may not always take advantage of some of Bicep's features. Review any expressions generated in the conversion and simplify them. For example, the decompiled template may include a `concat()` or `format()` function that could be simplified by using [string interpolation](bicep-functions-string.md#concat). Review any suggestions from the linter and make adjustments as necessary.
6163

@@ -86,13 +88,13 @@ In the _deploy_ phase of migrating your resources to Bicep, the goal is to deplo
8688

8789
The deploy phase consists of four steps, which you complete in sequence:
8890

89-
1. **Prepare a rollback plan.** The ability to recover from a failed deployment is crucial. Create a rollback strategy in the event that any breaking changes are introduced into your environments. Take inventory of the types of resources that are deployed, such as virtual machines, web apps, and databases. Each resource's data plane should be considered as well. Do you have a way to recover a virtual machine and its data? Do you have a way to recover a database after deletion? A well-developed rollback plan will help to keep your downtime to a minimum if any issues arise from a deployment.
91+
1. **Prepare a rollback plan.** The ability to recover from a failed deployment is crucial. Create a rollback strategy if any breaking changes are introduced into your environments. Take inventory of the types of resources that are deployed, such as virtual machines, web apps, and databases. Each resource's data plane should be considered as well. Do you have a way to recover a virtual machine and its data? Do you have a way to recover a database after deletion? A well-developed rollback plan helps to keep your downtime to a minimum if any issues arise from a deployment.
9092

9193
1. **Run the what-if operation against production.** Before deploying your final Bicep file to production, run the what-if operation against your production environment, making sure to use production parameter values, and consider documenting the results.
9294

9395
1. **Deploy manually.** If you're going to use the converted template in a pipeline, such as [Azure DevOps](add-template-to-azure-pipelines.md) or [GitHub Actions](deploy-github-actions.md), consider running the deployment from your local machine first. It's preferable to test the template's functionality before incorporating it into your production pipeline. That way, you can respond quickly if there's a problem.
9496

95-
1. **Run smoke tests.** After your deployment is complete, you should run a series of *smoke tests* to ensure that your application or workload is working properly. For example, test to see if your web app is accessible through normal access channels, such as the public Internet or across a corporate VPN. For databases, attempt to make a database connection and execute a series of queries. With virtual machines, log in to the virtual machine and make sure that all services are up and running.
97+
1. **Run smoke tests.** After your deployment is complete, you should run a series of *smoke tests* to ensure that your application or workload is working properly. For example, test to see if your web app is accessible through normal access channels, such as the public Internet or across a corporate VPN. For databases, attempt to make a database connection and execute a series of queries. With virtual machines, sign in to the virtual machine and make sure that all services are up and running.
9698

9799
## Next steps
98100

articles/azure-resource-manager/bicep/visual-studio-code.md

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Create Bicep files by using Visual Studio Code
33
description: Describes how to create Bicep files by using Visual Studio Code
44
ms.topic: conceptual
5-
ms.date: 02/21/2023
5+
ms.date: 03/03/2023
66
---
77

88
# Create Bicep files by using Visual Studio Code
@@ -17,7 +17,7 @@ To set up your environment for Bicep development, see [Install Bicep tools](inst
1717

1818
Visual Studio Code comes with several Bicep commands.
1919

20-
Open or create a Bicep file in VS Code, select the **View** menu and then select **Command Palette**. You can also use the key combination **[CTRL]+[SHIFT]+P** to bring up the command palette. Type **Bicep** to list the Bicep commands.
20+
Open or create a Bicep file in VS Code, select the **View** menu and then select **Command Palette**. You can also use **F1** or the key combination <kbd>Ctrl+Shift+P</kbd> to bring up the command palette. Type **Bicep** to list the Bicep commands.
2121

2222
:::image type="content" source="./media/visual-studio-code/visual-studio-code-bicep-commands.png" alt-text="Screenshot of Visual Studio Code Bicep commands in the command palette.":::
2323

@@ -53,7 +53,7 @@ The [Bicep configuration file (bicepconfig.json)](./bicep-config.md) can be used
5353
To create a Bicep configuration file:
5454

5555
1. Open Visual Studio Code.
56-
1. From the **View** menu, select **Command Palette** (or press **[CTRL/CMD]**+**[SHIFT]**+**P**), and then select **Bicep: Create Bicep Configuration File**.
56+
1. From the **View** menu, select **Command Palette** (or press <kbd>Ctrl/Cmd+Shift+P</kbd>), and then select **Bicep: Create Bicep Configuration File**.
5757
1. Select the file directory where you want to place the file.
5858
1. Save the configuration file when you're done.
5959

@@ -124,6 +124,80 @@ From Visual Studio Code, you can easily open the template reference for the reso
124124

125125
:::image type="content" source="./media/visual-studio-code/visual-studio-code-bicep-view-type-document.png" alt-text="Screenshot of Visual Studio Code Bicep view type document.":::
126126

127+
## Paste as Bicep (Preview)
128+
129+
You can paste a JSON snippet from an ARM template to Bicep file. Visual Studio Code automatically decompiles the JSON to Bicep. This feature is only available with the Bicep extension version 0.14.0 or newer.
130+
131+
To enable the feature:
132+
133+
1. In Visual Studio Code, select **Manage** (gear icon) in the side menu. Select **Settings**. You can also use <kbd>Ctrl+,</kbd> to open settings.
134+
1. Expand **Extensions** and then select **Bicep**.
135+
1. Select **Decompile on Paste**.
136+
137+
:::image type="content" source="./media/visual-studio-code/enable-paste-json.png" alt-text="Screenshot of Visual Studio Code Paste as Bicep.":::
138+
139+
By using this feature, you can paste:
140+
141+
- Full ARM JSON templates.
142+
- Single resource or multiple resources.
143+
- JSON values, such as objects, arrays, and strings. A string with double-quotes is converted to single-quotes.
144+
145+
For example, you can start with the following Bicep file:
146+
147+
```bicep
148+
@description('Storage Account type')
149+
@allowed([
150+
'Standard_LRS'
151+
'Standard_GRS'
152+
'Standard_ZRS'
153+
'Premium_LRS'
154+
])
155+
param storageAccountsku string = 'Standard_LRS'
156+
157+
@description('Location for all resources.')
158+
param location string = resourceGroup().location
159+
160+
var storageAccountName = '${uniqueString(resourceGroup().id)}storage'
161+
162+
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = {
163+
name: storageAccountName
164+
location: location
165+
sku: {
166+
name: storageAccountsku
167+
}
168+
kind: 'StorageV2'
169+
tags: {
170+
ObjectName: storageAccountName
171+
}
172+
properties: {}
173+
}
174+
175+
output storageAccountName string = storageAccountName
176+
```
177+
178+
And, paste the following JSON:
179+
180+
```json
181+
{
182+
"type": "Microsoft.Batch/batchAccounts",
183+
"apiVersion": "2021-06-01",
184+
"name": "[parameters('batchAccountName')]",
185+
"location": "[parameters('location')]",
186+
"tags": {
187+
"ObjectName": "[parameters('batchAccountName')]"
188+
},
189+
"properties": {
190+
"autoStorage": {
191+
"storageAccountId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
192+
}
193+
}
194+
}
195+
```
196+
197+
Visual Studio Code automatically converts the JSON to Bicep. Notice that you also need to add the parameter named `batchAccountName`.
198+
199+
You can undo the decompilation by using <kbd>Ctrl+Z</kbd>. The original JSON appears in the file.
200+
127201
## Next steps
128202

129203
To walk through a quickstart, see [Quickstart: Create Bicep files with Visual Studio Code](./quickstart-create-bicep-use-visual-studio-code.md).

articles/azure-resource-manager/management/move-limitations/networking-move-limitations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ To move a peered virtual network, you must first disable the virtual network pee
3333

3434
## VPN Gateways
3535

36-
You cannot move VPN Gateways across subscriptions if they are of Basic SKU. Basic SKU is only meant for test environment usage and doesn't support resource move operation.
36+
You cannot move VPN Gateways across resource groups or subscriptions if they are of Basic SKU. Basic SKU is only meant for test environment usage and doesn't support resource move operation.
3737

3838
## Subnet links
3939

articles/azure-resource-manager/management/move-support-resources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1348,7 +1348,7 @@ Before starting your move operation, review the [checklist](./move-resource-grou
13481348
> | trafficmanagerprofiles / heatmaps | No | No | No |
13491349
> | trafficmanagerusermetricskeys | No | No | No |
13501350
> | virtualhubs | No | No | No |
1351-
> | virtualnetworkgateways | **Yes** | **Yes** - see [Networking move guidance](./move-limitations/networking-move-limitations.md) | No |
1351+
> | virtualnetworkgateways | **Yes** except Basic SKU - see [Networking move guidance](./move-limitations/networking-move-limitations.md)| **Yes** except Basic SKU - see [Networking move guidance](./move-limitations/networking-move-limitations.md) | No |
13521352
> | virtualnetworks | **Yes** | **Yes** | No |
13531353
> | virtualnetworktaps | No | No | No |
13541354
> | virtualrouters | **Yes** | **Yes** | No |

articles/azure-web-pubsub/includes/cli-awps-connstr.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ ms.date: 08/06/2021
66
ms.author: lianwei
77
---
88

9-
> [!Important]
9+
> [!IMPORTANT]
1010
> A connection string includes the authorization information required for your application to access Azure Web PubSub service. The access key inside the connection string is similar to a root password for your service. In production environments, always be careful to protect your access keys. Use Azure Key Vault to manage and rotate your keys securely. Avoid distributing access keys to other users, hard-coding them, or saving them anywhere in plain text that is accessible to others. Rotate your keys if you believe they may have been compromised.
1111
12-
Use the Azure CLI [az webpubsub key](/cli/azure/webpubsub#az-webpubsub-key) command to get the **ConnectionString** of the service.
12+
Use the Azure CLI [az webpubsub key](/cli/azure/webpubsub#az-webpubsub-key) command to get the **ConnectionString** of the service. Replace the `<your-unique-resource-name>` placeholder with the name of your Azure Web PubSub instance.
1313

14-
```azurecli-interactive
15-
$connection-string=(az webpubsub key show --name "<your-unique-resource-name>" --resource-group "myResourceGroup" --query primaryConnectionString)
14+
```azurecli
15+
az webpubsub key show --resource-group myResourceGroup --name <your-unique-resource-name> --query primaryConnectionString --output tsv
1616
```
17+
18+
Copy the connection string to use later.

articles/azure-web-pubsub/includes/cli-awps-creation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Use the Azure CLI [az webpubsub create](/cli/azure/webpubsub#az-webpubsub-create
1717
> [!Important]
1818
> Each Web PubSub resource must have a unique name. Replace &lt;your-unique-resource-name&gt; with the name of your Web PubSub in the following examples.
1919
20-
```azurecli-interactive
20+
```azurecli
2121
az webpubsub create --name "<your-unique-resource-name>" --resource-group "myResourceGroup" --location "EastUS" --sku Free_F1
2222
```
2323

0 commit comments

Comments
 (0)