Skip to content

Commit 31e9f36

Browse files
authored
Merge pull request #112170 from MicrosoftDocs/master
4/21 AM Publish
2 parents ffc6e4f + efefff6 commit 31e9f36

File tree

151 files changed

+925
-784
lines changed

Some content is hidden

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

151 files changed

+925
-784
lines changed

.openpublishing.redirection.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1767,6 +1767,21 @@
17671767
"redirect_url": "/azure/cognitive-services/bing-web-search/bing-web-stats",
17681768
"redirect_document_id": false
17691769
},
1770+
{
1771+
"source_path": "articles/cognitive-services/Anomaly-Detector/quickstarts/detect-data-anomalies-csharp-sdk.md",
1772+
"redirect_url": "/azure/cognitive-services/Anomaly-Detector/quickstarts/client-libraries?pivots=programming-language-csharp",
1773+
"redirect_document_id": false
1774+
},
1775+
{
1776+
"source_path": "articles/cognitive-services/Anomaly-Detector/quickstarts/detect-data-anomalies-nodejs-sdk.md",
1777+
"redirect_url": "/azure/cognitive-services/Anomaly-Detector/quickstarts/client-libraries?pivots=programming-language-javascript",
1778+
"redirect_document_id": false
1779+
},
1780+
{
1781+
"source_path": "articles/cognitive-services/Anomaly-Detector/quickstarts/detect-data-anomalies-python-sdk.md",
1782+
"redirect_url": "/azure/cognitive-services/Anomaly-Detector/quickstarts/client-libraries?pivots=programming-language-python",
1783+
"redirect_document_id": false
1784+
},
17701785
{
17711786
"source_path": "articles/cognitive-services/Bing-Web-Search/web-search-sdk-quickstart.md",
17721787
"redirect_url": "/azure/cognitive-services/bing-web-search/quickstarts/client-libraries?pivots=programming-language-csharp",

articles/active-directory-b2c/claim-resolver-overview.md

Lines changed: 10 additions & 2 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: reference
12-
ms.date: 03/30/2020
12+
ms.date: 04/21/2020
1313
ms.author: mimart
1414
ms.subservice: B2C
1515
---
@@ -86,7 +86,14 @@ The following sections list available claim resolvers.
8686
| {Context:IPAddress} | The user IP address. | 11.111.111.11 |
8787
| {Context:KMSI} | Indicates whether [Keep me signed in](custom-policy-keep-me-signed-in.md) checkbox is selected. | true |
8888

89-
### Non-protocol parameters
89+
### Claims
90+
91+
| Claim | Description | Example |
92+
| ----- | ----------- | --------|
93+
| {Claim:claim type} | An identifier of a claim type already defined in the ClaimsSchema section in the policy file or parent policy file. For example: `{Claim:displayName}`, or `{Claim:objectId}`. | A claim type value.|
94+
95+
96+
### OAuth2 key-value parameters
9097

9198
Any parameter name included as part of an OIDC or OAuth2 request can be mapped to a claim in the user journey. For example, the request from the application might include a query string parameter with a name of `app_session`, `loyalty_number`, or any custom query string.
9299

@@ -114,6 +121,7 @@ Any parameter name included as part of an OIDC or OAuth2 request can be mapped t
114121
| {SAML:AllowCreate} | The `AllowCreate` attribute value, from the `NameIDPolicy` element of the SAML request. | True |
115122
| {SAML:ForceAuthn} | The `ForceAuthN` attribute value, from the `AuthnRequest` element of the SAML request. | True |
116123
| {SAML:ProviderName} | The `ProviderName` attribute value, from the `AuthnRequest` element of the SAML request.| Contoso.com |
124+
| {SAML:RelayState} | The `RelayState` query string parameter.|
117125

118126
## Using claim resolvers
119127

articles/active-directory-b2c/json-transformations.md

Lines changed: 36 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/10/2019
12+
ms.date: 04/21/2020
1313
ms.author: mimart
1414
ms.subservice: B2C
1515
---
@@ -219,6 +219,39 @@ In the following example, the claims transformation extracts the `id` element fr
219219
- Output claims:
220220
- **extractedClaim**: 6353399
221221

222+
## GetSingleItemFromJson
223+
224+
Gets the first element from a JSON data.
225+
226+
| Item | TransformationClaimType | Data Type | Notes |
227+
| ---- | ----------------------- | --------- | ----- |
228+
| InputClaim | inputJson | string | The ClaimTypes that are used by the claims transformation to get the item from the JSON data. |
229+
| OutputClaim | key | string | The first element key in the JSON. |
230+
| OutputClaim | value | string | The first element value in the JSON. |
231+
232+
In the following example, the claims transformation extracts the first element (given name) from the JSON data.
233+
234+
```XML
235+
<ClaimsTransformation Id="GetGivenNameFromResponse" TransformationMethod="GetSingleItemFromJson">
236+
<InputClaims>
237+
<InputClaim ClaimTypeReferenceId="json" TransformationClaimType="inputJson" />
238+
</InputClaims>
239+
<OutputClaims>
240+
<OutputClaim ClaimTypeReferenceId="givenNameKey" TransformationClaimType="key" />
241+
<OutputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="value" />
242+
</OutputClaims>
243+
</ClaimsTransformation>
244+
```
245+
246+
### Example
247+
248+
- Input claims:
249+
- **inputJson**: {"givenName": "Emilty", "lastName": "Smith"}
250+
- Output claims:
251+
- **key**: givenName
252+
- **value**: Emilty
253+
254+
222255
## GetSingleValueFromJsonArray
223256

224257
Gets the first element from a JSON data array.
@@ -290,3 +323,5 @@ Output claim:
290323
}
291324
}
292325
```
326+
327+

articles/active-directory-b2c/string-transformations.md

Lines changed: 41 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: reference
12-
ms.date: 03/16/2020
12+
ms.date: 04/21/2020
1313
ms.author: mimart
1414
ms.subservice: B2C
1515
---
@@ -365,7 +365,7 @@ Copies localized strings into claims.
365365

366366
| Item | TransformationClaimType | Data Type | Notes |
367367
| ---- | ----------------------- | --------- | ----- |
368-
| OutputClaim | The name of the localized string | string | List of claim types that is produced after this claims transformation has been invoked. |
368+
| OutputClaim | The name of the localized string | string | List of claim types that are produced after this claims transformation has been invoked. |
369369

370370
To use the GetLocalizedStringsTransformation claims transformation:
371371

@@ -611,13 +611,17 @@ Checks that a string claim `claimToMatch` and `matchTo` input parameter are equa
611611
| inputClaim | claimToMatch | string | The claim type, which is to be compared. |
612612
| InputParameter | matchTo | string | The regular expression to match. |
613613
| InputParameter | outputClaimIfMatched | string | The value to be set if strings are equal. |
614+
| InputParameter | extractGroups | boolean | [Optional] Specifies whether the Regex match should extract groups values. Possible values: `true`, or `false` (default). |
614615
| OutputClaim | outputClaim | string | If regular expression is match, this output claim contains the value of `outputClaimIfMatched` input parameter. Or null, if no match. |
615616
| OutputClaim | regexCompareResultClaim | boolean | The regular expression match result output claim type, which is to be set as `true` or `false` based on the result of matching. |
617+
| OutputClaim| The name of the claim| string | If the extractGroups input parameter set to true, list of claim types that are produced after this claims transformation has been invoked. The name of the claimType must match the Regex group name. |
616618

617-
For example, checks whether the provided phone number is valid, based on phone number regular expression pattern.
619+
### Example 1
620+
621+
Checks whether the provided phone number is valid, based on phone number regular expression pattern.
618622

619623
```XML
620-
<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="setClaimsIfRegexMatch">
624+
<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
621625
<InputClaims>
622626
<InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
623627
</InputClaims>
@@ -632,8 +636,6 @@ For example, checks whether the provided phone number is valid, based on phone n
632636
</ClaimsTransformation>
633637
```
634638

635-
### Example
636-
637639
- Input claims:
638640
- **claimToMatch**: "64854114520"
639641
- Input parameters:
@@ -643,6 +645,39 @@ For example, checks whether the provided phone number is valid, based on phone n
643645
- **outputClaim**: "isPhone"
644646
- **regexCompareResultClaim**: true
645647

648+
### Example 2
649+
650+
Checks whether the provided email address is valid, and return the email alias.
651+
652+
```XML
653+
<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
654+
<InputClaims>
655+
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
656+
</InputClaims>
657+
<InputParameters>
658+
<InputParameter Id="matchTo" DataType="string" Value="(?&lt;mailAlias&gt;.*)@(.*)$" />
659+
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
660+
<InputParameter Id="extractGroups" DataType="boolean" Value="true" />
661+
</InputParameters>
662+
<OutputClaims>
663+
<OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
664+
<OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
665+
<OutputClaim ClaimTypeReferenceId="mailAlias" />
666+
</OutputClaims>
667+
</ClaimsTransformation>
668+
```
669+
670+
- Input claims:
671+
- **claimToMatch**: "[email protected]"
672+
- Input parameters:
673+
- **matchTo**: `(?&lt;mailAlias&gt;.*)@(.*)$`
674+
- **outputClaimIfMatched**: "isEmail"
675+
- **extractGroups**: true
676+
- Output claims:
677+
- **outputClaim**: "isEmail"
678+
- **regexCompareResultClaim**: true
679+
- **mailAlias**: emily
680+
646681
## SetClaimsIfStringsAreEqual
647682

648683
Checks that a string claim and `matchTo` input parameter are equal, and sets the output claims with the value present in `stringMatchMsg` and `stringMatchMsgCode` input parameters, along with compare result output claim, which is to be set as `true` or `false` based on the result of comparison.

articles/active-directory/develop/howto-restrict-your-app-to-a-set-of-users.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ ms.date: 09/24/2018
1414
ms.author: kkrishna
1515
ms.reviewer: jmprieur
1616
ms.custom: aaddev
17-
#Customer intent: As an application developer, I want to restrict an application that I have registered in Azure AD to a select set of users available in my Azure AD tenant
17+
#Customer intent: As a tenant administrator, I want to restrict an application that I have registered in Azure AD to a select set of users available in my Azure AD tenant
1818
---
19-
# How to: Restrict your Azure AD app to a set of users
19+
# How to: Restrict your Azure AD app to a set of users in an Azure AD tenant
2020

2121
Applications registered in an Azure Active Directory (Azure AD) tenant are, by default, available to all users of the tenant who authenticate successfully.
2222

2323
Similarly, in case of a [multi-tenant](howto-convert-app-to-be-multi-tenant.md) app, all users in the Azure AD tenant where this app is provisioned will be able to access this application once they successfully authenticate in their respective tenant.
2424

2525
Tenant administrators and developers often have requirements where an app must be restricted to a certain set of users. Developers can accomplish the same by using popular authorization patterns like Role Based Access Control (RBAC), but this approach requires a significant amount of work on part of the developer.
2626

27-
Azure AD allows tenant administrators and developers to restrict an app to a specific set of users or security groups in the tenant.
27+
Tenant administrators and developers can restrict an app to a specific set of users or security groups in the tenant by using this built-in feature of Azure AD as well.
2828

2929
## Supported app configurations
3030

@@ -58,7 +58,7 @@ There are two ways to create an application with enabled user assignment. One re
5858

5959
1. Select the application you want to assign a user or security group to from the list.
6060
1. On the application's **Overview** page, select **Properties** from the application’s left-hand navigation menu.
61-
1. Locate the setting **User assignment required?** and set it to **Yes**. When this option is set to **Yes**, users must first be assigned to this application before they can access it.
61+
1. Locate the setting **User assignment required?** and set it to **Yes**. When this option is set to **Yes**, users in the tenant must first be assigned to this application or they won't be able to sign-in to this application.
6262
1. Select **Save** to save this configuration change.
6363

6464
### App registration
@@ -71,7 +71,7 @@ There are two ways to create an application with enabled user assignment. One re
7171
1. Create or select the app you want to manage. You need to be **Owner** of this app registration.
7272
1. On the application's **Overview** page, follow the **Managed application in local directory** link under the essentials in the top of the page. This will take you to the _managed Enterprise Application_ of your app registration.
7373
1. From the navigation blade on the left, select **Properties**.
74-
1. Locate the setting **User assignment required?** and set it to **Yes**. When this option is set to **Yes**, users must first be assigned to this application before they can access it.
74+
1. Locate the setting **User assignment required?** and set it to **Yes**. When this option is set to **Yes**, users in the tenant must first be assigned to this application or they won't be able to sign-in to this application.
7575
1. Select **Save** to save this configuration change.
7676

7777
## Assign users and groups to the app
@@ -85,6 +85,14 @@ Once you've configured your app to enable user assignment, you can go ahead and
8585
A list of users and security groups will be shown along with a textbox to search and locate a certain user or group. This screen allows you to select multiple users and groups in one go.
8686

8787
1. Once you are done selecting the users and groups, press the **Select** button on bottom to move to the next part.
88+
1. (Optional) If you have defined App roles in your application, you can use the **Select role** option to assign the selected users and groups to one of the application's roles.
8889
1. Press the **Assign** button on the bottom to finish the assignments of users and groups to the app.
8990
1. Confirm that the users and groups you added are showing up in the updated **Users and groups** list.
9091

92+
## More information
93+
94+
- [How to: Add app roles in your application](https://docs.microsoft.com/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps)
95+
- [Add authorization using app roles & roles claims to an ASP.NET Core web app](https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/5-WebApp-AuthZ/5-1-Roles)
96+
- [Using Security Groups and Application Roles in your apps (Video)](https://www.youtube.com/watch?v=V8VUPixLSiM)
97+
- [Azure Active Directory, now with Group Claims and Application Roles](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Azure-Active-Directory-now-with-Group-Claims-and-Application/ba-p/243862)
98+
- [Azure Active Directory app manifest](https://docs.microsoft.com/azure/active-directory/develop/reference-app-manifest)

articles/active-directory/saas-apps/dynatrace-tutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ In this section, you'll enable B.Simon to use Azure single sign-on by granting a
138138

139139
## Configure Dynatrace SSO
140140

141-
To configure single sign-on on the **Dynatrace** side, you need to send the downloaded **Federation Metadata XML** file and the appropriate copied URLs from the Azure portal to the [Dynatrace support team](https://www.dynatrace.com/services-support/). They configure this setting to have the SAML SSO connection set properly on both sides.
141+
To configure single sign-on on the **Dynatrace** side, you need to send the downloaded **Federation Metadata XML** file and the appropriate copied URLs from the Azure portal to [Dynatrace](https://www.dynatrace.com/support/help/shortlink/users-sso-hub). You can follow the instructions on the Dynatrace website to configure the SAML SSO connection on both sides.
142142

143143
### Create Dynatrace test user
144144

articles/active-directory/users-groups-roles/roles-delegate-by-task.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ Configure company properties | Global Administrator |
7373

7474
Task | Least privileged role | Additional roles
7575
---- | --------------------- | ----------------
76-
Passthrough authentication | Global Administrator |
77-
Read all configuration | Global reader |
78-
Seamless single sign-on | Global Administrator |
76+
Passthrough authentication | Hybrid Identity Administrator |
77+
Read all configuration | Global reader | Hybrid Identity Administrator |
78+
Seamless single sign-on | Hybrid Identity Administrator |
7979

8080
## Connect Health
8181

articles/app-service/containers/configure-language-php.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ The default PHP image for App Service uses Apache, and it doesn't let you custom
8383
<IfModule mod_rewrite.c>
8484
RewriteEngine on
8585
86-
RewriteRule ^.*$ /public/$1 [NC,L,QSA]
86+
RewriteRule ^(.*)$ /public/$1 [NC,L,QSA]
8787
</IfModule>
8888
```
8989

