Skip to content

Commit d8b0553

Browse files
committed
Merge branch 'main' into release-asr-edge-zone
2 parents 87cb5a0 + c7d1fdc commit d8b0553

File tree

346 files changed

+6069
-2540
lines changed

Some content is hidden

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

346 files changed

+6069
-2540
lines changed

.openpublishing.redirection.active-directory.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@
4545
"redirect_url": "/azure/active-directory/saas-apps/tutorial-list",
4646
"redirect_document_id": false
4747
},
48+
{
49+
"source_path_from_root": "/articles/active-directory/saas-apps/iauditor-tutorial.md",
50+
"redirect_url": "/azure/active-directory/saas-apps/safety-culture-tutorial",
51+
"redirect_document_id": false
52+
},
4853
{
4954
"source_path_from_root": "/articles/active-directory/saas-apps/icertisicm-tutorial.md",
5055
"redirect_url": "/azure/active-directory/saas-apps/tutorial-list",

.openpublishing.redirection.defender-for-cloud.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,11 @@
764764
"source_path_from_root": "/articles/defender-for-cloud/plan-multicloud-security-other-resources.md",
765765
"redirect_url": "/azure/defender-for-cloud/multicloud",
766766
"redirect_document_id": true
767+
},
768+
{
769+
"source_path_from_root": "/articles/defender-for-cloud/defender-for-servers-introduction.md",
770+
"redirect_url": "/azure/defender-for-cloud/plan-defender-for-servers",
771+
"redirect_document_id": true
767772
}
768773
]
769774
}

