Skip to content

Commit 2587a9b

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into release-iotedge-fall19
2 parents a5bd2c8 + f4318a7 commit 2587a9b

File tree

341 files changed

+4178
-1990
lines changed

Some content is hidden

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

341 files changed

+4178
-1990
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44002,6 +44002,11 @@
4400244002
"source_path": "articles/virtual-desktop/bandwidth-recommendations.md",
4400344003
"redirect_url": "https://docs.microsoft.com/windows-server/remote/remote-desktop-services/network-guidance",
4400444004
"redirect_document_id": false
44005+
},
44006+
{
44007+
"source_path": "articles/troubleshoot-client-connection.md",
44008+
"redirect_url": "/azure/virtual-desktop/troubleshoot-client",
44009+
"redirect_document_id": false
4400544010
}
4400644011
]
4400744012
}

articles/active-directory-b2c/connect-with-saml-service-providers.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ If you don't yet have a SAML service provider and an associated metadata endpoin
6161
To build a trust relationship between your service provider and Azure AD B2C, you need to provide X509 certificates and their private keys.
6262

6363
* **Service provider certificates**
64-
* Certificate with a private key stored in your Web App. This certificate is used to by your service provider to sign the SAML request sent to Azure AD B2C. Azure AD B2C reads the public key from the service provider metadata to validate the signature.
64+
* Certificate with a private key stored in your Web App. This certificate is used by your service provider to sign the SAML request sent to Azure AD B2C. Azure AD B2C reads the public key from the service provider metadata to validate the signature.
6565
* (Optional) Certificate with a private key stored in your Web App. Azure AD B2C reads the public key from the service provider metadata to encrypt the SAML assertion. The service provider then uses the private key to decrypt the assertion.
6666
* **Azure AD B2C certificates**
6767
* Certificate with a private key in Azure AD B2C. This certificate is used by Azure AD B2C to sign the SAML response sent to your service provider. Your service provider reads the Azure AD B2C metadata public key to validate the signature of the SAML response.
@@ -96,7 +96,7 @@ If you don't already have a certificate, you can use a self-signed certificate f
9696
Next, upload the SAML assertion and response signing certificate to Azure AD B2C.
9797
9898
1. Sign in to the [Azure portal](https://portal.azure.com) and browse to your Azure AD B2C tenant.
99-
1. Select **Settings** > **Identity Experience Framework** > **Policy Keys**.
99+
1. Under **Policies**, select **Identity Experience Framework** and then **Policy keys**.
100100
1. Select **Add**, and then select **Options** > **Upload**.
101101
1. Enter a **Name**, for example *SamlIdpCert*. The prefix *B2C_1A_* is automatically added to the name of your key.
102102
1. Upload your certificate using the upload file control.
@@ -318,7 +318,7 @@ For this tutorial, in which you use the SAML test application, set the `url` pro
318318

319319
#### LogoutUrl (Optional)
320320

321-
This optional property represents the `Logout` URL (`SingleLogoutService` URL in the relying party metadata), and the `BindingType` for this is assumed to be `HttpDirect`.
321+
This optional property represents the `Logout` URL (`SingleLogoutService` URL in the relying party metadata), and the `BindingType` for this is assumed to be `Http-Redirect`.
322322

323323
For this tutorial which uses the SAML test application, leave `logoutUrl` set to `https://samltestapp2.azurewebsites.net/logout`:
324324

@@ -374,4 +374,4 @@ The following SAML relying party (RP) scenarios are supported via your own metad
374374
You can find more information about the [SAML protocol on the OASIS website](https://www.oasis-open.org/).
375375

376376
<!-- LINKS - External -->
377-
[samltest]: https://aka.ms/samltestapp
377+
[samltest]: https://aka.ms/samltestapp

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,8 @@ The `GenerateOtp` technical profile generates a code for the email address. The
256256
<InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="otpToVerify" />
257257
</InputClaims>
258258
</TechnicalProfile>
259-
</ClaimsProviders>
259+
</TechnicalProfiles>
260+
</ClaimsProviders>
260261
```
261262

262263
## Add a REST API technical profile

articles/active-directory/develop/howto-add-app-roles-in-azure-ad-apps.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ Once you've added app roles in your application, you can assign users and groups
121121

122122
- [Authorization in a web app using Azure AD application roles &amp; role claims (Sample)](https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims)
123123
- [Using Security Groups and Application Roles in your apps (Video)](https://www.youtube.com/watch?v=V8VUPixLSiM)
124-
- [Azure Active Directory, now with Group Claims and Application Roles](https://cloudblogs.microsoft.com/enterprisemobility/2014/12/18/azure-active-directory-now-with-group-claims-and-application-roles)
124+
- [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)
125125
- [Azure Active Directory app manifest](https://docs.microsoft.com/azure/active-directory/develop/reference-app-manifest)
126126
- [AAD Access tokens](access-tokens.md)
127127
- [AAD `id_tokens`](id-tokens.md)

articles/active-directory/develop/msal-net-migration-ios-broker.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ result = await app.AcquireTokenInteractive(scopes)
143143
</table>
144144

145145
### Step 3: Update AppDelegate to handle the callback
146-
Both ADAL and MSAL call the broker, and the broker in turn calls back to your application through the `OpenUrl` method of the `AppDelegate` class. For more information, see [this documentation](msal-net-use-brokers-with-xamarin-apps.md#step-2-update-appdelegate-to-handle-the-callback).
146+
Both ADAL and MSAL call the broker, and the broker in turn calls back to your application through the `OpenUrl` method of the `AppDelegate` class. For more information, see [this documentation](msal-net-use-brokers-with-xamarin-apps.md#step-3-update-appdelegate-to-handle-the-callback).
147147

148148
There are no changes here between ADAL.NET and MSAL.NET.
149149

@@ -217,6 +217,7 @@ Uses
217217
<key>LSApplicationQueriesSchemes</key>
218218
<array>
219219
<string>msauthv2</string>
220+
<string>msauthv3</string>
220221
</array>
221222
```
222223
</table>
@@ -243,7 +244,7 @@ Example:
243244

244245
</table>
245246

246-
For more information about how to register the redirect URI in the portal, see [Leverage the broker in Xamarin.iOS applications](msal-net-use-brokers-with-xamarin-apps.md#step-7-make-sure-the-redirect-uri-is-registered-with-your-app).
247+
For more information about how to register the redirect URI in the portal, see [Leverage the broker in Xamarin.iOS applications](msal-net-use-brokers-with-xamarin-apps.md#step-8-make-sure-the-redirect-uri-is-registered-with-your-app).
247248

248249
## Next steps
249250

articles/active-directory/develop/msal-net-use-brokers-with-xamarin-apps.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,21 @@ var app = PublicClientApplicationBuilder
4343
.Build();
4444
```
4545

46-
### Step 2: Update AppDelegate to handle the callback
46+
### Step 2: Enable keychain access
47+
48+
To enable keychain access, your application must have a keychain access group. You can use the `WithIosKeychainSecurityGroup()` API to set your keychain access group when you create your application:
49+
50+
```csharp
51+
var builder = PublicClientApplicationBuilder
52+
.Create(ClientId)
53+
54+
.WithIosKeychainSecurityGroup("com.microsoft.adalcache")
55+
.Build();
56+
```
57+
58+
For more information, see [Enable keychain access](msal-net-xamarin-ios-considerations.md#enable-keychain-access).
59+
60+
### Step 3: Update AppDelegate to handle the callback
4761
When the Microsoft Authentication Library for .NET (MSAL.NET) calls the broker, the broker in turn calls back to your application through the `OpenUrl` method of the `AppDelegate` class. Because MSAL waits for the response from the broker, your application needs to cooperate to call MSAL.NET back. To enable this cooperation, update the `AppDelegate.cs` file to override the following method.
4862

4963
```csharp
@@ -68,7 +82,7 @@ public override bool OpenUrl(UIApplication app, NSUrl url,
6882

6983
This method is invoked every time the application is launched. It's used as an opportunity to process the response from the broker and complete the authentication process initiated by MSAL.NET.
7084

71-
### Step 3: Set a UIViewController()
85+
### Step 4: Set a UIViewController()
7286
Still in `AppDelegate.cs`, you need to set an object window. Normally, with Xamarin iOS, you don't need to set the object window. To send and receive responses from the broker, you need an object window.
7387

7488
To do this, you do two things.
@@ -94,7 +108,7 @@ result = await app.AcquireTokenInteractive(scopes)
94108
.ExecuteAsync();
95109
```
96110

97-
### Step 4: Register a URL scheme
111+
### Step 5: Register a URL scheme
98112
MSAL.NET uses URLs to invoke the broker and then return the broker response back to your app. To finish the round trip, register a URL scheme for your app in the `Info.plist` file.
99113

100114
The `CFBundleURLSchemes` name must include `msauth.` as a prefix, followed by your `CFBundleURLName`.
@@ -124,7 +138,7 @@ The `CFBundleURLSchemes` name must include `msauth.` as a prefix, followed by yo
124138
</array>
125139
```
126140

127-
### Step 5: Add the broker identifier to the LSApplicationQueriesSchemes section
141+
### Step 6: Add the broker identifier to the LSApplicationQueriesSchemes section
128142
MSAL uses `–canOpenURL:` to check if the broker is installed on the device. In iOS 9, Apple locked down what schemes an application can query for.
129143

130144
Add `msauthv2` to the `LSApplicationQueriesSchemes` section of the `Info.plist` file.
@@ -133,10 +147,11 @@ Add `msauthv2` to the `LSApplicationQueriesSchemes` section of the `Info.plist`
133147
<key>LSApplicationQueriesSchemes</key>
134148
<array>
135149
<string>msauthv2</string>
150+
<string>msauthv3</string>
136151
</array>
137152
```
138153

139-
### Step 6: Register your redirect URI in the application portal
154+
### Step 7: Register your redirect URI in the application portal
140155
Using the broker adds an extra requirement on your redirect URI. The redirect URI _must_ have the following format:
141156
```csharp
142157
$"msauth.{BundleId}://auth"
@@ -147,7 +162,7 @@ public static string redirectUriOnIos = "msauth.com.yourcompany.XForms://auth";
147162
```
148163
Notice that the redirect URI matches the `CFBundleURLSchemes` name you included in the `Info.plist` file.
149164

150-
### Step 7: Make sure the redirect URI is registered with your app
165+
### Step 8: Make sure the redirect URI is registered with your app
151166

152167
This redirect URI needs to be registered on the app registration portal (https://portal.azure.com) as a valid redirect URI for your application.
153168

@@ -181,4 +196,4 @@ The MSAL Android native library already supports it. For details see [Brokered a
181196

182197
## Next steps
183198

184-
Learn about [Universal Windows Platform-specific considerations with MSAL.NET](msal-net-uwp-considerations.md).
199+
Learn about [Universal Windows Platform-specific considerations with MSAL.NET](msal-net-uwp-considerations.md).

articles/active-directory/develop/msal-net-xamarin-android-considerations.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Xamarin Android considerations (MSAL.NET) | Azure
33
titleSuffix: Microsoft identity platform
44
description: Learn about specific considerations when using Xamarin Android with the Microsoft Authentication Library for .NET (MSAL.NET).
55
services: active-directory
6-
author: TylerMSFT
6+
author: jmprieur
77
manager: CelesteDG
88

99
ms.service: active-directory
@@ -80,6 +80,23 @@ The `AndroidManifest.xml` should contain the following values:
8080
</activity>
8181
```
8282

83+
Or, you can [create the activity in code](https://docs.microsoft.com/xamarin/android/platform/android-manifest#the-basics) and not manually edit `AndroidManifest.xml`. For that, you must create a class that has the `Activity` and `IntentFilter` attribute. A class that represents the same values of the above xml would be:
84+
85+
```csharp
86+
[Activity]
87+
[IntentFilter(new[] { Intent.ActionView },
88+
Categories = new[] { Intent.CategoryBrowsable, Intent.CategoryDefault },
89+
DataHost = "auth",
90+
DataScheme = "msal{client_id}")]
91+
public class MsalActivity : BrowserTabActivity
92+
{
93+
}
94+
```
95+
96+
### XamarinForms 4.3.X manifest
97+
98+
The code generated by XamarinForms 4.3.x sets the `package` attribute to `com.companyname.{appName}` in the `AndroidManifest.xml`. You might want to change the value to be same as the `MainActivity.cs` namespace, if you use the `DataScheme` as `msal{client_id}`.
99+
83100
## Use the embedded web view (optional)
84101

85102
By default MSAL.NET uses the system web browser, which enables you to get SSO with Web applications and other apps. In some rare cases, you might want to specify that you want to use the embedded web view. For more information, see [MSAL.NET uses a Web browser](msal-net-web-browsers.md) and [Android system browser](msal-net-system-browser-android-considerations.md).
@@ -124,4 +141,4 @@ More details and samples are provided in the [Android Specific Considerations](h
124141
125142
| Sample | Platform | Description |
126143
| ------ | -------- | ----------- |
127-
|[https://github.com/Azure-Samples/active-directory-xamarin-native-v2](https://github.com/azure-samples/active-directory-xamarin-native-v2) | Xamarin iOS, Android, UWP | A simple Xamarin Forms app showcasing how to use MSAL to authenticate MSA and Azure AD via the AADD v2.0 endpoint, and access the Microsoft Graph with the resulting token. <br>![Topology](media/msal-net-xamarin-android-considerations/topology.png) |
144+
|[https://github.com/Azure-Samples/active-directory-xamarin-native-v2](https://github.com/azure-samples/active-directory-xamarin-native-v2) | Xamarin iOS, Android, UWP | A simple Xamarin Forms app showcasing how to use MSAL to authenticate MSA and Azure AD via the AADD v2.0 endpoint, and access the Microsoft Graph with the resulting token. <br>![Topology](media/msal-net-xamarin-android-considerations/topology.png) |

articles/active-directory/develop/msal-net-xamarin-ios-considerations.md

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Xamarin iOS considerations (MSAL.NET) | Azure
33
titleSuffix: Microsoft identity platform
44
description: Learn about specific considerations when using Xamarin iOS with the Microsoft Authentication Library for .NET (MSAL.NET).
55
services: active-directory
6-
author: TylerMSFT
6+
author: jmprieur
77
manager: CelesteDG
88

99
ms.service: active-directory
@@ -27,13 +27,6 @@ On Xamarin iOS, there are several considerations that you must take into account
2727
- [Enable token cache sharing](#enable-token-cache-sharing-across-ios-applications)
2828
- [Enable Keychain access](#enable-keychain-access)
2929

30-
## Known issues with iOS 12 and authentication
31-
Microsoft has released a [security advisory](https://github.com/aspnet/AspNetCore/issues/4647) to provide information about an incompatibility between iOS12 and some types of authentication. The incompatibility breaks social, WSFed, and OIDC logins. This advisory also provides guidance on what developers can do to remove current security restrictions added by ASP.NET to their applications to become compatible with iOS12.
32-
33-
When developing MSAL.NET applications on Xamarin iOS, you may see an infinite loop when trying to sign in to websites from iOS 12 (similar to this [ADAL issue](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/1329).
34-
35-
You might also see a break in ASP.NET Core OIDC authentication with iOS 12 Safari as described in this [WebKit issue](https://bugs.webkit.org/show_bug.cgi?id=188165).
36-
3730
## Implement OpenUrl
3831

3932
First you need to override the `OpenUrl` method of the `FormsApplicationDelegate` derived class and call `AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs`.
@@ -53,40 +46,28 @@ You'll also need to define a URL scheme, require permissions for your app to cal
5346
To enable keychain access, your application must have a keychain access group.
5447
You can set your keychain access group by using the `WithIosKeychainSecurityGroup()` api when creating your application as shown below:
5548

56-
To enable single sign-on, you need to set the `PublicClientApplication.iOSKeychainSecurityGroup` property to the same value in all of the applications.
49+
To benefit from the cache and single sign-on, you need to set the keychain access group to the same value in all of your applications.
5750

58-
An example of this using MSAL v3.x would be:
51+
An example of this using MSAL v4.x would be:
5952
```csharp
6053
var builder = PublicClientApplicationBuilder
6154
.Create(ClientId)
62-
.WithIosKeychainSecurityGroup("com.microsoft.msalrocks")
55+
.WithIosKeychainSecurityGroup("com.microsoft.adalcache")
6356
.Build();
6457
```
6558

66-
The entitlements.plist should be updated to look like the following XML fragment:
67-
6859
This change is *in addition* to enabling keychain access in the `Entitlements.plist` file, using either the below access group or your own:
6960

7061
```xml
71-
<?xml version="1.0" encoding="UTF-8" ?>
72-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
73-
<plist version="1.0">
7462
<dict>
7563
<key>keychain-access-groups</key>
7664
<array>
77-
<string>$(AppIdentifierPrefix)com.microsoft.msalrocks</string>
65+
<string>$(AppIdentifierPrefix)com.microsoft.adalcache</string>
7866
</array>
7967
</dict>
80-
</plist>
8168
```
8269

83-
An example of this using MSAL v4.x would be:
84-
85-
```csharp
86-
PublicClientApplication.iOSKeychainSecurityGroup = "com.microsoft.msalrocks";
87-
```
88-
89-
When using the `WithIosKeychainSecurityGroup()` api, MSAL will automatically append your security group to the end of the application's "team ID" (AppIdentifierPrefix) because when you build your application using xcode, it will do the same. [See iOS entitlements documentation for more details](https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps). That's why you need to update the entitlements to include $(AppIdentifierPrefix) before the keychain access group in the entitlements.plist.
70+
When you use the `WithIosKeychainSecurityGroup()` api, MSAL automatically appends your security group to the end of the application's *team ID* (AppIdentifierPrefix) because when you build your application using xcode, it will do the same. For more information, see [iOS entitlements documentation](https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps). That's why the entitlements need to include `$(AppIdentifierPrefix)` before the keychain access group in the `Entitlements.plist`.
9071

9172
### Enable token cache sharing across iOS applications
9273

@@ -125,3 +106,10 @@ Sample | Platform | Description
125106
[https://github.com/Azure-Samples/active-directory-xamarin-native-v2](https://github.com/azure-samples/active-directory-xamarin-native-v2) | Xamarin iOS, Android, UWP | A simple Xamarin Forms app showcasing how to use MSAL to authenticate MSA and Azure AD via the Azure AD V2.0 endpoint, and access the Microsoft Graph with the resulting token.
126107

127108
<!--- https://github.com/Azure-Samples/active-directory-xamarin-native-v2/blob/master/ReadmeFiles/Topology.png -->
109+
110+
## Known issues with iOS 12 and authentication
111+
Microsoft has released a [security advisory](https://github.com/aspnet/AspNetCore/issues/4647) to provide information about an incompatibility between iOS12 and some types of authentication. The incompatibility breaks social, WSFed, and OIDC logins. This advisory also provides guidance on what developers can do to remove current security restrictions added by ASP.NET to their applications to become compatible with iOS12.
112+
113+
When developing MSAL.NET applications on Xamarin iOS, you might see an infinite loop when trying to sign in to websites from iOS 12 (similar to this [ADAL issue](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/1329)).
114+
115+
You might also see a break in ASP.NET Core OIDC authentication with iOS 12 Safari as described in this [WebKit issue](https://bugs.webkit.org/show_bug.cgi?id=188165).

articles/active-directory/devices/howto-vm-sign-in-azure-ad-windows.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ There are many benefits of using Azure AD authentication to log in to Windows VM
3434
- Sign-in risk check
3535
- Automate and scale Azure AD join of Azure Windows VMs that are part for your VDI deployments.
3636

37+
> [!NOTE]
38+
> Once you enable this capability, your Windows VMs in Azure will be Azure AD joined. You cannot join it to other domain like on prem AD or Azure AD DS. If you need to do so, you will need to disconnect the VM from your Azure AD tenant by uninstalling the extension.
39+
3740
## Requirements
3841

3942
### Supported Azure regions and Windows distributions

0 commit comments

Comments
 (0)