You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/active-directory/fundamentals/scenario-azure-first-sap-identity-integration.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ ms.collection:
17
17
18
18
# Scenario - Using Azure Active Directory to secure access to SAP platforms and applications
19
19
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).
21
21
22
22
## Terminology used in this guide
23
23
@@ -246,7 +246,7 @@ As discussed before, we recommend setting up a trust configuration in BTP toward
246
246
247
247

248
248
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.
250
250
251
251
#### Why this recommendation?
252
252
@@ -273,3 +273,8 @@ Azure AD B2C doesn't natively support the use of groups to create collections of
273
273
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.
274
274
275
275
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
Copy file name to clipboardExpand all lines: articles/active-directory/saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,9 @@ In this tutorial, you'll learn how to integrate SAP Cloud Identity Services with
21
21
* Enable your users to be automatically signed-in to SAP Cloud Identity Services with their Azure AD accounts.
22
22
* Manage your accounts in one central location - the Azure portal.
23
23
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
+
24
27
## Prerequisites
25
28
26
29
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
215
218
## Next steps
216
219
217
220
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.
description: Learn how to create a logic app to process Azure Monitor alerts.
4
4
author: EdB-MSFT
5
5
ms.topic: conceptual
6
-
ms.date: 09/07/2022
6
+
ms.date: 02/09/2023
7
7
ms.author: edbaynash
8
8
ms.reviewer: edbaynash
9
9
10
10
# 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
-
12
11
---
13
12
14
13
# 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
17
16
18
17
[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.
19
18
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)
+ 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)
- Integrate with external services using existing connectors like Outlook, Microsoft Teams, Slack and PagerDuty, or by configuring the Logic App for your own services.
25
24
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:
27
26
28
27
1.[Create a Logic App](#create-a-logic-app) for sending an email or a Teams post.
29
28
1.[Create an alert action group](#create-an-action-group) that triggers the logic app.
30
29
1.[Create a rule](#create-a-rule-using-your-action-group) the uses the action group.
30
+
31
31
## Create a Logic App
32
32
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**.
34
37
1. Select **Review + create**, then select **Create**.
35
38
1. Select **Go to resource** when the deployment is complete.
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
105
108
}
106
109
```
107
110
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:
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.
110
140
111
141
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.":::
112
145
113
146
## [Send an email](#tab/send-email)
114
147
@@ -119,46 +152,45 @@ In this example, we'll use the following steps to create a Logic App that uses t
119
152
1. Sign into Office 365 when prompted to create a connection.
120
153
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.
121
154
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
+
126
159
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.
127
160
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
+
132
165
1. Enter the email address to send the alert to in the **To** field.
133
166
1. Select **Save**.
134
167
135
168
:::image type="content" source="./media/alerts-logic-apps/configure-email.png" alt-text="A screenshot showing the parameters tab for the send email action.":::
136
169
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.
138
171
139
172
The next step is to create an action group to trigger your Logic App.
140
173
141
174
## [Post a Teams message](#tab/send-teams-message)
142
175
143
176
1. In the search field, search for *Microsoft Teams*.
144
-
145
177
1. Select **Microsoft Teams**
146
178
:::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.":::
147
179
1. Select **Post a message in a chat or channel** from the list of actions.
148
180
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.
151
183
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.
153
185
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.
158
190
1. Select **Save**
159
191
:::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.":::
160
192
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.
162
194
163
195
The next step is to create an action group to trigger your Logic App.
164
196
@@ -177,7 +209,7 @@ To trigger your Logic app, create an action group, then create an alert that use
177
209
:::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.":::
178
210
1. In the **Actions** tab under **Action type**, select **Logic App**.
179
211
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).
181
213
1. Select **OK**.
182
214
1. Enter a name in the **Name** field.
183
215
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
193
225
194
226
:::image type="content" source="./media/alerts-logic-apps/test-action-group2.png" alt-text="A screenshot showing an action group details test page.":::
195
227
196
-
The following email will be sent to the specified account:
228
+
The following email is sent to the specified account:
197
229
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.":::
Copy file name to clipboardExpand all lines: articles/azure-monitor/autoscale/autoscale-overview.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,14 +75,16 @@ Set up schedule-based rules to trigger scale events. Use schedule-based rules wh
75
75
76
76
### Rules
77
77
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:
79
81
80
82
* Metric-based
81
83
Trigger based on a metric value, for example when CPU usage is above 50%.
82
84
* Time-based
83
85
Trigger based on a schedule, for example, every Saturday at 8am.
84
86
85
-
You can combine multiple rules using different metrics, for example CPU usage and queue length.
87
+
86
88
Autoscale scales out if *any* of the rules are met, whereas autoscale scales in only if *all* the rules are met.
87
89
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.
0 commit comments