假设您有一个共享网络驱动器,它需要用户和密码验证才能访问其内容。
可以通过 net use 命令或 Windows 凭据管理器将用户和密码添加到单台 PC,并授予其对驱动器的访问权限。
所有计算机和驱动器都在同一个网络上,只要它们有凭证,都可以访问。
我也尝试创建自己的 Windows 凭据的副本,因为可以在另一台 PC 上恢复副本,但仍然必须手动完成,我需要找到一种自动执行此操作的方法。
你怎么传播这样的凭证是否可以用于 100 台电脑,而不必一台一台地添加?
是否可以使用净使用因为我们知道特定设备的 IP 地址?
大多数计算机都在一个域中。创建了一个具有特定权限的单个用户,并且所有计算机都应使用该用户的凭据来处理资源。
答案1
共享凭证不安全且难以管理
正如您所发现的,使用单个用户帐户安全地授予多个用户对资源的访问权限是有问题的。我在本回答的最后解释了是什么导致了这种困难以及为什么应该避免这种情况。
但首先,授予资源访问权限的正确方法是使用单独的用户帐户来访问每个需要访问权限的用户。对于属于目标资源主机域的计算机和不属于目标资源主机域的计算机,执行此操作的方式会有所不同。
同域成员
对于从与托管资源的计算机位于同一域中的计算机访问资源的用户,您只需向需要访问权限的现有 AD 用户帐户授予访问权限。最佳实践方法如下:
- 创建域安全组。
- 授予该组对目标资源的访问权限。
- 使每个需要访问资源的 AD 用户对象成为安全组的成员。
非域成员
对于需要访问资源但不在资源域中的计算机的用户,最佳实践方法仍然是向各个用户帐户授予访问权限,如下所示:
使用创建 Active Directory 用户帐户相同的用于登录需要访问资源的非域计算机的用户名和密码。
如果由于某种原因您无法访问用户的密码,那么您可以采取以下任一方式:
a. 为每个非域用户创建 AD 用户帐户并分配您选择的密码。在这种情况下,您应该指定不同的而不是非域计算机上使用的,否则用户名会匹配但密码不匹配,从而阻止成功登录。(首选。)
b. 创建将由所有非域用户共享的单个 AD 用户对象。(不推荐 - 请参阅下文。)
使新的 AD 用户对象成为您在上一节步骤 1 中创建的组的成员。
授予多个用户访问权限时为什么要避免使用单个用户对象?
如您所见,最佳实践方法避免使用单个用户名和密码来授予对资源的访问权限。这样做有几个原因:
共享帐户无法灵活地适应不断变化的访问要求。当需要撤销用户的访问权限时,共享帐户是无法原谅的。您必须更改帐户的密码,这需要在所有仍需要访问权限的设备上更改密码,从而导致...
更改共享密码需要耗费大量人力。我们假设您使用密码来阻止某些用户,因此更改密码是不可避免的。但您不是在一台设备上更改密码,而是必须在多台设备上更改密码,而这些设备中的大多数通常不是集中管理的。更糟糕的是,在部署新密码之前,使用旧密码的设备无法访问资源。
共享帐户无法识别授权用户。 在系统中,您无法看到谁可以通过共享帐户进行访问。您(以及管理环境的其他任何人)将需要维护单独的列表。与直接向用户对象授予授权不同,没有保证外部列表是准确的。此外,在实时监控对资源的访问时,共享帐户不会显示谁在实际使用该资源。
共享账户更容易受到攻击。 它们被更多人从更多地方、更多系统使用,每个都代表着一个潜在的妥协点。请参阅问题 #1,了解通过更改密码来解决这个问题的难度。
批量分发单点登录凭证
也许你发现你仍然必须使用共享用户名和密码来授予对资源的访问权限。如果你遇到这种情况,坏消息是没有办法以自动化的方式方便地分发它,从而保持任何表面上的安全性。
自动化的主要问题是需要使用/保存共享凭证在访问资源的用户的登录上下文中。这排除了任何远程自动化过程(除非您知道每个用户的密码,在这种情况下您不需要使用共享凭证)。
剩下的就是在用户在场时逐台访问计算机,以便他们可以在您存储共享凭据时登录,或者直接向用户提供凭据以便他们可以自己输入。