EXOApplicationAccessPolicy¶
Parameters¶
| Parameter | Attribute | DataType | Description | Allowed Values |
|---|---|---|---|---|
| Identity | Key | String | The Identity parameter specifies the application access policy that you want to modify. | |
| AccessRight | Write | String | The AccessRight parameter specifies the permission that you want to assign in the application access policy. | RestrictAccess, DenyAccess |
| AppID | Write | String[] | The AppID parameter specifies the GUID of the apps to include in the policy. | |
| PolicyScopeGroupId | Write | String | The PolicyScopeGroupID parameter specifies the recipient to define in the policy. You can use any value that uniquely identifies the recipient. | |
| Description | Write | String | The Description parameter specifies a description for the policy. | |
| Ensure | Write | String | Specify if the Application Access Policy should exist or not. | Present, Absent |
| Credential | Write | PSCredential | Credentials of the Exchange Global Admin | |
| ApplicationId | Write | String | Id of the Azure Active Directory application to authenticate with. | |
| TenantId | Write | String | Id of the Azure Active Directory tenant used for authentication. | |
| CertificateThumbprint | Write | String | Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. | |
| CertificatePassword | Write | PSCredential | Username can be made up to anything but password will be used for CertificatePassword | |
| CertificatePath | Write | String | Path to certificate used in service principal usually a PFX file. | |
| ManagedIdentity | Write | Boolean | Managed ID being used for authentication. | |
| AccessTokens | Write | String[] | Access token used for authentication. |
Description¶
This resource configures Applications Access Policies in Exchange Online.
DEPRECATED. Microsoft replaced Application Access Policies with Role Based Access Control (RBAC) for Applications and advises against creating new Application Access Policies. Use the EXOServicePrincipal, EXOManagementScope and EXOManagementRoleAssignment resources (with the App parameter) instead. This resource will be removed in a future release.
More information: https://learn.microsoft.com/exchange/permissions-exo/application-rbac
Permissions¶
Exchange¶
To authenticate with Microsoft Exchange, this resource requires the following permissions:
Roles¶
- Read
- View-Only Configuration
- Update
- Organization Configuration
Role Groups¶
- Read
- View-Only Organization Management
- Update
- Organization Management
Office 365 Exchange Online¶
To authenticate with the Office 365 Exchange Online API, this resource requires the following permissions:
Delegated permissions¶
- Read
-
None
-
Update
- None
Application permissions¶
- Read
-
Exchange.ManageAsApp
-
Update
- Exchange.ManageAsApp
Examples¶
Example 1¶
This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.
Configuration Example
{
param
(
[Parameter()]
[System.String]
$ApplicationId,
[Parameter()]
[System.String]
$TenantId,
[Parameter()]
[System.String]
$CertificateThumbprint
)
Import-DscResource -ModuleName Microsoft365DSC
Node localhost
{
EXOApplicationAccessPolicy 'EXOApplicationAccessPolicy-Example'
{
Identity = "Reporting App Mailbox Access"
AccessRight = "DenyAccess"
AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5'
PolicyScopeGroupId = "Executives@$TenantId"
Description = "Engineering Group Policy"
Ensure = "Present"
ApplicationId = $ApplicationId
TenantId = $TenantId
CertificateThumbprint = $CertificateThumbprint
}
}
}
Example 2¶
This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.
Configuration Example
{
param
(
[Parameter()]
[System.String]
$ApplicationId,
[Parameter()]
[System.String]
$TenantId,
[Parameter()]
[System.String]
$CertificateThumbprint
)
Import-DscResource -ModuleName Microsoft365DSC
Node localhost
{
EXOApplicationAccessPolicy 'EXOApplicationAccessPolicy-Example'
{
Identity = "Reporting App Mailbox Access"
AccessRight = "DenyAccess"
AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5'
PolicyScopeGroupId = "Executives@$TenantId"
Description = "Engineering Group Policy Updated" # Updated Property
Ensure = "Present"
ApplicationId = $ApplicationId
TenantId = $TenantId
CertificateThumbprint = $CertificateThumbprint
}
}
}
Example 3¶
This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.
Configuration Example
{
param
(
[Parameter()]
[System.String]
$ApplicationId,
[Parameter()]
[System.String]
$TenantId,
[Parameter()]
[System.String]
$CertificateThumbprint
)
Import-DscResource -ModuleName Microsoft365DSC
Node localhost
{
EXOApplicationAccessPolicy 'EXOApplicationAccessPolicy-Example'
{
Identity = "Reporting App Mailbox Access"
Ensure = "Absent"
ApplicationId = $ApplicationId
TenantId = $TenantId
CertificateThumbprint = $CertificateThumbprint
}
}
}