Skip to content

Commit 1888a27

Browse files
committed
Merge branch 'main' into release-win365-2208
2 parents 4fe1ec3 + 1247d3b commit 1888a27

21 files changed

Lines changed: 4028 additions & 2574 deletions

.openpublishing.redirection.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "memdocs/intune/developer/app-sdk-android.md",
5+
"redirect_url": "/mem/intune/developer/app-sdk-android-phase1",
6+
"redirect_document_id": false
7+
},
8+
{
9+
"source_path": "memdocs/intune/developer/app-sdk-android-testing-guide.md",
10+
"redirect_url": "/mem/intune/developer/app-sdk-android-phase1",
11+
"redirect_document_id": false
12+
},
313
{
414
"source_path": "memdocs/intune/fundamentals/end-user-company-portal-messages.md",
515
"redirect_url": "/mem/intune/user-help/sign-in-to-the-company-portal",

memdocs/intune/apps/apps-supported-intune-apps.md

Lines changed: 69 additions & 69 deletions
Large diffs are not rendered by default.

memdocs/intune/configuration/vpn-settings-windows-10.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ keywords:
77
author: MandiOhlinger
88
ms.author: mandia
99
manager: dougeby
10-
ms.date: 05/12/2022
10+
ms.date: 08/22/2022
1111
ms.topic: conceptual
1212
ms.service: microsoft-intune
1313
ms.subservice: configuration
@@ -108,6 +108,9 @@ The following settings are shown depending on the connection type you select. No
108108

109109
- **Derived credential**: Use a certificate that's derived from a user's smart card. If no derived credential issuer is configured, Intune prompts you to add one. For more information, see [Use derived credentials in Intune](../protect/derived-credentials.md).
110110

111+
> [!NOTE]
112+
> Currently, derived credentials as an authentication method for VPN profiles isn't working as expected on Windows devices. This behavior only impacts VPN profiles on Windows devices and will be fixed in a future release (no ETA).
113+
111114
- **EAP** (IKEv2 only): Select an existing Extensible Authentication Protocol (EAP) client certificate profile to authenticate. Enter the authentication parameters in the **EAP XML** setting.
112115

113116
For more information on EAP authentication, see [Extensible Authentication Protocol (EAP) for network access](/windows-server/networking/technologies/extensible-authentication-protocol/network-access) and [EAP configuration](/windows/client-management/mdm/eap-configuration).
@@ -239,7 +242,7 @@ Example:
239242
240243
- **DNS suffix search list**: In **DNS suffixes**, enter a DNS suffix, and **Add**. You can add many suffixes.
241244
242-
When using DNS suffixes, you can search for a network resource using its short name, instead of the fully qualified domain name (FQDN). When searching using the short name, the suffix is automatically determined by the DNS server. For example, `utah.contoso.com` is in the DNS suffix list. You ping `DEV-comp`. In this scenario, it resolves to `DEV-comp.utah.contoso.com`.
245+
When using DNS suffixes, you can search for a network resource using its short name, instead of the fully qualified domain name (FQDN). When you search using the short name, the suffix is automatically determined by the DNS server. For example, `utah.contoso.com` is in the DNS suffix list. You ping `DEV-comp`. In this scenario, it resolves to `DEV-comp.utah.contoso.com`.
243246
244247
DNS suffixes are resolved in the order listed, and the order can be changed. For example, `colorado.contoso.com` and `utah.contoso.com` are in the DNS suffix list, and both have a resource called `DEV-comp`. Since `colorado.contoso.com` is first in the list, it resolves as `DEV-comp.colorado.contoso.com`.
245248

memdocs/intune/developer/app-sdk-android-appendix.md

Lines changed: 334 additions & 0 deletions
Large diffs are not rendered by default.

memdocs/intune/developer/app-sdk-android-phase1.md

Lines changed: 282 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
---
2+
# required metadata
3+
4+
title: Microsoft Intune App SDK for Android developer integration and testing guide - MSAL Prerequisite
5+
description: Understand the MSAL prerequisite to incorporate Intune mobile app management (MAM) into your Android app.
6+
keywords: SDK
7+
author: Erikre
8+
ms.author: erikre
9+
manager: dougeby
10+
ms.date: 08/24/2022
11+
ms.topic: reference
12+
ms.service: microsoft-intune
13+
ms.subservice: developer
14+
ms.localizationpriority: medium
15+
ms.technology:
16+
ms.assetid: 0100e1b5-5edd-4541-95f1-aec301fb96af
17+
18+
# optional metadata
19+
20+
#ROBOTS:
21+
#audience:
22+
23+
ms.reviewer: jamiesil
24+
ms.suite: ems
25+
search.appverid: MET150
26+
#ms.tgt_pltfrm:
27+
ms.collection:
28+
- M365-identity-device-management
29+
- Android
30+
ms.custom: intune-classic
31+
---
32+
33+
# Intune App SDK for Android - Understand the MSAL Prerequisite
34+
35+
The Microsoft Intune App SDK for Android lets you incorporate Intune app protection policies (also known as **APP** or MAM policies) into your native Java/Kotlin Android app. An Intune-managed application is one that is integrated with the Intune App SDK. Intune administrators can easily deploy app protection policies to your Intune-managed app when Intune actively manages the app.
36+
37+
> [!NOTE]
38+
> This guide is divided into several distinct stages. Start by reviewing [Plan the Integration](..\developer\app-sdk-android-phase1.md).
39+
40+
## Stage 2: The MSAL Prerequisite
41+
42+
## Stage Goals
43+
44+
- Register your application with Azure Active Directory (AAD).
45+
- Integrate MSAL into your Android application.
46+
- Verify that your application can obtain a token that grants access to protected resources.
47+
48+
## Background
49+
50+
The [Microsoft Authentication Library (MSAL)] gives your application the ability to use the Microsoft Cloud by supporting [Microsoft Azure Active Directory (AAD)] and [Microsoft accounts].
51+
52+
MSAL isn't- specific to Intune.
53+
Intune has a dependency on AAD; all Intune user accounts are AAD accounts.
54+
**As a result, the vast majority of Android applications that integrate the Intune App SDK will need to integrate MSAL as a prerequisite.**
55+
56+
This stage of the SDK guide overviews the MSAL integration process as it relates to Intune; **follow the linked MSAL guides in their entirety**.
57+
58+
To simplify the Intune App SDK integration process, **Android app developers are strongly encouraged to fully integrate and test MSAL before downloading the Intune App SDK.**
59+
The Intune App SDK integration process *does- require code changes around MSAL token acquisition.
60+
It will be significantly easier to test the Intune-specific token acquisition changes if you've already confirmed your app's original token acquisition implementation works as expected.
61+
62+
To learn more about AAD, see [What is Azure Active Directory?]
63+
64+
To learn more about MSAL, see the [MSAL Wiki] and [list of MSAL libraries].
65+
66+
## Register your Application with AAD
67+
68+
Before integrating MSAL into your Android application, follow the instructions to [register your application with Azure Active Directory].
69+
This will generate a **Client ID** for your application.
70+
71+
Next, follow the instructions to [give your app access to the Intune app protection service].
72+
73+
## Configure Microsoft Authentication Library (MSAL)
74+
75+
First, read the MSAL integration guidelines found in the [MSAL repository on GitHub], specifically the section [using MSAL].
76+
77+
This guide describes how to:
78+
79+
- Add MSAL as a dependency to your Android application.
80+
- Create an MSAL configuration file.
81+
- Configure your application's `AndoridManifest.xml`.
82+
- Add code to acquire a token.
83+
84+
### Brokered Authentication
85+
86+
Single sign-on (SSO) allows users to only enter their credentials once and have those credentials automatically work across applications.
87+
MSAL can enable SSO across your suite of apps; by using a broker application (either the Microsoft Authenticator or Microsoft Intune Company Portal), you can extend SSO across the entire device.
88+
Brokered authentication is also required for Conditional Access.
89+
See [Enable cross-app SSO on Android using MSAL] for more details on brokered authentication.
90+
91+
This guide assumes that you're enabling brokered authentication within your application(s) following the steps at the link above, especially [Generate a redirect URI for a broker] and [Configure MSAL to use a broker] for configuration and [Verify broker integration] for testing.
92+
93+
**If you are not enabling brokered authentication in your application, pay extra attention to [Intune-specific MSAL configuration]**.
94+
95+
### Intune-specific MSAL configuration
96+
97+
Intune has up to four settings you may need to add to your application's `AndroidManifest.xml`.
98+
These settings help ensure that Intune's authentication policy can be properly enforced and prevent unnecessary authentication prompts for end users.
99+
100+
These settings include:
101+
102+
```xml
103+
<meta-data
104+
android:name="com.microsoft.intune.mam.aad.ClientID"
105+
android:value="your-client-ID-GUID" />
106+
<meta-data
107+
android:name="com.microsoft.intune.mam.aad.Authority"
108+
android:value="https://AAD authority/" />
109+
<meta-data
110+
android:name="com.microsoft.intune.mam.aad.SkipBroker"
111+
android:value="[true | false]" />
112+
<meta-data
113+
android:name="com.microsoft.intune.mam.aad.NonBrokerRedirectURI"
114+
android:value="your-redirect-URI" />
115+
```
116+
117+
| Setting | Description | Required for MSAL? | Required by Intune? |
118+
| - | - | - | - |
119+
| `ClientID` | The AAD ClientID (also known as the "Application ID") for your app. <br> There's no default `ClientID`. Use the `ClientID` from [Register your Application with AAD] for your app. | Yes | No |
120+
| `Authority` | The AAD authority to issue a token. <br> By default, this value is the AAD public environment. If overridden, the AAD authority entered will issue the token for your application, which allows authentication to non-default environments, such as Sovereign clouds. | No | If your application requires a non-default authority, yes. **Most apps should not set the Authority parameter.** |
121+
| `SkipBroker` | Boolean value for altering the default MSAL SSO behavior. <br> By default, this value is "false". | No | If your app doesn't support brokered authentication/device-wide SSO, yes and set `SkipBroker` to "true". **Most apps should not set the SkipBroker parameter.** |
122+
| `NonBrokerRedirectURI` | [AAD redirect URI] to use in broker-less cases. By default, this value isn't present. | No | If the `SkipBroker` setting is set to "true" and your app requires a redirect URI, yes. **Most apps should not set the NonBrokerRedirectURI parameter.** |
123+
124+
> [!CAUTION]
125+
> Applications that do not integrate MSAL **must not** include any of these 4 properties in the manifest.
126+
127+
For more detail on non-Intune-specific MSAL configuration options, see [Android Microsoft Authentication Library configuration file].
128+
129+
For more detail on Sovereign clouds, see [Use MSAL in a national cloud environment].
130+
131+
132+
## Exit Criteria
133+
134+
- Have you integrated MSAL into your application?
135+
- Have you enabled broker authentication by generating a redirect URI and setting it in the MSAL configuration file?
136+
- Have you configured the Intune-specific MSAL settings in the `AndroidManifest.xml`?
137+
- Have you tested brokered authentication, confirmed that a work account is added to Android's Account Manager, and tested SSO with other Microsoft 365 apps?
138+
- If you implemented Conditional Access, have you tested both device-based CA and app-based CA to validate your CA implementation?
139+
140+
## FAQ
141+
142+
### What about ADAL?
143+
144+
Microsoft's previous authentication library, [Azure Active Directory Authentication Library (ADAL)], is **deprecated**.
145+
146+
If your application has already integrated ADAL, see [Update your applications to use Microsoft Authentication Library (MSAL)].
147+
To migrate your app from ADAL to MSAL, see [Migrate Android ADAL to MSAL] and [Differences between ADAL and MSAL].
148+
149+
**It is recommended to migrate from ADAL to MSAL prior to integrating the Intune App SDK.**
150+
151+
## Next Steps
152+
153+
After you've completed all the [Exit Criteria] above, continue to [Stage 3: Getting Started with MAM].
154+
155+
<!-- Stage 2 links -->
156+
<!-- internal links -->
157+
[Register your Application with AAD]:#register-your-application-with-aad
158+
[Intune-specific MSAL configuration]:#intune-specific-msal-configuration
159+
[Exit Criteria]:#exit-criteria
160+
161+
<!-- Other SDK Guide Markdown docs -->
162+
[Stage 1: Planning the Integration]:app-sdk-android-phase1.md
163+
[Stage 3: Getting Started with MAM]:app-sdk-android-phase3.md
164+
165+
<!-- Microsoft docs: AAD -->
166+
[Microsoft Azure Active Directory (AAD)]:https://azure.microsoft.com/services/active-directory/
167+
[Microsoft accounts]:https://account.microsoft.com/
168+
[What is Azure Active Directory?]:/azure/active-directory/fundamentals/active-directory-whatis
169+
[register your application with Azure Active Directory]:/azure/active-directory/active-directory-app-registration
170+
171+
<!-- Microsoft docs: MSAL-->
172+
[Microsoft Authentication Library (MSAL)]:/azure/active-directory/develop/msal-overview
173+
[list of MSAL libraries]:/azure/active-directory/develop/reference-v2-libraries
174+
[MSAL Wiki]:https://github.com/AzureAD/
175+
[using MSAL]: https://github.com/AzureAD/microsoft-authentication-library-for-android#using-msal
176+
[Enable cross-app SSO on Android using MSAL]:/azure/active-directory/develop/msal-android-single-sign-on
177+
[Generate a redirect URI for a broker]:/azure/active-directory/develop/msal-android-single-sign-on#generate-a-redirect-uri-for-a-broker
178+
[Configure MSAL to use a broker]:/azure/active-directory/develop/brokered-auth#configure-msal-to-use-a-broker
179+
[Verify broker integration]:/azure/active-directory/develop/msal-android-single-sign-on#verify-broker-integration
180+
[AAD redirect URI]:/azure/active-directory/develop/msal-client-application-configuration#redirect-uri
181+
[Use MSAL in a national cloud environment]:/azure/active-directory/develop/msal-national-cloud
182+
[Android Microsoft Authentication Library configuration file]:/azure/active-directory/develop/msal-configuration
183+
[MSAL repository on GitHub]: https://github.com/AzureAD/microsoft-authentication-library-for-android
184+
185+
<!-- Microsoft docs: ADAL -->
186+
[Azure Active Directory Authentication Library (ADAL)]:/azure/active-directory/azuread-dev/active-directory-authentication-libraries
187+
188+
<!-- Microsoft docs: ADAL to MSAL -->
189+
[Update your applications to use Microsoft Authentication Library (MSAL)]:https://techcommunity.microsoft.com/t5/azure-active-directory-identity/update-your-applications-to-use-microsoft-authentication-library/ba-p/1257363
190+
[Migrate Android ADAL to MSAL]:/azure/active-directory/develop/migrate-android-adal-msal
191+
[Differences between ADAL and MSAL]:/azure/active-directory/develop/msal-overview#differences-between-adal-and-msal
192+
193+
<!-- Microsoft docs: CA -->
194+
[Conditional Access (CA)]:/azure/active-directory/develop/active-directory-conditional-access-developer
195+
[device-based CA]:/mem/intune/protect/conditional-access-intune-common-ways-use#device-based-conditional-access
196+
[app-based CA]:/mem/intune/conditional-access-intune-common-ways-use#app-based-conditional-access
197+
[configuring app-based CA]:/mem/intune/protect/app-based-conditional-access-intune-create
198+
199+
200+
<!-- Microsoft docs -->
201+
[give your app access to the Intune app protection service]:/mem/intune/developer/app-sdk-get-started#give-your-app-access-to-the-intune-app-protection-service-optional
202+
203+
<!-- Other Microsoft links -->
204+
[Microsoft Endpoint Manager admin center]:https://go.microsoft.com/fwlink/?linkid=2109431

0 commit comments

Comments
 (0)