Skip to content

Commit b393b59

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into freshness_c18
2 parents 6fafef0 + e310ec2 commit b393b59

21 files changed

+85
-54
lines changed

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/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

articles/hdinsight/kafka/rest-proxy.md

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ For REST proxy endpoint requests, client applications should get an OAuth token.
6969
You can use the python code below to interact with the REST proxy on your Kafka cluster. To use the code sample, follow these steps:
7070

7171
1. Save the sample code on a machine with Python installed.
72-
1. Install required python dependencies by executing `pip3 install adal` and `pip install msrestazure`.
72+
1. Install required python dependencies by executing `pip3 install msal`.
7373
1. Modify the code section **Configure these properties** and update the following properties for your environment:
7474

7575
|Property |Description |
@@ -79,7 +79,7 @@ You can use the python code below to interact with the REST proxy on your Kafka
7979
|Client Secret|The secret for the application that you registered in the security group.|
8080
|Kafkarest_endpoint|Get this value from the **Properties** tab in the cluster overview as described in the [deployment section](#create-a-kafka-cluster-with-rest-proxy-enabled). It should be in the following format – `https://<clustername>-kafkarest.azurehdinsight.net`|
8181

82-
1. From the command line, execute the python file by executing `python <filename.py>`
82+
1. From the command line, execute the python file by executing `sudo python3 <filename.py>`
8383

8484
This code does the following action:
8585

@@ -90,13 +90,9 @@ For more information on getting OAuth tokens in python, see [Python Authenticati
9090

9191
```python
9292
#Required python packages
93-
#pip3 install adal
94-
#pip install msrestazure
93+
#pip3 install msal
9594

96-
import adal
97-
from msrestazure.azure_active_directory import AdalAuthentication
98-
from msrestazure.azure_cloud import AZURE_PUBLIC_CLOUD
99-
import requests
95+
import msal
10096

10197
#--------------------------Configure these properties-------------------------------#
10298
# Tenant ID for your Azure Subscription
@@ -109,19 +105,24 @@ client_secret = 'password'
109105
kafkarest_endpoint = "https://<clustername>-kafkarest.azurehdinsight.net"
110106
#--------------------------Configure these properties-------------------------------#
111107

112-
#getting token
113-
login_endpoint = AZURE_PUBLIC_CLOUD.endpoints.active_directory
114-
resource = "https://hib.azurehdinsight.net"
115-
context = adal.AuthenticationContext(login_endpoint + '/' + tenant_id)
108+
# Scope
109+
scope = 'https://hib.azurehdinsight.net/.default'
110+
#Authority
111+
authority = 'https://login.microsoftonline.com/' + tenant_id
116112

117-
token = context.acquire_token_with_client_credentials(
118-
resource,
119-
client_id,
120-
client_secret)
113+
# Create a preferably long-lived app instance which maintains a token cache.
114+
app = msal.ConfidentialClientApplication(
115+
client_id , client_secret, authority,
116+
#cache - For details on how look at this example: https://github.com/Azure-Samples/ms-identity-python-webapp/blob/master/app.py
117+
)
121118

122-
accessToken = 'Bearer ' + token['accessToken']
119+
# The pattern to acquire a token looks like this.
120+
result = None
123121

124-
print(accessToken)
122+
result = app.acquire_token_for_client(scopes=[scope])
123+
124+
print(result)
125+
accessToken = result['access_token']
125126

126127
# relative url
127128
getstatus = "/v1/metadata/topics"
@@ -132,10 +133,10 @@ response = requests.get(request_url, headers={'Authorization': accessToken})
132133
print(response.content)
133134
```
134135

135-
Find below another sample on how to get a token from Azure for REST proxy using a curl command. Notice that we need the `resource=https://hib.azurehdinsight.net` specified while getting a token.
136+
Find below another sample on how to get a token from Azure for REST proxy using a curl command. **Notice that we need the `scope=https://hib.azurehdinsight.net/.default` specified while getting a token.**
136137

137138
```cmd
138-
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=<clientid>&client_secret=<clientsecret>&grant_type=client_credentials&resource=https://hib.azurehdinsight.net' 'https://login.microsoftonline.com/<tenantid>/oauth2/token'
139+
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=<clientid>&client_secret=<clientsecret>&grant_type=client_credentials&scope=https://hib.azurehdinsight.net/.default' 'https://login.microsoftonline.com/<tenantid>/oauth2/v2.0/token'
139140
```
140141

141142
## Next steps

articles/iot-hub/iot-hub-portal-csharp-module-twin-getstarted.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ services: iot-hub
99
ms.devlang: csharp
1010
ms.topic: conceptual
1111
ms.date: 08/20/2019
12+
ms.custom: amqp
1213
---
1314
# Get started with IoT Hub module identity and module twin using the portal and .NET device
1415

1516
[!INCLUDE [iot-hub-selector-module-twin-getstarted](../../includes/iot-hub-selector-module-twin-getstarted.md)]
1617

1718
> [!NOTE]
18-
> [Module identities and module twins](iot-hub-devguide-module-twins.md) are similar to Azure IoT Hub device identity and device twin, but provide finer granularity. While Azure IoT Hub device identity and device twin enable the back-end application to configure a device and provide visibility on the devices conditions, a module identity and module twin provide these capabilities for individual components of a device. On capable devices with multiple components, such as operating system based devices or firmware devices, module identities and module twins allow for isolated configuration and conditions for each component.
19+
> [Module identities and module twins](iot-hub-devguide-module-twins.md) are similar to Azure IoT Hub device identity and device twin, but provide finer granularity. While Azure IoT Hub device identity and device twin enable the back-end application to configure a device and provide visibility on the device's conditions, a module identity and module twin provide these capabilities for individual components of a device. On capable devices with multiple components, such as operating system based devices or firmware devices, module identities and module twins allow for isolated configuration and conditions for each component.
1920
>
2021
2122
In this tutorial, you will learn:

articles/iot-hub/iot-hub-protocol-gateway.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ms.service: iot-hub
88
services: iot-hub
99
ms.topic: conceptual
1010
ms.date: 07/11/2017
11+
ms.custom: [amqp, mqtt]
1112
---
1213

1314
# Support additional protocols for IoT Hub

articles/iot-hub/iot-hub-python-python-c2d.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ms.devlang: python
88
ms.topic: conceptual
99
ms.date: 04/09/2020
1010
ms.author: robinsh
11+
ms.custom: mqtt
1112
---
1213

1314
# Send cloud-to-device messages with IoT Hub (Python)

articles/iot-hub/iot-hub-python-python-device-management-get-started.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ms.devlang: python
88
ms.topic: conceptual
99
ms.date: 01/17/2020
1010
ms.author: robinsh
11+
ms.custom: mqtt
1112
---
1213

1314
# Get started with device management (Python)

0 commit comments

Comments
 (0)