以编程方式将角色分配给Microsoft AzMan中的作用域?
我在Windows Server 2003上使用AzMan,并且编写了一个管理应用程序,可以从安全团队中完全隐藏AzMan和MMC。但是,我很难实现MMC中的一个功能。以编程方式将角色分配给Microsoft AzMan中的作用域?
我有一个叫做User的角色,和一个叫做Branch User的角色,它除了User角色外什么都没有。我想在所有数据(角色分配)级别分配用户角色,并在范围级别分配用户角色。但是,我无法找到一种方法,以编程方式将分支用户角色分配给作用域,而不会丢失其定义。我可以分配角色(通过在范围上调用CreateRole),但似乎只是创建一个新的空白角色。当我在MMC中右击它时,点击属性,然后显示定义,它没有任何东西。
此外,如果我尝试然后调用该IAzRole对象添加“用户”它的AddTask,它不会按预期工作。它会将用户角色中的所有任务添加到我的分支用户角色,但不是角色本身。
有没有办法做到这一点?我无法弄清楚。
是的,在WIN2k3上这是正确的方法。不幸的是,在Vista/Win2k8之前的AzMan版本中,角色定义是task.IsRoleDefinition设置为1的任务。它在新版本中拥有自己命名的类。
基本上CreateRole()正在创建一个角色分配,而不是一个角色定义(这并不一定需要名称为“分支用户”,它可以是任何东西)。角色分配包含角色/任务/操作和成员/用户的定义之间的链接。
然后,您使用app.AddTask()将角色“分支用户”添加到角色分配。
要做到这一点只为一个特定的范围,你需要调用app.OpenScope(或app.CreateScope,如果是新的),它返回一个IAzScope对象。然后,您可以在scope.CreateTask或scope.CreateRole上执行以上所有操作。
希望这会有所帮助..
所以我只是有一个“哦,哦”的时刻。我以编程方式调用CreateRole(“Branch User”,null),然后在该IAzRole对象上,调用AddTask(“Branch User”,null),并且它做我想要的。我仍在试验,看看是否有任何不良副作用......我不确定这是否是正确的方式,但现在我认为AzMan模型是有意义的。任何人都知道这是我应该怎么做的? – 2009-10-16 15:51:13