Skip to content

Commit faa67d7

Browse files
authored
Merge pull request #227121 from MicrosoftDocs/main
Publish to live, Sunday 4 PM PST, 02/12
2 parents 67cfcf7 + 72479d1 commit faa67d7

21 files changed

+272
-58
lines changed

articles/active-directory/fundamentals/scenario-azure-first-sap-identity-integration.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ms.collection:
1717

1818
# Scenario - Using Azure Active Directory to secure access to SAP platforms and applications
1919

20-
This document provides advice on the technical design and configuration of SAP platforms and applications when using Azure Active Directory as the primary user authentication service.
20+
This document provides advice on the **technical design and configuration** of SAP platforms and applications when using Azure Active Directory as the primary user authentication service. Learn more about the initial setup in [this tutorial](../saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md).
2121

2222
## Terminology used in this guide
2323

@@ -246,7 +246,7 @@ As discussed before, we recommend setting up a trust configuration in BTP toward
246246

247247
![Rolling over SAML Signing Certs](./media/scenario-azure-first-sap-identity-integration/sap-rollover-saml-signing-certs.png)
248248

249-
SAP has example implementations for client certificate notifications with SAP Cloud Platform Integration [here](https://blogs.sap.com/2017/12/06/sap-cloud-platform-integration-automated-notification-of-keystore-entries-reaching-expiry/) and [here](https://blogs.sap.com/2019/03/01/sap-cloud-platform-integration-automated-notification-for-client-certificates-reaching-expiry/). This could be adapted with Azure Integration Services or PowerAutomate. However, they would need to be adapted to work with server certificates. Such approach requires a custom implementation.
249+
SAP has example implementations for [client certificate notifications](https://blogs.sap.com/2017/12/06/sap-cloud-platform-integration-automated-notification-of-keystore-entries-reaching-expiry/) with SAP Cloud Integration and [near-expiry handling](https://blogs.sap.com/2019/03/01/sap-cloud-platform-integration-automated-notification-for-client-certificates-reaching-expiry/). Find another example focusing on the SAP BTP trust store and Azure Key Vault [here](https://blogs.sap.com/2022/12/02/automatic-sap-btp-trust-store-certificate-renewal-with-azure-key-vault-or-how-to-stop-thinking-about-expiry-dates-once-and-for-all/). This could be adapted with Azure Integration Services or PowerAutomate. However, they would need to be adapted to work with server certificates. Such approach requires a custom implementation.
250250

251251
#### Why this recommendation?
252252

@@ -273,3 +273,8 @@ Azure AD B2C doesn't natively support the use of groups to create collections of
273273
Fortunately, Azure AD B2C is highly customizable, so you can configure the SAML tokens it sends to IAS to include any custom information. For various options on supporting authorization claims, see the documentation accompanying the [Azure AD B2C App Roles sample](https://github.com/azure-ad-b2c/api-connector-samples/tree/main/Authorization-AppRoles), but in summary: through its [API Connector](../../active-directory-b2c/api-connectors-overview.md) extensibility mechanism you can optionally still use groups, app roles, or even a custom database to determine what the user is allowed to access.
274274

275275
Regardless of where the authorization information comes from, it can then be emitted as the `Groups` attribute inside the SAML token by configuring that attribute name as the [default partner claim type on the claims schema](../../active-directory-b2c/claimsschema.md#defaultpartnerclaimtypes) or by overriding the [partner claim type on the output claims](../../active-directory-b2c/relyingparty.md#outputclaims). Note however that BTP allows you to [map Role Collections to User Attributes](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/b3fbb1a9232d4cf99967a0b29dd85d4c.html), which means that *any* attribute name can be used for authorization decisions, even if you don't use the `Groups` attribute name.
276+
277+
## Next Steps
278+
279+
- Learn more about the initial setup in [this tutorial](../saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md)
280+
- Discover additional [SAP integration scenarios with Azure AD](../../sap/workloads/integration-get-started.md#azure-ad) and beyond

articles/active-directory/saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ In this tutorial, you'll learn how to integrate SAP Cloud Identity Services with
2121
* Enable your users to be automatically signed-in to SAP Cloud Identity Services with their Azure AD accounts.
2222
* Manage your accounts in one central location - the Azure portal.
2323

24+
> [!TIP]
25+
> Follow the recommendations and best-practice guide "[Using Azure Active Directory to secure access to SAP platforms and applications](../fundamentals/scenario-azure-first-sap-identity-integration.md)" to operationalize the setup.
26+
2427
## Prerequisites
2528

2629
To get started, you need the following items:
@@ -215,3 +218,5 @@ You can also use Microsoft My Apps to test the application in any mode. When you
215218
## Next steps
216219

217220
Once you configure the SAP Cloud Identity Services 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 Defender for Cloud Apps](/cloud-app-security/proxy-deployment-aad).
221+
222+
Consult the [recommendations and best-practice guide](../fundamentals/scenario-azure-first-sap-identity-integration.md) to operationalize the setup.

articles/azure-monitor/alerts/alerts-logic-apps.md

Lines changed: 65 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ title: Customize alert notifications using Logic Apps
33
description: Learn how to create a logic app to process Azure Monitor alerts.
44
author: EdB-MSFT
55
ms.topic: conceptual
6-
ms.date: 09/07/2022
6+
ms.date: 02/09/2023
77
ms.author: edbaynash
88
ms.reviewer: edbaynash
99

1010
# Customer intent: As an administrator I want to create a logic app that is triggered by an alert so that I can send emails or Teams messages when an alert is fired.
11-
1211
---
1312

1413
# Customize alert notifications using Logic Apps
@@ -17,24 +16,28 @@ This article shows you how to create a Logic App and integrate it with an Azure
1716

1817
[Azure Logic Apps](../../logic-apps/logic-apps-overview.md) allows you to build and customize workflows for integration. Use Logic Apps to customize your alert notifications.
1918

20-
+ Customize the alerts email, using your own email subject and body format.
21-
+ Customize the alert metadata by looking up tags for affected resources or fetching a log query search result. For information on how to access the search result rows containing alerts data, see:
22-
+ [Azure Monitor Log Analytics API response format](../logs/api/response-format.md)
23-
+ [Query/management HTTP response](/azure/data-explorer/kusto/api/rest/response)
24-
+ Integrate with external services using existing connectors like Outlook, Microsoft Teams, Slack and PagerDuty, or by configuring the Logic App for your own services.
19+
- Customize the alerts email, using your own email subject and body format.
20+
- Customize the alert metadata by looking up tags for affected resources or fetching a log query search result. For information on how to access the search result rows containing alerts data, see:
21+
- [Azure Monitor Log Analytics API response format](../logs/api/response-format.md)
22+
- [Query/management HTTP response](/azure/data-explorer/kusto/api/rest/response)
23+
- Integrate with external services using existing connectors like Outlook, Microsoft Teams, Slack and PagerDuty, or by configuring the Logic App for your own services.
2524

26-
In this example, we'll use the following steps to create a Logic App that uses the [common alerts schema](./alerts-common-schema.md) to send details from the alert. The example uses the following steps:
25+
In this example, the following steps create a Logic App that uses the [common alerts schema](./alerts-common-schema.md) to send details from the alert. The example uses the following steps:
2726

2827
1. [Create a Logic App](#create-a-logic-app) for sending an email or a Teams post.
2928
1. [Create an alert action group](#create-an-action-group) that triggers the logic app.
3029
1. [Create a rule](#create-a-rule-using-your-action-group) the uses the action group.
30+
3131
## Create a Logic App
3232

33-
1. Create a new Logic app. Set **Logic App name** , select **Consumption Plan type**.
33+
1. In the [portal](https://portal.azure.com/), create a new Logic app. In the **Search** bar at the top of the page, enter "Logic App".
34+
1. On the **Logic App** page, select **+Add**.
35+
1. Select the **Subscription** and **Resource group** for your Logic App.
36+
1. Set **Logic App name**, and select **Consumption Plan type**.
3437
1. Select **Review + create**, then select **Create**.
3538
1. Select **Go to resource** when the deployment is complete.
3639
:::image type="content" source="./media/alerts-logic-apps/create-logic-app.png" alt-text="A screenshot showing the create logic app page.":::
37-
1. On the Logic Apps Designer page, select **When a HTTP request is received**.
40+
1. On the **Logic Apps Designer** page, select **When a HTTP request is received**.
3841
:::image type="content" source="./media/alerts-logic-apps/logic-apps-designer.png" alt-text="A screenshot showing the Logic Apps designer start page.":::
3942

4043
1. Paste the common alert schema into the **Request Body JSON Schema** field from the following JSON:
@@ -105,10 +108,40 @@ In this example, we'll use the following steps to create a Logic App that uses t
105108
}
106109
```
107110

108-
1. Select the **+** icon to insert a new step.
109-
:::image type="content" source="./media/alerts-logic-apps/configure-http-request-received.png" alt-text="A screenshot showing the parameters for the when http request received step.":::
111+
:::image type="content" source="./media/alerts-logic-apps/configure-http-request-received.png" alt-text="A screenshot showing the parameters for the http request received step.":::
112+
113+
1. (Optional). You can customize the alert notification by extracting information about the affected resource on which the alert fired, e.g. the resource’s tags. You can then include those resource tags in the alert payload and use the information in your logical expressions for sending the notifications. To do this, we will:
114+
- Create a variable for the affected resource IDs.
115+
- Split the resource ID into in an array so we can use its various elements (e.g. subscription, resource group).
116+
- Use the Azure Resource Manager connector to read the resource’s metadata.
117+
- Fetch the resource’s tags which can then be used in subsequent steps of the Logic App.
118+
119+
1. Select **+** and **Add an action** to insert a new step.
120+
1. In the **Search** field, search for and select **Initialize variable**.
121+
1. In the **Name** field, enter the name of the variable, such as 'AffectedResources'.
122+
1. In the **Type** field, select **Array**.
123+
1. In the **Value** field, select **Add dynamic Content**. Select the **Expression** tab, and enter this string: `split(triggerBody()?['data']?['essentials']?['alertTargetIDs'][0], '/')`.
124+
125+
:::image type="content" source="./media/alerts-logic-apps/initialize-variable.png" alt-text="A screenshot showing the parameters for the initializing a variable in Logic Apps.":::
126+
127+
1. Select **+** and **Add an action** to insert another step.
128+
1. In the **Search** field, search for and select **Azure Resource Manager**, and then **Read a resource**.
129+
1. Populate the fields of the **Read a resource** action with the array values from the `AffectedResources` variable. In each of the fields, click inside the field, and scroll down to **Enter a custom value**. Select **Add dynamic content**, and then select the **Expression** tab. Enter the strings from this table:
130+
131+
|Field|String value|
132+
|---------|---------|
133+
|Subscription|`variables('AffectedResource')[2]`|
134+
|Resource Group|`variables('AffectedResource')[4]`|
135+
|Resource Provider|`variables('AffectedResource')[6]`|
136+
|Short Resource Id|`concat(variables('AffectedResource')[7], '/', variables('AffectedResource')[8]`)|
137+
|Client Api Version|2021-06-01|
138+
139+
The dynamic content now includes tags from the affected resource. You can use those tags when you configure your notifications as described in the following steps.
110140

111141
1. Send an email or post a Teams message.
142+
1. Select **+** and **Add an action** to insert a new step.
143+
144+
:::image type="content" source="./media/alerts-logic-apps/configure-http-request-received.png" alt-text="A screenshot showing the parameters for the when http request received step.":::
112145

113146
## [Send an email](#tab/send-email)
114147

@@ -119,46 +152,45 @@ In this example, we'll use the following steps to create a Logic App that uses t
119152
1. Sign into Office 365 when prompted to create a connection.
120153
1. Create the email **Body** by entering static text and including content taken from the alert payload by choosing fields from the **Dynamic content** list.
121154
For example:
122-
- Enter *An alert has monitoring condition:* then select **monitorCondition** from the **Dynamic content** list.
123-
- Then enter *Date fired:* and select **firedDateTime** from the **Dynamic content** list.
124-
- Enter *Affected resources:* and select **alterTargetIDs** from the **Dynamic content** list.
125-
155+
- Enter the text: `An alert has been triggered with this monitoring condition:`. Then, select **monitorCondition** from the **Dynamic content** list.
156+
- Enter the text: `Date fired:`. Then, select **firedDateTime** from the **Dynamic content** list.
157+
- Enter the text: `Affected resources:`. Then, select **alertTargetIDs** from the **Dynamic content** list.
158+
126159
1. In the **Subject** field, create the subject text by entering static text and including content taken from the alert payload by choosing fields from the **Dynamic content** list.
127160
For example:
128-
- Enter *Alert:* and select **alertRule** from the **Dynamic content** list.
129-
- Then enter *with severity:* and select **severity** from the **Dynamic content** list.
130-
- Enter *has condition:* and select **monitorCondition** from the **Dynamic content** list.
131-
161+
- Enter the text: `Alert:`. Then, select **alertRule** from the **Dynamic content** list.
162+
- Enter the text: `with severity:`. Then, select **severity** from the **Dynamic content** list.
163+
- Enter the text: `has condition:`. Then, select **monitorCondition** from the **Dynamic content** list.
164+
132165
1. Enter the email address to send the alert to in the **To** field.
133166
1. Select **Save**.
134167

135168
:::image type="content" source="./media/alerts-logic-apps/configure-email.png" alt-text="A screenshot showing the parameters tab for the send email action.":::
136169

137-
You've created a Logic App that will send an email to the specified address, with details from the alert that triggered it.
170+
You've created a Logic App that sends an email to the specified address, with details from the alert that triggered it.
138171

139172
The next step is to create an action group to trigger your Logic App.
140173

141174
## [Post a Teams message](#tab/send-teams-message)
142175

143176
1. In the search field, search for *Microsoft Teams*.
144-
145177
1. Select **Microsoft Teams**
146178
:::image type="content" source="./media/alerts-logic-apps/choose-operation-teams.png" alt-text="A screenshot showing add action page of the logic apps designer with Microsoft Teams selected.":::
147179
1. Select **Post a message in a chat or channel** from the list of actions.
148180
1. Sign into Teams when prompted to create a connection.
149-
1. Select *User* from the **Post as** dropdown.
150-
1. Select *Group chat* from the **Post in** dropdown.
181+
1. Select **User** from the **Post as** dropdown.
182+
1. Select **Group chat** from the **Post in** dropdown.
151183
1. Select your group from the **Group chat** dropdown.
152-
1. Create the message text in the **Message** field by entering static text and including content taken from the alert payload by choosing fields from the **Dynamic content** list.
184+
1. Create the message text in the **Message** field by entering static text and including content taken from the alert payload by choosing fields from the **Dynamic content** list.
153185
For example:
154-
- Enter *Alert:* then select **alertRule** from the **Dynamic content** list.
155-
- Enter *with severity:* and select **severity** from the **Dynamic content** list.
156-
- Enter *was fired at:* and select **firedDateTime** from the **Dynamic content** list.
157-
- Add more fields according to your requirements.
186+
1. Enter `Alert:` then select **alertRule** from the **Dynamic content** list.
187+
1. Enter `with severity:` and select **severity** from the **Dynamic content** list.
188+
1. Enter `was fired at:` and select **firedDateTime** from the **Dynamic content** list.
189+
1. Add more fields according to your requirements.
158190
1. Select **Save**
159191
:::image type="content" source="./media/alerts-logic-apps/configure-teams-message.png" alt-text="A screenshot showing the parameters tab for the post a message in a chat or channel action.":::
160192

161-
You've created a Logic App that will send a Teams message to the specified group, with details from the alert that triggered it.
193+
You've created a Logic App that sends a Teams message to the specified group, with details from the alert that triggered it.
162194

163195
The next step is to create an action group to trigger your Logic App.
164196

@@ -177,7 +209,7 @@ To trigger your Logic app, create an action group, then create an alert that use
177209
:::image type="content" source="./media/alerts-logic-apps/create-action-group.png" alt-text="A screenshot showing the actions tab of a create action group page.":::
178210
1. In the **Actions** tab under **Action type**, select **Logic App**.
179211
1. In the **Logic App** section, select your logic app from the dropdown.
180-
1. Set **Enable common alert schema** to *Yes*. If you select *No*, the alert type will determine which alert schema is used. For more information about alert schemas, see [Context specific alert schemas](./alerts-non-common-schema-definitions.md).
212+
1. Set **Enable common alert schema** to *Yes*. If you select *No*, the alert type determines which alert schema is used. For more information about alert schemas, see [Context specific alert schemas](./alerts-non-common-schema-definitions.md).
181213
1. Select **OK**.
182214
1. Enter a name in the **Name** field.
183215
1. Select **Review + create**, the **Create**.
@@ -193,9 +225,9 @@ To trigger your Logic app, create an action group, then create an alert that use
193225

194226
:::image type="content" source="./media/alerts-logic-apps/test-action-group2.png" alt-text="A screenshot showing an action group details test page.":::
195227

196-
The following email will be sent to the specified account:
228+
The following email is sent to the specified account:
197229

198-
:::image type="content" source="./media/alerts-logic-apps/sample-output-email.png" alt-text="A screenshot showing an sample email sent by the test page.":::
230+
:::image type="content" source="./media/alerts-logic-apps/sample-output-email.png" alt-text="A screenshot showing a sample email sent by the test page.":::
199231

200232

201233
## Create a rule using your action group
49.4 KB
Loading

articles/azure-monitor/autoscale/autoscale-overview.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,16 @@ Set up schedule-based rules to trigger scale events. Use schedule-based rules wh
7575

7676
### Rules
7777

78-
Rules define the conditions needed to trigger a scale event, the direction of the scaling, and the amount to scale by. Rules can be:
78+
Rules define the conditions needed to trigger a scale event, the direction of the scaling, and the amount to scale by. Combine multiple rules using different metrics, for example CPU usage and queue length. Define up to 10 rules per profile.
79+
80+
Rules can be:
7981

8082
* Metric-based
8183
Trigger based on a metric value, for example when CPU usage is above 50%.
8284
* Time-based
8385
Trigger based on a schedule, for example, every Saturday at 8am.
8486

85-
You can combine multiple rules using different metrics, for example CPU usage and queue length.
87+
8688
Autoscale scales out if *any* of the rules are met, whereas autoscale scales in only if *all* the rules are met.
8789
In terms of logic operators, the OR operator is used when scaling out with multiple rules. The AND operator is used when scaling in with multiple rules.
8890

0 commit comments

Comments
 (0)