Exchange RBAC 基于角色的访问控制

Exchange Role Based Access Control: Management Roles (practical365.com)

https://learn.microsoft.com/zh-cn/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps

Role Based Access Control 是一种权限模型

RBAC 主要有以下两种向组织中的用户分配权限的方法:管理角色组和管理角色分配策略。 每种方法都会将用户与执行其工作所需的权限相关联。 另外,也可以使用第三种更高级的方法,即直接用户角色分配

通用安全组 (USG) :管理角色组是基于角色访问控制 (RBAC) 权限模型中使用的通用安全组 (USG) 

RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96

微软定义的RBAC 组件 What\Who\Where 这里的what是可以执行的命令,Who也就是角色,Where是范围也就是可以管理哪些任务。

一般在日常管理中角色(或者说头衔)和权限是紧密联系的,例如经常提到的几个O ,CEO、CFO、CTO等,这些角色被赋予特定的权限。基于上述中的角色进行日常的管理任务;这些角色不被绑定到任何个人,但可以赋予给个人也就是Exchange中所说的成员(member)进行日常的管理工作;归根结底还是哪些人(role)拥有哪些权限(permission)可以做哪些事情(things).这里的things 可以是Exchange 中角色使用操作的命令(cmdlet).

可以使用 Get-RoleGroup 查看Exchange 内置的管理角色组,管理角色组在Exchange 中是特殊的安全组,是可以将用户作为成员添加到其中以授予其执行管理任务的权限的安全组。Built-in role groups: Exchange 2013 Help | Microsoft Learn

可以使用Get-ManagementRole 查看Exchange 内置的管理角色;

结合官网给出的RBAC概念,理解如下 :

  1. 管理角色项(Entry),是用户可以执行的特定任务,例如运行Set-Mailbox cmdlet。
    • Get-ManagementRoleEntry “Mail Recipients\*” | Select Name
  2. 管理角色(ManagementRole),是角色条目的集合,例如邮件收件人角色。
    • Get-ManagementRole “Mail Recipients” | fl Description
    • Get-ManagementRole “Mailbox Import Export” | Format-List
  3. 管理角色范围(Scope),定义管理角色适用于组织中的哪个位置,例如整个组织、特定服务器或特定组织单位。
  4. 管理角色分配(AssigenMent),将管理角色链接到角色组。
  5. 管理角色组(Role Group),是可以将用户作为成员添加到其中以授予其执行管理任务的权限的安全组。

查看管理所属的管理角色组

Get-RoleGroup -Filter “Members -eq ‘abc.com/Users/Administrator'” | Format-Table Name

查看管理角色类型

Get-ManagementRole

Get-ManagementRole -RoleType MailboxImportExport

为成员分配管理角色 (最常用的)

New-ManagementRoleAssignment -Role “Mailbox Import Export” -User “Administrator”

查看CMDLET 执行需要的角色 (role)

$Perms = Get-ManagementRole -Cmdlet Search-MessageTrackingReport
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}

查看角色分配所属的用户和组

Get-ManagementRoleAssignment -Role “View-Only Recipients” -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne “All Group Members”} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod

Index