articles/active-directory/conditional-access/terms-of-use.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ A: You can [review previously accepted terms of use policies](#how-users-can-rev
413413
A: If you've configured both Azure AD terms of use and [Intune terms and conditions](/intune/terms-and-conditions-create), the user will be required to accept both. For more information, see the [Choosing the right Terms solution for your organization blog post](https://go.microsoft.com/fwlink/?linkid=2010506&clcid=0x409).
414414

415415
**Q: What endpoints does the terms of use service use for authentication?**<br />
416-
A: Terms of use utilize the following endpoints for authentication: https://tokenprovider.termsofuse.identitygovernance.azure.com and https://account.activedirectory.windowsazure.com. If your organization has an allowlist of URLs for enrollment, you'll need to add these endpoints to your allowlist, along with the Azure AD endpoints for sign-in.
416+
A: Terms of use utilize the following endpoints for authentication: https://tokenprovider.termsofuse.identitygovernance.azure.com, https://myaccount.microsoft.com and https://account.activedirectory.windowsazure.com. If your organization has an allowlist of URLs for enrollment, you'll need to add these endpoints to your allowlist, along with the Azure AD endpoints for sign-in.
417417

418418
## Next steps
419419

articles/active-directory/develop/msal-android-shared-devices.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: active-directory
99
ms.subservice: develop
1010
ms.topic: conceptual
1111
ms.workload: identity
12-
ms.date: 09/30/2021
12+
ms.date: 12/06/2022
1313
ms.author: henrymbugua
1414
ms.reviewer: brandwe
1515
ms.custom: aaddev, identitypla | Azuretformtop40
@@ -93,8 +93,14 @@ If your application is running in multiple-account mode, and an administrator pu
9393

9494
These Microsoft applications support Azure AD's shared device mode:
9595

96-
* [Microsoft Teams](/microsoftteams/platform/)
97-
* [Microsoft Managed Home Screen](/mem/intune/apps/app-configuration-managed-home-screen-app) app for Android Enterprise
96+
- [Microsoft Teams](/microsoftteams/platform/)
97+
- [Microsoft Managed Home Screen](/mem/intune/apps/app-configuration-managed-home-screen-app) app for Android Enterprise
98+
- [Microsoft Edge](/microsoft-edge) (in Public Preview)
99+
- [Yammer](/yammer) (in Public Preview)
100+
101+
> [!IMPORTANT]
102+
> Public preview is provided without a service-level agreement and isn't recommended for production workloads. Some features might be unsupported or have constrained capabilities. For more information, see [Supplemental terms of use for Microsoft Azure previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
103+
98104
## Shared device sign-out and the overall app lifecycle
99105

100106
When a user signs out, you'll need to take action to protect the privacy and data of the user. For example, if you're building a medical records app you'll want to make sure that when the user signs out previously displayed patient records are cleared. Your application must be prepared for data privacy and check every time it enters the foreground.

articles/active-directory/develop/msal-net-token-cache-serialization.md

Lines changed: 1 addition & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -548,149 +548,7 @@ A product-quality, file-based token cache serializer for public client applicati
548548
549549
#### Dual token cache serialization (MSAL unified cache and ADAL v3)
550550

551-
If you want to implement token cache serialization with the unified cache format (common to ADAL.NET 4.x, MSAL.NET 2.x, and other MSALs of the same generation or older, on the same platform), take a look at the following code:
552-
553-
```csharp
554-
string appLocation = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location;
555-
string cacheFolder = Path.GetFullPath(appLocation) + @"..\..\..\..");
556-
string adalV3cacheFileName = Path.Combine(cacheFolder, "cacheAdalV3.bin");
557-
string unifiedCacheFileName = Path.Combine(cacheFolder, "unifiedCache.bin");
558-
559-
IPublicClientApplication app;
560-
app = PublicClientApplicationBuilder.Create(clientId)
561-
.Build();
562-
FilesBasedTokenCacheHelper.EnableSerialization(app.UserTokenCache,
563-
unifiedCacheFileName,
564-
adalV3cacheFileName);
565-
566-
```
567-
568-
This time, the helper class is defined as:
569-
570-
```csharp
571-
using System;
572-
using System.IO;
573-
using System.Security.Cryptography;
574-
using Microsoft.Identity.Client;
575-
576-
namespace CommonCacheMsalV3
577-
{
578-
/// <summary>
579-
/// Simple persistent cache implementation of the dual cache serialization (ADAL v3 legacy
580-
/// and unified cache format) for a desktop applications (from MSAL 2.x)
581-
/// </summary>
582-
static class FilesBasedTokenCacheHelper
583-
{
584-
/// <summary>
585-
/// Enables the serialization of the token cache
586-
/// </summary>
587-
/// <param name="adalV3CacheFileName">File name where the cache is serialized with the
588-
/// ADAL v3 token cache format. Can
589-
/// be <c>null</c> if you don't want to implement the legacy ADAL v3 token cache
590-
/// serialization in your MSAL 2.x+ application</param>
591-
/// <param name="unifiedCacheFileName">File name where the cache is serialized
592-
/// with the unified cache format, common to
593-
/// ADAL v4 and MSAL v2 and later, and also across ADAL/MSAL on the same platform.
594-
/// Should not be <c>null</c></param>
595-
/// <returns></returns>
596-
public static void EnableSerialization(ITokenCache tokenCache, string unifiedCacheFileName, string adalV3CacheFileName)
597-
{
598-
UnifiedCacheFileName = unifiedCacheFileName;
599-
AdalV3CacheFileName = adalV3CacheFileName;
600-
601-
tokenCache.SetBeforeAccess(BeforeAccessNotification);
602-
tokenCache.SetAfterAccess(AfterAccessNotification);
603-
}
604-
605-
/// <summary>
606-
/// File path where the token cache is serialized with the unified cache format
607-
/// (ADAL.NET v4, MSAL.NET v3)
608-
/// </summary>
609-
public static string UnifiedCacheFileName { get; private set; }
610-
611-
/// <summary>
612-
/// File path where the token cache is serialized with the legacy ADAL v3 format
613-
/// </summary>
614-
public static string AdalV3CacheFileName { get; private set; }
615-
616-
private static readonly object FileLock = new object();
617-
618-
public static void BeforeAccessNotification(TokenCacheNotificationArgs args)
619-
{
620-
lock (FileLock)
621-
{
622-
args.TokenCache.DeserializeAdalV3(ReadFromFileIfExists(AdalV3CacheFileName));
623-
try
624-
{
625-
args.TokenCache.DeserializeMsalV3(ReadFromFileIfExists(UnifiedCacheFileName));
626-
}
627-
catch(Exception ex)
628-
{
629-
// Compatibility with the MSAL v2 cache if you used one
630-
args.TokenCache.DeserializeMsalV2(ReadFromFileIfExists(UnifiedCacheFileName));
631-
}
632-
}
633-
}
634-
635-
public static void AfterAccessNotification(TokenCacheNotificationArgs args)
636-
{
637-
// if the access operation resulted in a cache update
638-
if (args.HasStateChanged)
639-
{
640-
lock (FileLock)
641-
{
642-
WriteToFileIfNotNull(UnifiedCacheFileName, args.TokenCache.SerializeMsalV3());
643-
if (!string.IsNullOrWhiteSpace(AdalV3CacheFileName))
644-
{
645-
WriteToFileIfNotNull(AdalV3CacheFileName, args.TokenCache.SerializeAdalV3());
646-
}
647-
}
648-
}
649-
}
650-
651-
/// <summary>
652-
/// Read the content of a file if it exists
653-
/// </summary>
654-
/// <param name="path">File path</param>
655-
/// <returns>Content of the file (in bytes)</returns>
656-
private static byte[] ReadFromFileIfExists(string path)
657-
{
658-
byte[] protectedBytes = (!string.IsNullOrEmpty(path) && File.Exists(path))
659-
? File.ReadAllBytes(path) : null;
660-
byte[] unprotectedBytes = encrypt ?
661-
((protectedBytes != null) ? ProtectedData.Unprotect(protectedBytes, null, DataProtectionScope.CurrentUser) : null)
662-
: protectedBytes;
663-
return unprotectedBytes;
664-
}
665-
666-
/// <summary>
667-
/// Writes a blob of bytes to a file. If the blob is <c>null</c>, deletes the file
668-
/// </summary>
669-
/// <param name="path">path to the file to write</param>
670-
/// <param name="blob">Blob of bytes to write</param>
671-
private static void WriteToFileIfNotNull(string path, byte[] blob)
672-
{
673-
if (blob != null)
674-
{
675-
byte[] protectedBytes = encrypt
676-
? ProtectedData.Protect(blob, null, DataProtectionScope.CurrentUser)
677-
: blob;
678-
File.WriteAllBytes(path, protectedBytes);
679-
}
680-
else
681-
{
682-
File.Delete(path);
683-
}
684-
}
685-
686-
// Change if you want to test with an unencrypted blob (this is a JSON format)
687-
private static bool encrypt = true;
688-
}
689-
}
690-
```
691-
692-
For more details see the sample: https://github.com/Azure-Samples/active-directory-dotnet-v1-to-v2/tree/master/TokenCacheMigration/ADAL2MSAL
693-
551+
If you want to implement token cache serialization with the unified cache format (common to ADAL.NET 4.x, MSAL.NET 2.x, and other MSALs of the same generation or older, on the same platform), take a look at the following sample: https://github.com/Azure-Samples/active-directory-dotnet-v1-to-v2/tree/master/TokenCacheMigration/ADAL2MSAL.
694552
695553
---
696554

articles/active-directory/develop/msal-shared-devices.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,17 @@ ms.custom: aaddev
1717

1818
# Overview of shared device mode
1919

20-
Shared device mode is a feature of Azure Active Directory that allows you to build applications that support frontline workers and enable shared device mode on the devices deployed to them.
20+
Shared device mode is a feature of Azure Active Directory(Azure AD) that allows you to build and deploy applications that support frontline workers and educational scenarios that require shared Android and iOS devices.
2121

2222
>[!IMPORTANT]
2323
> Shared device mode for iOS [!INCLUDE [PREVIEW BOILERPLATE](../../../includes/active-directory-develop-preview.md)]
2424
25-
## What are frontline workers?
26-
27-
Frontline workers are retail employees, maintenance and field agents, medical personnel, and other users that don't sit in front of a computer or use corporate email for collaboration. The following sections introduce the aspects and challenges of supporting frontline workers, followed by an introduction to the features provided by Microsoft that enable your application for use by an organization's frontline workers.
28-
29-
### Challenges of supporting frontline workers
30-
31-
Enabling frontline worker workflows includes challenges not usually presented by typical information workers. Such challenges can include high turnover rate and less familiarity with an organization's core productivity tools. To empower their frontline workers, organizations are adopting different strategies. Some are adopting a bring-your-own-device (BYOD) strategy in which their employees use business apps on their personal phone, while others provide their employees with shared devices like iPads or Android tablets.
3225

3326
### Supporting multiple users on devices designed for one user
3427

3528
Because mobile devices running iOS or Android were designed for single users, most applications optimize their experience for use by a single user. Part of this optimized experience means enabling single sign-on across applications and keeping users signed in on their device. When a user removes their account from an application, the app typically doesn't consider it a security-related event. Many apps even keep a user's credentials around for quick sign-in. You may even have experienced this yourself when you've deleted an application from your mobile device and then reinstalled it, only to discover you're still signed in.
3629

37-
### Global sign-in and sign-out (SSO)
30+
### Automatic single sign-in and single sign-out
3831

3932
To allow an organization's employees to use its apps across a pool of devices shared by those employees, developers need to enable the opposite experience. Employees should be able to pick a device from the pool and perform a single gesture to "make it theirs" for the duration of their shift. At the end of their shift, they should be able to perform another gesture to sign out globally on the device, with all their personal and company information removed so they can return it to the device pool. Furthermore, if an employee forgets to sign out, the device should be automatically signed out at the end of their shift and/or after a period of inactivity.
4033

@@ -45,7 +38,7 @@ Azure Active Directory enables these scenarios with a feature called **shared de
4538
As mentioned, shared device mode is a feature of Azure Active Directory that enables you to:
4639

4740
* Build applications that support frontline workers
48-
* Deploy devices to frontline workers and turn on shared device mode
41+
* Deploy devices to frontline workers with apps that support shared device mode.
4942

5043
### Build applications that support frontline workers
5144

@@ -60,7 +53,11 @@ Supported features are:
6053

6154
Supporting shared device mode should be considered a feature upgrade for your application, and can help increase its adoption in environments where the same device is used among multiple users.
6255

63-
Your users depend on you to ensure their data isn't leaked to another user. Share Device Mode provides helpful signals to indicate to your application that a change you should manage has occurred. Your application is responsible for checking the state of the user on the device every time the app is used, clearing the previous user's data. This includes if it is reloaded from the background in multi-tasking. On a user change, you should ensure both the previous user's data is cleared and that any cached data being displayed in your application is removed. We recommend you always perform a thorough security review process after adding shared device mode capability to your app.
56+
Your users depend on you to ensure their data isn't leaked to another user. Share Device Mode provides helpful signals to indicate to your application that a change you should manage has occurred. Your application is responsible for checking the state of the user on the device every time the app is used, clearing the previous user's data. This includes if it is reloaded from the background in multi-tasking. On a user change, you should ensure both the previous user's data is cleared and that any cached data being displayed in your application is removed.
57+
58+
To support all data loss prevention scenarios, we also recommend you integrate with the [Intune App SDK](/mem/intune/developer/app-sdk). By using the Intune App SDK, you can allow your application to support Intune [App Protection Policies](/mem/intune/apps/app-protection-policy). In particular, we recommend that you integrate with Intune's [selective wipe](/mem/intune/developer/app-sdk-android-phase5#selective-wipe) capabilities and [deregister the user on iOS](/mem/intune/developer/app-sdk-ios#deregister-user-accounts) during a sign-out.
59+
60+
Lastly, we recommend you always perform a thorough security review process after adding shared device mode capability to your app.
6461

6562
For details on how to modify your applications to support shared device mode, see the [Next steps](#next-steps) section at the end of this article.
6663

@@ -70,6 +67,11 @@ Once your applications support shared device mode and include the required data
7067

7168
An organization's device administrators are able to deploy their devices and your applications to their stores and workplaces through a mobile device management (MDM) solution like Microsoft Intune. Part of the provisioning process is marking the device as a *Shared Device*. Administrators configure shared device mode by deploying the [Microsoft Authenticator app](https://support.microsoft.com/account-billing/how-to-use-the-microsoft-authenticator-app-9783c865-0308-42fb-a519-8cf666fe0acc) and setting shared device mode through configuration parameters. After performing these steps, all applications that support shared device mode will use the Microsoft Authenticator application to manage its user state and provide security features for the device and organization.
7269

70+
### Use App Protection Policies to provide data loss prevention between users.
71+
For data protection capabilities along with shared device mode, Microsoft’s supported data protection solution for Microsoft 365 applications on Android and iOS is Microsoft Intune Application Protection Policies. For more information about the policies, see [App protection policies overview - Microsoft Intune | Microsoft Learn](/mem/intune/apps/app-protection-policy).
72+
73+
When setting up App protection policies for shared devices, we recommend using [level 2 enterprise enhanced data protection](/mem/intune/apps/app-protection-framework#level-2-enterprise-enhanced-data-protection). With level 2 data protection, you can restrict data transfer scenarios that may cause data to move to parts of the device that are not cleared with shared device mode.
74+
7375
## Next steps
7476

7577
We support iOS and Android platforms for shared device mode. Review the documentation below for your platform to begin supporting frontline workers in your applications.

articles/active-directory/external-identities/reset-redemption-status.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ services: active-directory
77
ms.service: active-directory
88
ms.subservice: B2B
99
ms.topic: how-to
10-
ms.date: 11/28/2022
10+
ms.date: 12/07/2022
1111

1212
ms.author: mimart
1313
author: msmimart
@@ -32,7 +32,7 @@ To manage these scenarios previously, you had to manually delete the guest user
3232

3333
To reset a user's redemption status, you'll need one of the following roles:
3434

35-
- [Guest Inviter](../roles/permissions-reference.md#guest-inviter) (least privileged)
35+
- [Helpdesk Administrator](../roles/permissions-reference.md#helpdesk-administrator) (least privileged)
3636
- [User Administrator](../roles/permissions-reference.md#user-administrator)
3737
- [Global Administrator](../roles/permissions-reference.md#global-administrator)
3838

@@ -76,7 +76,7 @@ If a user wants to sign in using a different email:
7676

7777
```powershell
7878
Install-Module Microsoft.Graph
79-
Select-MgProfile -Name beta
79+
Select-MgProfile -Name v1.0
8080
Connect-MgGraph -Scopes "User.ReadWrite.All"
8181
8282
$user = Get-MgUser -Filter "startsWith(mail, '[email protected]')"
@@ -93,7 +93,7 @@ New-MgInvitation `
9393
To use the [Microsoft Graph invitation API](/graph/api/resources/invitation), set the `resetRedemption` property to `true` and specify the new email address in the `invitedUserEmailAddress` property.
9494

9595
```json
96-
POST https://graph.microsoft.com/beta/invitations
96+
POST https://graph.microsoft.com/v1.0/invitations
9797
Authorization: Bearer eyJ0eX...
9898
ContentType: application/json
9999
{

articles/active-directory/fundamentals/recoverability-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.subservice: fundamentals
1010
ms.topic: conceptual
1111
ms.date: 08/26/2022
1212
ms.author: jricketts
13-
ms.reviewer: baselden
13+
ms.reviewer: jricketts
1414
ms.custom: "it-pro, seodec18"
1515
ms.collection: M365-identity-device-management
1616
---

0 commit comments

Comments
 (0)