articles/app-service/webjobs-sdk-how-to.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ In version 3.*x*, the connection limit defaults to infinite connections. If for
122122

123123
In version 2.*x*, you control the number of concurrent connections to a host by using the [ServicePointManager.DefaultConnectionLimit](/dotnet/api/system.net.servicepointmanager.defaultconnectionlimit#System_Net_ServicePointManager_DefaultConnectionLimit) API. In 2.*x*, you should increase this value from the default of 2 before starting your WebJobs host.
124124

125-
All outgoing HTTP requests that you make from a function by using `HttpClient` flow through `ServicePointManager`. After you reach the value set in `DefaultConnectionLimit`, `ServicePointManager` starts queueing requests before sending them. Suppose your `DefaultConnectionLimit` is set to 2 and your code makes 1,000 HTTP requests. Initially, only two requests are allowed through to the OS. The other 998 are queued until theres room for them. That means your `HttpClient` might time out because it appears to have made the request, but the request was never sent by the OS to the destination server. So you might see behavior that doesn't seem to make sense: your local `HttpClient` is taking 10 seconds to complete a request, but your service is returning every request in 200 ms.
125+
All outgoing HTTP requests that you make from a function by using `HttpClient` flow through `ServicePointManager`. After you reach the value set in `DefaultConnectionLimit`, `ServicePointManager` starts queueing requests before sending them. Suppose your `DefaultConnectionLimit` is set to 2 and your code makes 1,000 HTTP requests. Initially, only two requests are allowed through to the OS. The other 998 are queued until there's room for them. That means your `HttpClient` might time out because it appears to have made the request, but the request was never sent by the OS to the destination server. So you might see behavior that doesn't seem to make sense: your local `HttpClient` is taking 10 seconds to complete a request, but your service is returning every request in 200 ms.
126126

127127
The default value for ASP.NET applications is `Int32.MaxValue`, and that's likely to work well for WebJobs running in a Basic or higher App Service Plan. WebJobs typically need the Always On setting, and that's supported only by Basic and higher App Service Plans.
128128

@@ -420,7 +420,7 @@ static async Task Main()
420420
}
421421
```
422422

423-
For more details, see the [Event Hubs binding](../azure-functions/functions-bindings-event-hubs-output.md#hostjson-settings) article.
423+
For more details, see the [Event Hubs binding](../azure-functions/functions-bindings-event-hubs-trigger.md#host-json) article.
424424

425425
### Queue storage trigger configuration
426426

articles/application-gateway/application-gateway-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ For the v2 SKU, open the public IP resource and select **Configuration**. The **
6767

6868
*Keep-Alive timeout* governs how long the Application Gateway will wait for a client to send another HTTP request on a persistent connection before reusing it or closing it. *TCP idle timeout* governs how long a TCP connection is kept open in case of no activity.
6969

70-
The *Keep-Alive timeout* in the Application Gateway v1 SKU is 120 seconds and in the v2 SKU it's 75 seconds. The *TCP idle timeout* is a 4-minute default on the frontend virtual IP (VIP) of both v1 and v2 SKU of Application Gateway.
70+
The *Keep-Alive timeout* in the Application Gateway v1 SKU is 120 seconds and in the v2 SKU it's 75 seconds. The *TCP idle timeout* is a 4-minute default on the frontend virtual IP (VIP) of both v1 and v2 SKU of Application Gateway. You can't change these values.
7171

7272
### Does the IP or DNS name change over the lifetime of the application gateway?
7373

0 commit comments

Comments
 (0)