Skip to content

Commit 9d1b1e1

Browse files
committed
Merging changes synced from https://github.com/MicrosoftDocs/azure-docs-pr (branch live)
2 parents 0cfee2f + c434baa commit 9d1b1e1

28 files changed

+316
-83
lines changed

articles/active-directory-b2c/add-api-connector-token-enrichment.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: how-to
11-
ms.date: 08/29/2021
11+
ms.date: 11/09/2021
1212
ms.author: kengaderdus
1313
ms.subservice: B2C
1414
zone_pivot_groups: b2c-policy-type
@@ -248,7 +248,7 @@ After you deploy your REST API, set the metadata of the `REST-GetProfile` techni
248248
- **ServiceUrl**. Set the URL of the REST API endpoint.
249249
- **SendClaimsIn**. Specify how the input claims are sent to the RESTful claims provider.
250250
- **AuthenticationType**. Set the type of authentication being performed by the RESTful claims provider such as `Basic` or `ClientCertificate`
251-
- **AllowInsecureAuthInProduction**. In a production environment, make sure to set this metadata to `false`
251+
- **AllowInsecureAuthInProduction**. In a production environment, make sure to set this metadata to `false`.
252252

253253
See the [RESTful technical profile metadata](restful-technical-profile.md#metadata) for more configurations.
254254

articles/active-directory-b2c/custom-email-mailjet.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: how-to
12-
ms.date: 09/15/2021
12+
ms.date: 11/10/2021
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
1515
zone_pivot_groups: b2c-policy-type
@@ -174,6 +174,8 @@ With a Mailjet account created and the Mailjet API key stored in an Azure AD B2C
174174
1. From the right-top select **Save & Publish**, and then **Yes, publish changes**
175175
1. Record the **Template ID** of template you created for use in a later step. You specify this ID when you [add the claims transformation](#add-the-claims-transformation).
176176

177+
[!INCLUDE [active-directory-b2c-important-for-custom-email-provider](../../includes/active-directory-b2c-important-for-custom-email-provider.md)]
178+
177179
## Add Azure AD B2C claim types
178180

179181
In your policy, add the following claim types to the `<ClaimsSchema>` element within `<BuildingBlocks>`.
@@ -397,7 +399,7 @@ As with the OTP technical profiles, add the following technical profiles to the
397399

398400
## Make a reference to the DisplayControl
399401

400-
In the final step, add a reference to the DisplayControl you created. Replace your existing `LocalAccountSignUpWithLogonEmail` and `LocalAccountDiscoveryUsingEmailAddress` self-asserted technical profiles with the following. If you used an earlier version of Azure AD B2C policy. These technical profiles use `DisplayClaims` with a reference to the DisplayControl..
402+
In the final step, add a reference to the DisplayControl you created. Override your existing `LocalAccountSignUpWithLogonEmail` and `LocalAccountDiscoveryUsingEmailAddress` self-asserted technical profiles that are configured in the base policy with the following XML snippet. If you used an earlier version of Azure AD B2C policy, these technical profiles use `DisplayClaims` with a reference to the `DisplayControl`.
401403

402404
For more information, see [Self-asserted technical profile](restful-technical-profile.md) and [DisplayControl](display-controls.md).
403405

@@ -472,7 +474,7 @@ To localize the email, you must send localized strings to Mailjet, or your email
472474
<!--
473475
<BuildingBlocks> -->
474476
<Localization Enabled="true">
475-
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
477+
<SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
476478
<SupportedLanguage>en</SupportedLanguage>
477479
<SupportedLanguage>es</SupportedLanguage>
478480
</SupportedLanguages>
@@ -567,9 +569,7 @@ The Localization element allows you to support multiple locales or languages in
567569

568570
## Next steps
569571

570-
You can find an example of a custom email verification policy on GitHub:
571-
572-
- [Custom email verification - DisplayControls](https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-email-verifcation-displaycontrol)
572+
- You can find an example of a [Custom email verification - DisplayControls](https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-email-verifcation-displaycontrol/policy/Mailjet) custom policy on GitHub.
573573
- For information about using a custom REST API or any HTTP-based SMTP email provider, see [Define a RESTful technical profile in an Azure AD B2C custom policy](restful-technical-profile.md).
574574

575575
::: zone-end

articles/active-directory-b2c/custom-email-sendgrid.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: how-to
12-
ms.date: 09/15/2021
12+
ms.date: 11/10/2021
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
1515
zone_pivot_groups: b2c-policy-type
@@ -164,6 +164,9 @@ With a SendGrid account created and SendGrid API key stored in an Azure AD B2C p
164164
1. Return to the **Transactional Templates** page by selecting the back arrow.
165165
1. Record the **ID** of template you created for use in a later step. For example, `d-989077fbba9746e89f3f6411f596fb96`. You specify this ID when you [add the claims transformation](#add-the-claims-transformation).
166166

167+
168+
[!INCLUDE [active-directory-b2c-important-for-custom-email-provider](../../includes/active-directory-b2c-important-for-custom-email-provider.md)]
169+
167170
## Add Azure AD B2C claim types
168171

169172
In your policy, add the following claim types to the `<ClaimsSchema>` element within `<BuildingBlocks>`.
@@ -384,7 +387,7 @@ As with the OTP technical profiles, add the following technical profiles to the
384387

385388
## Make a reference to the DisplayControl
386389

387-
In the final step, add a reference to the DisplayControl you created. Replace your existing `LocalAccountSignUpWithLogonEmail` and `LocalAccountDiscoveryUsingEmailAddress` self-asserted technical profiles with the following. If you used an earlier version of Azure AD B2C policy. These technical profiles use `DisplayClaims` with a reference to the DisplayControl.
390+
In the final step, add a reference to the DisplayControl you created. Override your existing `LocalAccountSignUpWithLogonEmail` and `LocalAccountDiscoveryUsingEmailAddress` self-asserted technical profiles that are configured in the base policy with the following XML snippet. If you used an earlier version of Azure AD B2C policy, these technical profiles use `DisplayClaims` with a reference to the `DisplayControl`.
388391

389392
For more information, see [Self-asserted technical profile](restful-technical-profile.md) and [DisplayControl](display-controls.md).
390393

@@ -455,7 +458,7 @@ To localize the email, you must send localized strings to SendGrid, or your emai
455458
<!--
456459
<BuildingBlocks> -->
457460
<Localization Enabled="true">
458-
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
461+
<SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
459462
<SupportedLanguage>en</SupportedLanguage>
460463
<SupportedLanguage>es</SupportedLanguage>
461464
</SupportedLanguages>
@@ -552,9 +555,7 @@ The Localization element allows you to support multiple locales or languages in
552555

553556
## Next steps
554557

555-
You can find an example of a custom email verification policy on GitHub:
556-
557-
- [Custom email verification - DisplayControls](https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-email-verifcation-displaycontrol)
558+
- You can find an example of [Custom email verification - DisplayControls custom policy](https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-email-verifcation-displaycontrol/policy/SendGrid) on GitHub.
558559
- For information about using a custom REST API or any HTTP-based SMTP email provider, see [Define a RESTful technical profile in an Azure AD B2C custom policy](restful-technical-profile.md).
559560

560561
::: zone-end

articles/active-directory-b2c/saml-service-provider.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: how-to
12-
ms.date: 10/05/2021
12+
ms.date: 11/12/2021
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
1515
ms.custom: fasttrack-edit

articles/active-directory/conditional-access/concept-continuous-access-evaluation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ This process enables the scenario where users lose access to organizational file
7373

7474
| | OneDrive web | OneDrive Win32 | OneDrive iOS | OneDrive Android | OneDrive Mac |
7575
| :--- | :---: | :---: | :---: | :---: | :---: |
76-
| **SharePoint Online** | Supported | Supported | Supported | Supported | Supported |
76+
| **SharePoint Online** | Supported | Not Supported | Supported | Supported | Not Supported |
7777

7878
| | Teams web | Teams Win32 | Teams iOS | Teams Android | Teams Mac |
7979
| :--- | :---: | :---: | :---: | :---: | :---: |

articles/active-directory/devices/azuread-joined-devices-frx.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.date: 06/28/2019
1111
ms.author: joflore
1212
author: MicrosoftGuyJFlo
1313
manager: karenhoran
14-
ms.reviewer: jairoc
14+
ms.reviewer: ravenn
1515

1616
#Customer intent: As a user, I want to join my corporate device during a first-run so that I can access my corporate resources
1717

@@ -21,7 +21,7 @@ ms.collection: M365-identity-device-management
2121

2222
With device management in Azure Active Directory (Azure AD), you can ensure that your users are accessing your resources from devices that meet your standards for security and compliance. For more information, see the [introduction to device management in Azure Active Directory](overview.md).
2323

24-
With Windows 10, You can join a new device to Azure AD during the first-run experience (FRX).
24+
With Windows 10, You can join a new device to Azure AD during the first-run out-of-box experience (OOBE).
2525
This enables you to distribute shrink-wrapped devices to your employees or students.
2626

2727
If you have either Windows 10 Professional or Windows 10 Enterprise installed on a device, the experience defaults to the setup process for company-owned devices.
@@ -47,16 +47,16 @@ In addition, if your tenant is federated, your Identity provider MUST support WS
4747
1. When you turn on your new device and start the setup process, you should see the **Getting Ready** message. Follow the prompts to set up your device.
4848
1. Start by customizing your region and language. Then accept the Microsoft Software License Terms.
4949

50-
![Customize for your region](./media/azuread-joined-devices-frx/01.png)
50+
<!--![Customize for your region](./media/azuread-joined-devices-frx/01.png)-->
5151

5252
1. Select the network you want to use for connecting to the Internet.
5353
1. Click **This device belongs to my organization**.
5454

55-
![Who owns this PC screen](./media/azuread-joined-devices-frx/02.png)
55+
<!--![Who owns this PC screen](./media/azuread-joined-devices-frx/02.png)-->
5656

5757
1. Enter the credentials that were provided to you by your organization, and then click **Sign in**.
5858

59-
![Sign-in screen](./media/azuread-joined-devices-frx/03.png)
59+
<!--![Sign-in screen](./media/azuread-joined-devices-frx/03.png)-->
6060

6161
1. Your device locates a matching tenant in Azure AD. If you are in a federated domain, you are redirected to your on-premises Secure Token Service (STS) server, for example, Active Directory Federation Services (AD FS).
6262
1. If you are a user in a non-federated domain, enter your credentials directly on the Azure AD-hosted page.

articles/active-directory/managed-identities-azure-resources/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@
121121
items:
122122
- name: PowerShell
123123
href: how-to-assign-app-role-managed-identity-powershell.md
124+
- name: CLI
125+
href: how-to-assign-app-role-managed-identity-cli.md
124126
- name: View managed identity activity
125127
href: how-to-view-managed-identity-activity.md
126128

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
title: Assign a managed identity to an application role using Azure CLI - Azure AD
3+
description: Step-by-step instructions for assigning a managed identity access to another application's role, using Azure CLI.
4+
services: active-directory
5+
documentationcenter:
6+
author: christoc
7+
manager:
8+
editor:
9+
10+
ms.service: active-directory
11+
ms.subservice: msi
12+
ms.devlang: na
13+
ms.topic: how-to
14+
ms.tgt_pltfrm: na
15+
ms.workload: identity
16+
ms.date: 11/03/2021
17+
ms.author: christoc
18+
ms.collection: M365-identity-device-management
19+
ms.custom: devx-track-azurepowershell
20+
---
21+
22+
# Assign a managed identity access to an application role using Azure CLI
23+
24+
Managed identities for Azure resources provide Azure services with an identity in Azure Active Directory. They work without needing credentials in your code. Azure services use this identity to authenticate to services that support Azure AD authentication. Application roles provide a form of role-based access control, and allow a service to implement authorization rules.
25+
26+
In this article, you learn how to assign a managed identity to an application role exposed by another application using Azure CLI.
27+
28+
## Prerequisites
29+
30+
- If you're unfamiliar with managed identities for Azure resources, check out the [overview section](overview.md). **Be sure to review the [difference between a system-assigned and user-assigned managed identity](overview.md#managed-identity-types)**.
31+
32+
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../../includes/azure-cli-prepare-your-environment-no-header.md)]
33+
34+
## Assign a managed identity access to another application's app role
35+
36+
1. Enable managed identity on an Azure resource, [such as an Azure VM](qs-configure-cli-windows-vm.md).
37+
38+
1. Find the object ID of the managed identity's service principal.
39+
40+
**For a system-assigned managed identity**, you can find the object ID on the Azure portal on the resource's **Identity** page. You can also use the following script to find the object ID. You'll need the resource ID of the resource you created in step 1, which is available in the Azure portal on the resource's **Properties** page.
41+
42+
```azurecli
43+
resourceIdWithManagedIdentity="/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.Compute/virtualMachines/{my virtual machine name}"
44+
45+
oidForMI=$(az resource show --ids $resourceIdWithManagedIdentity --query "identity.principalId" -o tsv | tr -d '[:space:]')
46+
echo "object id for managed identity is: $oidForMI"
47+
```
48+
49+
**For a user-assigned managed identity**, you can find the managed identity's object ID on the Azure portal on the resource's **Overview** page. You can also use the following script to find the object ID. You'll need the resource ID of the user-assigned managed identity.
50+
51+
```azurecli
52+
userManagedIdentityResourceId="/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{my managed identity name}"
53+
54+
oidForMI=$(az resource show --id $userManagedIdentityResourceId --query "properties.principalId" -o tsv | tr -d '[:space:]')
55+
echo "object id for managed identity is: $oidForMI"
56+
```
57+
58+
1. Create a new application registration to represent the service that your managed identity will send a request to. If the API or service that exposes the app role grant to the managed identity already has a service principal in your Azure AD tenant, skip this step.
59+
60+
1. Find the object ID of the service application's service principal. You can find this using the Azure portal. Go to Azure Active Directory and open the **Enterprise applications** page, then find the application and look for the **Object ID**. You can also find the service principal's object ID by its display name using the following script:
61+
62+
```azurecli
63+
appName="{name for your application}"
64+
serverSPOID=$(az ad sp list --filter "displayName eq 'My App'" --query '[0].objectId' -o tsv | tr -d '[:space:]')
65+
echo "object id for server service principal is: $serverSPOID"
66+
```
67+
68+
> [!NOTE]
69+
> Display names for applications are not unique, so you should verify that you obtain the correct application's service principal.
70+
71+
Alternatively you can find the Object ID by the unique Application ID for your application registration:
72+
73+
```azurecli
74+
appID="{application id for your application}"
75+
serverSPOID=$(az ad sp list --filter "appId eq '$appID'" --query '[0].objectId' -o tsv | tr -d '[:space:]')
76+
echo "object id for server service principal is: $serverSPOID"
77+
```
78+
79+
1. Add an [app role](../develop/howto-add-app-roles-in-azure-ad-apps.md) to the application you created in step 3. You can create the role using the Azure portal or using Microsoft Graph. For example, you could add an app role like this:
80+
81+
```json
82+
{
83+
"allowedMemberTypes": [
84+
"Application"
85+
],
86+
"displayName": "Read data from MyApi",
87+
"id": "0566419e-bb95-4d9d-a4f8-ed9a0f147fa6",
88+
"isEnabled": true,
89+
"description": "Allow the application to read data as itself.",
90+
"value": "MyApi.Read.All"
91+
}
92+
```
93+
94+
1. Assign the app role to the managed identity. You'll need the following information to assign the app role:
95+
* `managedIdentityObjectId`: the object ID of the managed identity's service principal, which you found in step 2.
96+
* `serverServicePrincipalObjectId`: the object ID of the server application's service principal, which you found in step 4.
97+
* `appRoleId`: the ID of the app role exposed by the server app, which you generated in step 5 - in the example, the app role ID is `0566419e-bb95-4d9d-a4f8-ed9a0f147fa6`.
98+
99+
Execute the following script to add the role assignment. Note that this functionality is not directly exposed on the Azure CLI and that a REST command is used here instead:
100+
101+
```azurecli
102+
roleguid="0566419e-bb95-4d9d-a4f8-ed9a0f147fa6"
103+
az rest -m POST -u https://graph.microsoft.com/beta/servicePrincipals/$oidForMI/appRoleAssignments -b "{\"principalId\": \"$oidForMI\", \"resourceId\": \"$serverSPOID\",\"appRoleId\": \"$roleguid\"}"
104+
```
105+
106+
## Next steps
107+
108+
- [Managed identity for Azure resources overview](overview.md)
109+
- To enable managed identity on an Azure VM, see [Configure managed identities for Azure resources on an Azure VM using PowerShell](qs-configure-cli-windows-vm.md).

articles/aks/azure-files-volume.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Make a note of the storage account name and key shown at the end of the script o
6060

6161
Kubernetes needs credentials to access the file share created in the previous step. These credentials are stored in a [Kubernetes secret][kubernetes-secret], which is referenced when you create a Kubernetes pod.
6262

63-
Use the `kubectl create secret` command to create the secret. The following example creates a shared named *azure-secret* and populates the *azurestorageaccountname* and *azurestorageaccountkey* from the previous step. To use an existing Azure storage account, provide the account name and key.
63+
Use the `kubectl create secret` command to create the secret. The following example creates a secret named *azure-secret* and populates the *azurestorageaccountname* and *azurestorageaccountkey* from the previous step. To use an existing Azure storage account, provide the account name and key.
6464

6565
```console
6666
kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=$AKS_PERS_STORAGE_ACCOUNT_NAME --from-literal=azurestorageaccountkey=$STORAGE_KEY

0 commit comments

Comments
 (0)