Skip to content

Commit 6c6f851

Browse files
committed
Merge branch 'main' into chrisda
2 parents 03b8fab + d721d8c commit 6c6f851

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

exchange/docs-conceptual/app-only-auth-powershell-v2.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Certificate based authentication (CBA) or app-only authentication as described i
4848
> - [Get-ComplianceCase](/powershell/module/exchange/get-compliancecase)
4949
> - [Get-CaseHoldPolicy](/powershell/module/exchange/get-caseholdpolicy)
5050
>
51-
> - App-only authentication does not support delegation. Unattended scripting in delegation scenarios is supported with the Secure App Model. For more information, go [here](/powershell/partnercenter/multi-factor-auth#exchange).
51+
> - Delegated scenarios are supported in **Exchange Online** using multi-tenant applications. The required steps are called out within the regular instructions in this article.
5252
5353
## How does it work?
5454

@@ -174,9 +174,13 @@ For a detailed visual flow about creating applications in Azure AD, see <https:/
174174
175175
- **Supported account types**: Verify that **Accounts in this organizational directory only (\<YourOrganizationName\> only - Single tenant)** is selected.
176176
177+
> [!NOTE]
178+
> To make the application multi-tenant for **Exchange Online** delegated scenarios, select the value **Accounts in any organizational directory (Any Azure AD directory - Multitenant)**.
179+
177180
- **Redirect URI (optional)**: In the first box, verify that **Web** is selected. In the second box, enter the URI where the access token is sent.
178181
179-
Note that you can't create credentials for [native applications](/azure/active-directory/manage-apps/application-proxy-configure-native-client-application), because you can't use that type for automated applications.
182+
> [!NOTE]
183+
> You can't create credentials for [native applications](/azure/active-directory/manage-apps/application-proxy-configure-native-client-application), because you can't use that type for automated applications.
180184
181185
![Register an application.](media/exo-app-only-auth-register-app.png)
182186
@@ -289,6 +293,18 @@ After you register the certificate with your application, you can use the privat
289293

290294
4. Close the current **Certificates & secrets** page, and then the **App registrations** page to return to the main <https://portal.azure.com/> page. You'll use it in the next step.
291295

296+
### Step 4b: Exchange Online delegated scenarios only: Grant admin consent for the multi-tenant app
297+
298+
If you made the application multi-tenant for **Exchange Online** delegated scenarios in [Step 1](#step-1-register-the-application-in-azure-ad), you need to grant admin consent to the Exchange.ManageAsApp permission so the application can run cmdlets in Exchange Online **in each tenant organization**. To do this, generate an admin consent URL for each customer tenant. Before anyone uses the multi-tenant application to connect to Exchange Online in the tenant organization, an admin in the customer tenant should open the following URL:
299+
300+
`https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>&scope=https://outlook.office365.com/.default`
301+
302+
- `<tenant-id>` is the customer's tenant ID.
303+
- `<client-id>` is the ID of the multi-tenant application.
304+
- The default scope is used to grant application permissions.
305+
306+
For more information about the URL syntax, see [Request the permissions from a directory admin](/azure/active-directory/develop/v2-admin-consent#request-the-permissions-from-a-directory-admin).
307+
292308
### Step 5: Assign Azure AD roles to the application
293309

294310
You have two options:
@@ -297,7 +313,9 @@ You have two options:
297313
- **Assign custom Exchange Online role groups to the application**: Currently, this method is supported only in Exchange Online PowerShell, and only when you connect in [REST API mode](exchange-online-powershell-v2.md#updates-for-version-300-the-exo-v3-module) (don't use the _UseRPSSession_ switch in the **Connect-ExchangeOnline** command).
298314

299315
> [!NOTE]
300-
> You can also combine both methods to assign permissions. Like using Azure AD roles for the "Exchange Recipient Administrator" role and assign your custom RBAC role to extend the permissions.
316+
> You can also combine both methods to assign permissions. For example, you can use Azure AD roles for the "Exchange Recipient Administrator" role and also assign your custom RBAC role to extend the permissions.
317+
>
318+
> For multi-tenant applications in **Exchange Online** delegated scenarios, you need to assign permissions in each customer tenant.
301319
302320
#### Assign Azure AD roles to the application
303321

exchange/exchange-ps/exchange/Get-RecoverableItems.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,12 @@ Accept wildcard characters: False
245245
The SourceFolder parameter specifies where to search for deleted items in the mailbox. Valid values are:
246246
247247
- DeletedItems: The Deleted Items folder.
248-
- DiscoveryHoldsItems: The Recoverable Items\DiscoveryHolds folder. This folder contains items that have been purged from the Recoverable Items folder (hard-deleted items) and are protected by a hold.
249248
- RecoverableItems: The Recoverable Items\Deletions folder. This folder contains items that have been deleted from the Deleted Items folder (soft-deleted items).
250249
- PurgedItems: The Recoverable Items\Purges folder. This folder contains items that have been purged from the Recoverable Items folder (hard-deleted items).
251250
252-
If you don't use this parameter, the command will search all of these folders.
251+
If you don't use this parameter, the command will search these three folders.
252+
253+
- DiscoveryHoldsItems: The Recoverable Items\DiscoveryHolds folder. This folder contains items that have been purged from the Recoverable Items folder (hard-deleted items) and are protected by a hold. To search for deleted items in this folder, use this parameter with the value DiscoveryHoldsItems.
253254
254255
```yaml
255256
Type: RecoverableItemsFolderType

0 commit comments

Comments
 (0)