是否可以根据群组成员身份动态设置用户属性,或者是否真的必须手动更改所有现有用户并使用设置了属性的模板来考虑新用户?
例如,如果是,则对待的(自定义)属性集John
的成员。Pet Owners
John
hasPets
当前的(非常具体的)问题是这样的:
我们正在使用 Sonicwall(现为 DELL)的 SRA 设备作为与 AD 集成的 VPN 解决方案。该设备支持通过电子邮件发送一次性密码,但它仅支持两种指定其使用的电子邮件地址来源的方式:
- 让它从用于登录设备的用户名和域动态组装地址(
user@domain
)。 - 指定用于保存电子邮件地址的 AD 属性,该属性可以是几个预先指定的属性之一(例如
mail
,pager
等)或自定义属性。
这些邮件最终会在某个地方被处理,并且 OTP 会通过短信发送给试图登录系统的用户。
以前,我们使用选项1)
并让设备发送 OTP 电子邮件,user@domain
但随着升级到新的设备型号和我们这边的后端变化,所有 OTP 电子邮件都应发送到同一个电子邮件地址。
什么是不是可能的做法是直接在设备内部设置全局电子邮件地址,因此看来我们必须使用2)
并将 AD 属性设置为这个新电子邮件地址。由于 VPN 访问与 AD 组绑定,我希望这可以动态地仅针对属于这些组的用户或至少针对域中的所有用户完成。
答案1
我能想到的唯一方法是运行一个脚本来定期扫描您的 Active Directory 并根据帐户的组成员身份更新您感兴趣的属性。
使用 PowerShell 相对容易地完成此操作,并且您可以将其作为计划任务运行以保持最新状态。
Scripting Guy 有一篇博客文章非常有话题性 - 使用 PowerShell AD 提供程序修改用户属性。使用它来构成脚本的核心,在其周围添加一些逻辑,就可以了。
在他的示例中,他正在摆弄属性physicaldeliveryofficename
,并使用Set-ItemProperty
cmdlet 结合Filter
在 Charlotte 和 Raleigh 之间切换该属性的值。您可能不会采用这种方法,而是只需使用 cmdletSet-ItemProperty
根据用户所在的组将 Sonicwall/Dell 检查的属性设置为某个值即可。
Set-ItemProperty -Filter "physicaldeliveryofficename=Raleigh" -Path * -Name physicaldeliveryofficename -Value Charlotte
答案2
我不相信有这样的事情。你能描述一下你实际上试图解决的问题吗?如果我们能看到大局,这可能更适合你的需求;除了你已经决定的方法之外,可能还有其他方法可以解决你的问题。
答案3
我目前正在处理相同或类似的情况。我想根据域组成员身份动态修改域用户属性(设置修复字符串)。我有点想了解“活动角色”,但似乎它只能反过来工作 - 根据属性设置成员身份 - 或者我还没有意识到如何这样做。
目前我唯一能想到的解决方案是设置一个可以在特定 OU 中定期运行的脚本,并根据成员身份修改域用户属性。目前还没有这样的脚本,因为我仍然希望有办法动态地完成它,但我还没有意识到