Skip to content

Commit 5e46ec9

Browse files
authored
Merge pull request #103466 from MicrosoftDocs/master
2/05 PM Publish
2 parents 35546ce + 0c5ea4a commit 5e46ec9

File tree

72 files changed

+619
-469
lines changed

Some content is hidden

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

72 files changed

+619
-469
lines changed

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

Lines changed: 31 additions & 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: reference
12-
ms.date: 12/18/2019
12+
ms.date: 02/05/2020
1313
ms.author: marsma
1414
ms.subservice: B2C
1515
---
@@ -387,6 +387,36 @@ For more information, see [Self-asserted technical profile](restful-technical-pr
387387
</ClaimsProvider>
388388
```
389389

390+
## [Optional] Localize your email
391+
392+
To localize the email, you must send localized strings to SendGrid, or your email provider. For example to localize the email subject, body, your code message, or signature of the email. To do so, you can use the [GetLocalizedStringsTransformation](string-transformations.md) claims transformation to copy localized strings into claim types. In the `GenerateSendGridRequestBody` claims transformation, which generates the JSON payload, uses input claims that contain the localized strings.
393+
394+
1. In your policy define the following string claims: subject, message, codeIntro and signature.
395+
1. Define a [GetLocalizedStringsTransformation](string-transformations.md) claims transformation to substitute localized string values into the claims from step 1.
396+
1. Change the `GenerateSendGridRequestBody` claims transformation to use input claims with the following XML snippet.
397+
1. Update your SendGrind template to use dynamic parameters in place of all the strings which will be localized by Azure AD B2C.
398+
399+
```XML
400+
<ClaimsTransformation Id="GenerateSendGridRequestBody" TransformationMethod="GenerateJson">
401+
<InputClaims>
402+
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.to.0.email" />
403+
<InputClaim ClaimTypeReferenceId="subject" TransformationClaimType="personalizations.0.dynamic_template_data.subject" />
404+
<InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="personalizations.0.dynamic_template_data.otp" />
405+
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.dynamic_template_data.email" />
406+
<InputClaim ClaimTypeReferenceId="message" TransformationClaimType="personalizations.0.dynamic_template_data.message" />
407+
<InputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="personalizations.0.dynamic_template_data.codeIntro" />
408+
<InputClaim ClaimTypeReferenceId="signature" TransformationClaimType="personalizations.0.dynamic_template_data.signature" />
409+
</InputClaims>
410+
<InputParameters>
411+
<InputParameter Id="template_id" DataType="string" Value="d-1234567890" />
412+
<InputParameter Id="from.email" DataType="string" Value="[email protected]" />
413+
</InputParameters>
414+
<OutputClaims>
415+
<OutputClaim ClaimTypeReferenceId="sendGridReqBody" TransformationClaimType="outputClaim" />
416+
</OutputClaims>
417+
</ClaimsTransformation>
418+
```
419+
390420
## Next steps
391421

392422
You can find an example of a custom email verification policy on GitHub:

articles/active-directory/manage-apps/functions-for-customizing-application-data.md

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.workload: identity
1111
ms.tgt_pltfrm: na
1212
ms.devlang: na
1313
ms.topic: conceptual
14-
ms.date: 07/31/2019
14+
ms.date: 02/05/2020
1515
ms.author: mimart
1616

1717
ms.collection: M365-identity-device-management
@@ -34,7 +34,7 @@ The syntax for Expressions for Attribute Mappings is reminiscent of Visual Basic
3434
* For string constants, if you need a backslash ( \ ) or quotation mark ( " ) in the string, it must be escaped with the backslash ( \ ) symbol. For example: "Company name: \\"Contoso\\""
3535

3636
## List of Functions
37-
[Append](#append) &nbsp;&nbsp;&nbsp;&nbsp; [BitAnd](#bitand) &nbsp;&nbsp;&nbsp;&nbsp; [CBool](#cbool) &nbsp;&nbsp;&nbsp;&nbsp; [Coalesce](#coalesce) &nbsp;&nbsp;&nbsp;&nbsp; [ConvertToBase64](#converttobase64) &nbsp;&nbsp;&nbsp;&nbsp; [ConvertToUTF8Hex](#converttoutf8hex) &nbsp;&nbsp;&nbsp;&nbsp; [Count](#count) &nbsp;&nbsp;&nbsp;&nbsp; [CStr](#cstr) &nbsp;&nbsp;&nbsp;&nbsp; [DateFromNum](#datefromnum) &nbsp;[FormatDateTime](#formatdatetime) &nbsp;&nbsp;&nbsp;&nbsp; [Guid](#guid) &nbsp;&nbsp;&nbsp;&nbsp; [InStr](#instr) &nbsp;&nbsp;&nbsp;&nbsp; [IsNull](#isnull) &nbsp;&nbsp;&nbsp;&nbsp; [IsNullOrEmpty](#isnullorempty) &nbsp;&nbsp;&nbsp;&nbsp; [IsPresent](#ispresent) &nbsp;&nbsp;&nbsp;&nbsp; [IsString](#isstring) &nbsp;&nbsp;&nbsp;&nbsp; [Item](#item) &nbsp;&nbsp;&nbsp;&nbsp; [Join](#join) &nbsp;&nbsp;&nbsp;&nbsp; [Left](#left) &nbsp;&nbsp;&nbsp;&nbsp; [Mid](#mid) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; [NormalizeDiacritics](#normalizediacritics) [Not](#not) &nbsp;&nbsp;&nbsp;&nbsp; [RemoveDuplicates](#removeduplicates) &nbsp;&nbsp;&nbsp;&nbsp; [Replace](#replace) &nbsp;&nbsp;&nbsp;&nbsp; [SelectUniqueValue](#selectuniquevalue)&nbsp;&nbsp;&nbsp;&nbsp; [SingleAppRoleAssignment](#singleapproleassignment)&nbsp;&nbsp;&nbsp;&nbsp; [Split](#split)&nbsp;&nbsp;&nbsp;&nbsp;[StripSpaces](#stripspaces) &nbsp;&nbsp;&nbsp;&nbsp; [Switch](#switch)&nbsp;&nbsp;&nbsp;&nbsp; [ToLower](#tolower)&nbsp;&nbsp;&nbsp;&nbsp; [ToUpper](#toupper)&nbsp;&nbsp;&nbsp;&nbsp; [Word](#word)
37+
[Append](#append) &nbsp;&nbsp;&nbsp;&nbsp; [BitAnd](#bitand) &nbsp;&nbsp;&nbsp;&nbsp; [CBool](#cbool) &nbsp;&nbsp;&nbsp;&nbsp; [Coalesce](#coalesce) &nbsp;&nbsp;&nbsp;&nbsp; [ConvertToBase64](#converttobase64) &nbsp;&nbsp;&nbsp;&nbsp; [ConvertToUTF8Hex](#converttoutf8hex) &nbsp;&nbsp;&nbsp;&nbsp; [Count](#count) &nbsp;&nbsp;&nbsp;&nbsp; [CStr](#cstr) &nbsp;&nbsp;&nbsp;&nbsp; [DateFromNum](#datefromnum) &nbsp;[FormatDateTime](#formatdatetime) &nbsp;&nbsp;&nbsp;&nbsp; [Guid](#guid) &nbsp;&nbsp;&nbsp;&nbsp; [InStr](#instr) &nbsp;&nbsp;&nbsp;&nbsp; [IsNull](#isnull) &nbsp;&nbsp;&nbsp;&nbsp; [IsNullOrEmpty](#isnullorempty) &nbsp;&nbsp;&nbsp;&nbsp; [IsPresent](#ispresent) &nbsp;&nbsp;&nbsp;&nbsp; [IsString](#isstring) &nbsp;&nbsp;&nbsp;&nbsp; [Item](#item) &nbsp;&nbsp;&nbsp;&nbsp; [Join](#join) &nbsp;&nbsp;&nbsp;&nbsp; [Left](#left) &nbsp;&nbsp;&nbsp;&nbsp; [Mid](#mid) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; [NormalizeDiacritics](#normalizediacritics) [Not](#not) &nbsp;&nbsp;&nbsp;&nbsp; [NumFromDate](#numfromdate) &nbsp;&nbsp;&nbsp;&nbsp;[RemoveDuplicates](#removeduplicates) &nbsp;&nbsp;&nbsp;&nbsp; [Replace](#replace) &nbsp;&nbsp;&nbsp;&nbsp; [SelectUniqueValue](#selectuniquevalue)&nbsp;&nbsp;&nbsp;&nbsp; [SingleAppRoleAssignment](#singleapproleassignment)&nbsp;&nbsp;&nbsp;&nbsp; [Split](#split)&nbsp;&nbsp;&nbsp;&nbsp;[StripSpaces](#stripspaces) &nbsp;&nbsp;&nbsp;&nbsp; [Switch](#switch)&nbsp;&nbsp;&nbsp;&nbsp; [ToLower](#tolower)&nbsp;&nbsp;&nbsp;&nbsp; [ToUpper](#toupper)&nbsp;&nbsp;&nbsp;&nbsp; [Word](#word)
3838

3939
---
4040
### Append
@@ -283,7 +283,7 @@ Returns True if the attribute is not present or is an empty string
283283
---
284284
### IsPresent
285285
**Function:**<br>
286-
IsNullOrEmpty(Expression)
286+
IsPresent(Expression)
287287

288288
**Description:**<br>
289289
If the expression evaluates to a string that is not Null and is not empty, then the IsPresent function returns true. The inverse of this function is named IsNullOrEmpty.
@@ -413,6 +413,30 @@ Flips the boolean value of the **source**. If **source** value is "*True*", retu
413413
| --- | --- | --- | --- |
414414
| **source** |Required |Boolean String |Expected **source** values are "True" or "False". |
415415

416+
---
417+
### NumFromDate
418+
**Function:**<br>
419+
NumFromDate(value)
420+
421+
**Description:**<br>
422+
The NumFromDate function converts a DateTime value to Active Directory format that is required to set attributes like [accountExpires](https://docs.microsoft.com/windows/win32/adschema/a-accountexpires). Use this function to convert DateTime values received from cloud HR apps like Workday and SuccessFactors to their equivalent AD representation.
423+
424+
**Parameters:**<br>
425+
426+
| Name | Required/ Repeating | Type | Notes |
427+
| --- | --- | --- | --- |
428+
| **value** |Required | String | Date time string in the supported format. For supported formats, see https://msdn.microsoft.com/library/8kb3ddd4%28v=vs.110%29.aspx. |
429+
430+
**Example:**<br>
431+
* Workday example <br>
432+
Assuming you want to map the attribute *ContractEndDate* from Workday which is in the format *2020-12-31-08:00* to *accountExpires* field in AD, here is how you can use this function and change the timezone offset to match your locale.
433+
`NumFromDate(Join("", FormatDateTime([ContractEndDate], "yyyy-MM-ddzzz", "yyyy-MM-dd"), "T23:59:59-08:00"))`
434+
435+
* SuccessFactors example <br>
436+
Assuming you want to map the attribute *endDate* from SuccessFactors which is in the format *M/d/yyyy hh:mm:ss tt* to *accountExpires* field in AD, here is how you can use this function and change the time zone offset to match your locale.
437+
`NumFromDate(Join("",FormatDateTime([endDate],"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd"),"T23:59:59-08:00"))`
438+
439+
416440
---
417441
### RemoveDuplicates
418442
**Function:**<br>

articles/active-directory/privileged-identity-management/TOC.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
href: azure-ad-custom-roles-configure.md
6868
- name: View audit history
6969
href: pim-how-to-use-audit-log.md
70-
- name: Manage Azure resource roles
70+
- name: Manage Azure roles
7171
items:
7272
- name: Assign roles
7373
href: pim-resource-roles-assign-roles.md
@@ -97,7 +97,7 @@
9797
href: pim-how-to-perform-security-review.md
9898
- name: Complete an access review
9999
href: pim-how-to-complete-review.md
100-
- name: Azure resource roles
100+
- name: Azure roles
101101
items:
102102
- name: Create an access review
103103
href: pim-resource-roles-start-access-review.md
Loading

articles/active-directory/privileged-identity-management/pim-how-to-add-role-to-user.md

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.topic: conceptual
1111
ms.workload: identity
1212
ms.subservice: pim
13-
ms.date: 09/17/2019
13+
ms.date: 01/05/2020
1414
ms.author: curtand
1515
ms.collection: M365-identity-device-management
1616
---
@@ -19,7 +19,7 @@ ms.collection: M365-identity-device-management
1919

2020
With Azure Active Directory (Azure AD), a Global administrator can make **permanent** Azure AD admin role assignments. These role assignments can be created using the [Azure portal](../users-groups-roles/directory-assign-admin-roles.md) or using [PowerShell commands](/powershell/module/azuread#directory_roles).
2121

22-
The Azure AD Privileged Identity Management (PIM) service also allows Privileged Role Administrators to make permanent admin role assignments. Additionally, Privileged Role Administrators can make users **eligible** for Azure AD admin roles. An eligible administrator can activate the role when they need it, and then their permissions expire once they're done.
22+
The Azure AD Privileged Identity Management (PIM) service also allows Privileged role administrators to make permanent admin role assignments. Additionally, Privileged role administrators can make users **eligible** for Azure AD admin roles. An eligible administrator can activate the role when they need it, and then their permissions expire once they're done.
2323

2424
## Determine your version of PIM
2525

@@ -56,19 +56,9 @@ Follow these steps to make a user eligible for an Azure AD admin role.
5656

5757
1. Select a role you want to assign and then click **Select**.
5858

59-
The **Select a member or group** page opens.
59+
1. Select a member to whom you want to assign to the role and then select **Select**.
6060

61-
1. Select a member or group you want to assign to the role and then select **Select**.
62-
63-
![Select a member or group pane](./media/pim-resource-roles-assign-roles/resources-select-member-or-group.png)
64-
65-
The Membership settings pane opens.
66-
67-
1. In the **Assignment type** list, select **Eligible** or **Active**.
68-
69-
![Memberships settings pane](./media/pim-resource-roles-assign-roles/resources-membership-settings-type.png)
70-
71-
Privileged Identity Management for Azure resources provides two distinct assignment types:
61+
1. In the **Assignment type** list on the **Membership settings** pane, select **Eligible** or **Active**.
7262

7363
- **Eligible** assignments require the member of the role to perform an action to use the role. Actions might include performing a multi-factor authentication (MFA) check, providing a business justification, or requesting approval from designated approvers.
7464

@@ -78,14 +68,10 @@ Follow these steps to make a user eligible for an Azure AD admin role.
7868

7969
Depending on the role settings, the check box might not appear or might be unmodifiable.
8070

81-
1. To specify a specific assignment duration, clear the check box and modify the start and/or end date and time boxes.
71+
1. To specify a specific assignment duration, clear the check box and modify the start and/or end date and time boxes. When finished, select **Done**.
8272

8373
![Memberships settings - date and time](./media/pim-resource-roles-assign-roles/resources-membership-settings-date.png)
8474

85-
1. When finished, select **Done**.
86-
87-
![New assignment - Add](./media/pim-resource-roles-assign-roles/resources-new-assignment-add.png)
88-
8975
1. To create the new role assignment, select **Add**. A notification of the status is displayed.
9076

9177
![New assignment - Notification](./media/pim-resource-roles-assign-roles/resources-new-assignment-notification.png)

articles/active-directory/privileged-identity-management/pim-how-to-change-default-settings.md

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.service: active-directory
1111
ms.topic: conceptual
1212
ms.workload: identity
1313
ms.subservice: pim
14-
ms.date: 11/13/2019
14+
ms.date: 02/05/2020
1515
ms.author: curtand
1616
ms.custom: pim
1717
ms.collection: M365-identity-device-management
@@ -38,12 +38,8 @@ Follow the steps in this article to approve or deny requests for Azure AD roles.
3838
Follow these steps to open the settings for an Azure AD role.
3939

4040
1. Sign in to [Azure portal](https://portal.azure.com/) with a user in the [Privileged Role Administrator](../users-groups-roles/directory-assign-admin-roles.md#privileged-role-administrator) role.
41-
42-
1. Open **Azure AD Privileged Identity Management**.
43-
44-
1. Select **Azure AD roles**.
45-
46-
1. Select **Role settings**.
41+
gt
42+
1. Open **Azure AD Privileged Identity Management** &gt; **Azure AD roles** &gt; **Role settings**.
4743

4844
![Role settings page listing Azure resource roles](./media/pim-resource-roles-configure-role-settings/resources-role-settings.png)
4945

@@ -84,7 +80,7 @@ Privileged Identity Management provides optional enforcement of Azure Multi-Fact
8480

8581
### Require Multi-Factor Authentication on active assignment
8682

87-
In some cases, you might want to assign a user or group to a role for a short duration (one day, for example). In this case, the assigned users don't need to request activation. In this scenario, Privileged Identity Management can't enforce multi-factor authentication when the user uses their role assignment because they are already active in the role from the time that it is assigned.
83+
In some cases, you might want to assign a user to a role for a short duration (one day, for example). In this case, the assigned users don't need to request activation. In this scenario, Privileged Identity Management can't enforce multi-factor authentication when the user uses their role assignment because they are already active in the role from the time that it is assigned.
8884

8985
To ensure that the resource administrator fulfilling the assignment is who they say they are, you can enforce multi-factor authentication on active assignment by checking the **Require Multi-Factor Authentication on active assignment** box.
9086

@@ -110,11 +106,11 @@ If you want to require approval to activate a role, follow these steps.
110106

111107
1. Check the **Require approval to activate** check box.
112108

113-
1. Select **Select approvers** to open the **Select a member or group** page.
109+
1. Select **Select approvers**.
114110

115111
![Select a user or group pane to select approvers](./media/pim-resource-roles-configure-role-settings/resources-role-settings-select-approvers.png)
116112

117-
1. Select at least one user or group and then click **Select**. You can add any combination of users and groups. You must select at least one approver. There are no default approvers.
113+
1. Select at least one user and then click **Select**. You must select at least one approver. There are no default approvers.
118114

119115
Your selections will appear in the list of selected approvers.
120116

@@ -203,7 +199,7 @@ If you want to delegate the required approval to activate a role, follow these s
203199

204200
![Azure AD roles - Settings - Require approval](./media/pim-how-to-change-default-settings/pim-directory-roles-settings-require-approval-select-approvers.png)
205201

206-
1. Select one or more approvers in addition to the Privileged role administrator and then click **Select**. You can select users or groups. We recommend that you add at least two approvers. Even if you add yourself as an approver, you can't self-approve a role activation. Your selections will appear in the list of selected approvers.
202+
1. Select one or more approvers in addition to the Privileged role administrator and then click **Select**. We recommend that you add at least two approvers. Even if you add yourself as an approver, you can't self-approve a role activation. Your selections will appear in the list of selected approvers.
207203

208204
1. After you have specified your all your role settings, select **Save** to save your changes.
209205

articles/active-directory/saas-apps/amazon-web-service-tutorial.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ms.subservice: saas-app-tutorial
1313
ms.workload: identity
1414
ms.tgt_pltfrm: na
1515
ms.topic: tutorial
16-
ms.date: 01/16/2020
16+
ms.date: 01/31/2020
1717
ms.author: jeedes
1818

1919
ms.collection: M365-identity-device-management
@@ -62,7 +62,7 @@ To get started, you need the following items:
6262
In this tutorial, you configure and test Azure AD SSO in a test environment.
6363

6464
* Amazon Web Services (AWS) supports **SP and IDP** initiated SSO
65-
* Once you configure the Amazon Web Services (AWS) you can enforce session controls, which protect exfiltration and infiltration of your organization’s sensitive data in real-time. Session controls extend from Conditional Access. [Learn how to enforce session control with Microsoft Cloud App Security](https://docs.microsoft.com/cloud-app-security/proxy-deployment-aad)
65+
* Once you configure Amazon Web Services (AWS) you can enforce Session Control, which protect exfiltration and infiltration of your organization’s sensitive data in real-time. Session Control extend from Conditional Access. [Learn how to enforce session control with Microsoft Cloud App Security](https://docs.microsoft.com/cloud-app-security/proxy-deployment-aad)
6666

6767
> [!NOTE]
6868
> Identifier of this application is a fixed string value so only one instance can be configured in one tenant.
@@ -372,9 +372,9 @@ When you click the Amazon Web Services (AWS) tile in the Access Panel, you shoul
372372

373373
- [Try Amazon Web Services (AWS) with Azure AD](https://aad.portal.azure.com/)
374374

375-
- [What is session control in Microsoft Cloud App Security?](https://docs.microsoft.com/cloud-app-security/protect-aws)
375+
- [What is session control in Microsoft Cloud App Security?](https://docs.microsoft.com/cloud-app-security/proxy-intro-aad)
376376

377-
- [How to protect Amazon Web Services (AWS) with advanced visibility and controls](https://docs.microsoft.com/cloud-app-security/proxy-intro-aad)
377+
- [How to protect Amazon Web Services (AWS) with advanced visibility and controls](https://docs.microsoft.com/cloud-app-security/protect-aws)
378378

379379
[11]: ./media/amazon-web-service-tutorial/ic795031.png
380380
[12]: ./media/amazon-web-service-tutorial/ic795032.png
@@ -394,4 +394,4 @@ When you click the Amazon Web Services (AWS) tile in the Access Panel, you shoul
394394
[38]: ./media/amazon-web-service-tutorial/tutorial_amazonwebservices_createnewaccesskey.png
395395
[39]: ./media/amazon-web-service-tutorial/tutorial_amazonwebservices_provisioning_automatic.png
396396
[40]: ./media/amazon-web-service-tutorial/tutorial_amazonwebservices_provisioning_testconnection.png
397-
[41]: ./media/amazon-web-service-tutorial/tutorial_amazonwebservices_provisioning_on.png
397+
[41]: ./media/amazon-web-service-tutorial/tutorial_amazonwebservices_provisioning_on.png

0 commit comments

Comments
 (0)