以编程方式将角色分配给Microsoft AzMan中的作用域?

问题描述 投票:1回答:1

我正在Windows Server 2003上使用AzMan,并且编写了一个管理应用程序,该应用程序对安全团队完全隐藏了AzManMMC。但是,我很难实现MMC中的功能之一。

我有一个叫User的角色,一个叫Branch User的角色,其中除了User角色外什么都不包含。我想在所有数据(User)级别分配Role Assignments角色,并在范围级别分配Branch User角色。但是,我找不到在不丢失其定义的情况下以编程方式将Branch User角色分配给作用域的方法。我可以分配角色(通过在示波器上调用CreateRole),但它似乎只是创建一个新的空白角色。当我在MMC中右键单击它时,单击属性,然后[Show Definition,它没有任何内容。

[此外,如果我尝试在该AddTask对象上调用IAzRole以向其添加User,则它并没有按预期运行。它将User角色中的所有任务添加到我的Branch User角色中,但不添加角色本身。

有没有办法做到这一点?

windows-server-2003 rbac mmc azman
1个回答
1
投票

是的,在WIN2k3上,这是正确的方法。不幸的是,在AzMan版本Vista / Win2k8之前]中,角色定义是Tasktask.IsRoleDefinition设置为1。在较新的版本中,它具有自己的命名很好的类。

基本上CreateRole()正在创建Role Assignment,而不是Role Definition(这不一定需要具有名称Branch User,它可以是任何东西)。角色分配包含角色/任务/操作与成员/用户的定义之间的链接。

然后您将使用Branch User将角色Role Assignment添加到app.AddTask()

仅对特定的Scope

执行此操作,您需要调用返回一个app.OpenScope对象的app.CreateScope(或IAzScope,如果是新的话)。然后,您可以在scope.CreateTaskscope.CreateRole上执行上述所有操作。
© www.soinside.com 2019 - 2024. All rights reserved.