New-ApplicationAccessPolicy

此 cmdlet 仅在基于云的服务中可用。

使用 New-ApplicationAccessPolicy cmdlet 限制或拒绝应用程序对特定邮箱集的访问,该应用程序使用 outlook REST、Microsoft Graph 或 Exchange Web Services (EWS) ) (API。 这些策略是应用程序声明的权限范围的补充。

有关以下语法部分的参数设置的详细信息,请参阅 Exchange cmdlet 语法

注意:应用访问策略不久将替换为基于角色的应用程序访问控制。 若要了解详细信息,请参阅 Exchange 应用程序的基于角色访问控制

语法

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 请求都使用以下规则 (,) 的顺序相同:

  1. 如果同一应用程序和目标邮箱对有多个应用程序访问策略,则 DenyAccess 策略优先于 RestrictAccess 策略。
  2. 如果应用程序和目标邮箱存在 DenyAccess 策略,则即使存在 RestrictAccess 策略) ,应用的访问请求也会 (被拒绝。
  3. 如果有任何与应用程序和目标邮箱匹配的 RestrictAccess 策略,则向应用授予访问权限。
  4. 如果应用程序有任何“限制”策略,并且目标邮箱不是这些策略的成员,则拒绝应用程序访问目标邮箱。
  5. 如果上述条件均未满足,则向应用程序授予对所请求目标邮箱的访问权限。

示例

示例 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

AccessRight 参数指定要在应用程序访问策略中分配的限制类型。 有效值包含:

  • RestrictAccess:允许关联的应用仅访问与 PolicyScopeGroupID 参数指定的邮箱关联的数据。
  • DenyAccess:允许关联的应用仅访问与 PolicyScopeGroupID 参数指定的邮箱不关联的数据。
Type:ApplicationAccessPolicyIdParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-AppId

Identity 参数指定要包含在策略中的应用的 GUID。 若要查找应用的 GUID 值,请运行命令 Get-App | Format-Table -Auto DisplayName,AppId。

可以指定多个以逗号分隔的应用 GUID 值,也可以指定 * 来指示所有应用程序。

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Confirm

Confirm 开关指定是否显示确认提示。 此开关对 cmdlet 造成的影响取决于在你继续操作之前 cmdlet 是否需要确认。

  • 破坏性 cmdlet (例如,Remove-* cmdlet) 具有内置的暂停,该暂停会强制你在继续操作之前确认命令。 对于这些 cmdlet,您可以使用此确切语法跳过确认提示:-Confirm:$false
  • 大多数其他 cmdlet (例如,New-* 和 Set-* cmdlet) 没有内置暂停。 对于这些 cmdlet,指定不含值的 Confirm 开关会引入暂停,从而强制要求你先确认命令,然后再继续操作。
Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-Description

Description 参数指定策略的说明。 如果值中有空格,请使用双引号 (") 将此值括起来。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-PolicyScopeGroupID

PolicyScopeGroupID 参数指定要在策略中定义的收件人。 有效的收件人类型是Exchange Online (用户可以) 向其分配权限的用户或组中的安全主体。 例如:

  • 具有关联用户帐户的邮箱 (UserMailbox)
  • 邮件用户,也称为启用邮件的用户 (MailUser)
  • 已启用邮件的安全组 (MailUniversalSecurityGroup)

可以使用任何能够唯一标识该收件人的值。 例如:

  • 名称
  • 名称
  • 可分辨名称 (DN)
  • 显示名称
  • GUID

若要验证收件人是否为安全主体,请运行以下命令之一: Get-Recipient -Identity <RecipientIdentity> | Select-Object IsValidSecurityPrincipalGet-Recipient -ResultSize unlimited | Format-Table -Auto Name,RecipientType,RecipientTypeDetails,IsValidSecurityPrincipal

不能将不是安全主体的收件人与此参数一起使用。 例如,以下类型的收件人不起作用:

  • 发现邮箱 (DiscoveryMailbox)
  • 动态通讯组 (DynamicDistributionGroup)
  • MailUniversalDistributionGroup) (通讯组
  • 邮件联系人 (MailContact)
  • 已启用邮件的公用文件夹 (PublicFolder)
  • Microsoft 365 组 (GroupMailbox)
  • 资源邮箱 (RoomMailbox 或 EquipmentMailbox)
  • 共享邮箱 (SharedMailbox)

如果需要将策略范围限定为共享邮箱,可以将共享邮箱添加为启用邮件的安全组的成员。

Type:RecipientIdParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection

-WhatIf

WhatIf 开关模拟命令操作。 可以使用此开关在不实际应用将会发生的更改的情况下预览这些更改。 不必为此开关指定值。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online, Exchange Online Protection