New-ApplicationAccessPolicy
此 cmdlet 仅在基于云的服务中可用。
重要
应用访问策略不久将替换为基于角色的应用程序访问控制。 若要了解详细信息,请参阅 Exchange 应用程序的基于角色访问控制。
使用 New-ApplicationAccessPolicy cmdlet 限制或拒绝应用程序对特定邮箱集的访问,该应用程序使用 (OUTLOOK REST、Microsoft Graph 或 Exchange Web Services (EWS) ) API。 这些策略是应用程序声明的权限范围的补充。
有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法。
语法
Default (默认值)
New-ApplicationAccessPolicy
-AccessRight <ApplicationAccessPolicyRight>
-AppId <String[]>
-PolicyScopeGroupId <RecipientIdParameter>
[-Confirm]
[-Description <String>]
[-WhatIf]
[<CommonParameters>]
说明
您必须先获得权限,然后才能运行此 cmdlet。 尽管本文列出了 cmdlet 的所有参数,但如果某些参数未包含在分配给你的权限中,则可能无法访问这些参数。 若要查找在贵组织中运行任何 cmdlet 或参数所需的权限,请参阅 Find the permissions required to run any Exchange cmdlet。
可以根据固定的空间量在组织中创建有限数量的策略。 如果组织使用这些策略的空间不足,则会收到错误:“应用访问策略的总大小超出了限制。若要最大化策略数量并减少策略占用的空间量,请为策略设置一个空格字符说明。 此方法允许 (大约 300 个策略,而以前限制为 100 个策略) 。
虽然基于范围的资源访问(如 Mail.Read 或 Calendar.Read)可以有效确保应用程序只能读取邮箱中的电子邮件或事件,而不能执行任何其他作,但应用程序访问策略允许管理员强制实施基于邮箱列表的限制。 例如,为一个国家/地区开发的应用不应有权访问来自其他国家/地区的数据。 或者,CRM 集成应用程序应仅访问销售组织中的日历,而不应访问其他部门。
使用 Outlook REST API 或 Microsoft Graph API 向应用程序完成的目标邮箱的每个 API 请求都使用以下规则 () 相同的顺序进行验证:
- 如果同一应用程序和目标邮箱对有多个应用程序访问策略,则 DenyAccess 策略优先于 RestrictAccess 策略。
- 如果应用程序和目标邮箱存在 DenyAccess 策略,则即使存在 RestrictAccess 策略) ,应用的访问请求也会 (被拒绝。
- 如果有任何与应用程序和目标邮箱匹配的 RestrictAccess 策略,则向应用授予访问权限。
- 如果应用程序有任何“限制”策略,并且目标邮箱不是这些策略的成员,则拒绝应用程序访问目标邮箱。
- 如果上述条件均未满足,则向应用程序授予对所请求目标邮箱的访问权限。
示例
示例 1
New-ApplicationAccessPolicy -AccessRight DenyAccess -AppId "3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5", "6ac794ca-2697-4137-8754-d2a78ae47d93" -PolicyScopeGroupId "Engineering Staff" -Description "Engineering Group Policy"
此示例使用以下设置创建新的应用程序访问策略:
- AccessRight:DenyAccess
- AppIDs:3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5 和 6ac794ca-2697-4137-8754-d2a78ae47d93
- PolicyScopeGroupId:工程人员
- 说明:工程组策略
示例 2
New-ApplicationAccessPolicy -AccessRight RestrictAccess -AppId "e7e4dbfc-046f-4074-9b3b-2ae8f144f59b" -PolicyScopeGroupId EvenUsers@AppPolicyTest2.com -Description "Restrict this app's access to members of security group EvenUsers."
此示例使用以下设置创建新的应用程序访问策略:
- AccessRight:RestrictAccess
- AppIDs:e7e4dbfc-046f-4074-9b3b-2ae8f144f59b
- PolicyScopeGroupId: EvenUsers@AppPolicyTest2.com
- 说明:将此应用的访问权限限制为安全组 EvenUsers 的成员。
示例 3
New-ApplicationAccessPolicy -AccessRight DenyAccess -AppId "e7e4dbfc-046f-4074-9b3b-2ae8f144f59b" -PolicyScopeGroupId OddUsers@AppPolicyTest2.com -Description "Deny this app access to members of security group OddUsers."
此示例使用以下设置创建新的应用程序访问策略:
- AccessRight:DenyAccess
- AppIDs:e7e4dbfc-046f-4074-9b3b-2ae8f144f59b
- PolicyScopeGroupId: OddUsers@AppPolicyTest2.com
- 说明:拒绝此应用访问安全组 OddUsers 的成员。
参数
-AccessRight
适用:Exchange Online、Exchange Online Protection
AccessRight 参数指定要在应用程序访问策略中分配的限制类型。 有效值包含:
- RestrictAccess:允许关联的应用仅访问与 PolicyScopeGroupID 参数指定的邮箱关联的数据。
- DenyAccess:允许关联的应用仅访问与 PolicyScopeGroupID 参数指定的邮箱不关联的数据。
参数属性
| 类型: | ApplicationAccessPolicyIdParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-AppId
适用:Exchange Online、Exchange Online Protection
Identity 参数指定要包含在策略中的应用的 GUID。 若要查找应用的 GUID 值,请运行命令 Get-App | Format-Table -Auto DisplayName,AppId。
可以指定多个以逗号分隔的应用 GUID 值,也可以指定 * 来指示所有应用程序。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | True |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Confirm
适用:Exchange Online、Exchange Online Protection
Confirm 开关指定是否显示确认提示。 此开关对 cmdlet 造成的影响取决于在你继续操作之前 cmdlet 是否需要确认。
- 破坏性 cmdlet(例如 Remove-* cmdlets)内置有暂停,可强制要求先确认命令,然后再继续操作。 对于这些 cmdlet,您可以使用此确切语法跳过确认提示:
-Confirm:$false。 - 其他大多数 cmdlet(例如 New-* 和 Set-* cmdlet)都没有内置暂停。 对于这些 cmdlet,指定不含值的 Confirm 开关会引入暂停,从而强制要求你先确认命令,然后再继续操作。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | cf |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Description
适用:Exchange Online、Exchange Online Protection
Description 参数指定策略的说明。 如果值中有空格,请使用双引号 (") 将此值括起来。
参数属性
| 类型: | String |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-PolicyScopeGroupID
适用:Exchange Online、Exchange Online Protection
PolicyScopeGroupID 参数指定要在策略中定义的收件人。 有效的收件人类型是Exchange Online (用户或组(包括嵌套组)中的安全主体,) 可向其分配权限。 例如:
- 具有关联用户帐户的邮箱 (UserMailbox)
- 邮件用户,也称为启用邮件的用户 (MailUser)
- 已启用邮件的安全组 (MailUniversalSecurityGroup)
可以使用任何能够唯一标识该收件人的值。 例如:
- 名称
- 名称
- 可分辨名称 (DN)
- 显示名称
- GUID
若要验证收件人是否为安全主体,请运行以下命令之一: Get-Recipient -Identity <RecipientIdentity> | Select-Object IsValidSecurityPrincipal 或 Get-Recipient -ResultSize unlimited | Format-Table -Auto Name,RecipientType,RecipientTypeDetails,IsValidSecurityPrincipal。
只能使用此参数指定安全主体。 例如,以下类型的收件人不起作用:
- 发现邮箱 (DiscoveryMailbox)
- 动态通讯组 (DynamicDistributionGroup)
- MailUniversalDistributionGroup) (通讯组
- 邮件联系人 (MailContact)
- 已启用邮件的公用文件夹 (PublicFolder)
- Microsoft 365 组 (GroupMailbox)
- 资源邮箱 (RoomMailbox 或 EquipmentMailbox)
- 共享邮箱 (SharedMailbox)
如果需要将策略范围限定为共享邮箱,可以将共享邮箱添加为启用邮件的安全组的成员。
参数属性
| 类型: | RecipientIdParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | True |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-WhatIf
适用:Exchange Online、Exchange Online Protection
WhatIf 开关模拟命令操作。 可以使用此开关在不实际应用将会发生的更改的情况下预览这些更改。 不必为此开关指定值。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 无线 |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。