在现代化的企业中,计算机网络占据了重中之重的地位,越来越多的企业核心业务依附于计算机网络架构,例如:往来电子邮件,文件共享,即时通信等。而在网络架构下,企业所部署的计算机操作系统、业务应用程序、后台数据库等各种应用系统的种类越来越多,网络架构也越来越复杂,而应用系统正常运作,除了前台的应用界面外,更重要的是后台的进程或后台的服务,有了后台进程和服务的稳定运行,才能保证业务活动的正常进行。
后台的进程和服务,都需要指定某一特定运行帐号,应该指定哪些帐号呢?我们可以从后台服务的分类来探讨:
第一类是操作系统自带服务,例如BITS服务、DNS Client服务等,他们的作用是为操作系统运行提供后台支撑,在Windows操作系统下,我们知道有这么三个特殊帐号用以启动此类服务,分别是:
SYSTEM帐号:系统帐号。部分操作系统版本会识别为Local System帐号。由System帐号开启的后台进程,拥有对计算机最高的访问权限,并可接收其他用户的请求,并颁发访问令牌等。
Local Service帐号:本地服务帐号。是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。Local Service账户通常可以访问Local Service、Everyone组还有认证用户有权限访问的资源
Network Service帐号:网络服务帐号。是预设的拥有本机部分权限的本地账户,它能够以计算机的名义访问网络资源。以Network Service账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。Network Service账户通常可以访问Network Service、Everyone组,还有认证用户有权限访问的资源
第二类是业务应用系统服务,例如SQL Server服务,ERP应用服务等,他们是为了满足某一业务应用提供后台支撑。一般我们需要指定某一域帐号来启动此类服务,在微软的活动目录架构下,此帐号往往都是域帐号。而对于域帐号的密码管理,每个企业都有自己的一套规范,
例如:某些企业可能要求域用户的密码:
密码最小长度7位
最长42天更改密码
不能使用最近三次使用过的密码作为新密码
显然运行服务的域帐号也必须每42天更改一次密码,一旦超过42天没有更改,则原密码过期,会造成服务无法正常运行。
对管理员来说,定期更改服务帐号的密码是繁琐的,且服务种类、帐号越多,更加难以管理。有些系统管理员为了管理方便,往往还会设置服务帐号为密码永不过期。这样虽然避免了定期更改密码,减小了工作量,但是长期不更改密码,增加了密码泄露的风险。
而在Windows Server 2008 R2中的托管服务帐号(MSA)出现,解决了这一问题,他是如何实现的,我们来看看。
托管服务帐号
由于对运行的服务的域用户账号密码管理起来较麻烦,因此托管服务帐号(Managed Service Account)应运而生。所谓托管服务帐号,也即委托给操作系统进行管理的帐号。托管服务帐号(MSA)的密码由操作系统自动设定、维护,定期自动更新,并不需要管理员手工干预,对管理员来说,好像此帐号没有密码一样。
托管服务帐号(MSA)的作用
托管服务账号使得服务相互隔离,需要单独进行自动密码管理
减少服务中断,从而降低TCO
对于每服务或每服务器使用单一的托管服务账号(服务账号不能被多台计算机共享)
在Windows Server 2008 R2域功能级别上能更好的进行SPN管理(允许服务器对服务账号的重命名)
托管服务帐号(MSA)的使用
配置和应用托管服务帐号(MSA),需要进行三个步骤:
创建MSA帐号 安装MSA帐号 为服务分配MSA帐号。
1. 创建MSA帐号:
MSA帐号的创建需要通过PowerShell的New-ADServiceAccount命令创建。
创建完成后,可以在AD用户与计算机中看到刚才创建的MSAtest帐号。
2. 安装MSA帐号
创建帐号完成之后,就可以进行MSA帐号的安装操作了。在一台Windows Server 2008 R2的成员服务器或Windows 7的客户端计算机上安装托管服务账号,使用PowerShell中的Install-ADServiceAccount命令,需要注意的是,
注意:
1) 托管服务帐号(MSA)仅支持Windows Server 2008 R2或Windows 7的操作系统,对早期版本的操作系统,不做支持。
2) 一个托管服务帐号(MSA)仅能安装到一台计算机上,不能被多台计算机共享。也即意味着MSA帐号并不支持群集服务。
3. 为服务分配MSA帐号
以Windows Server 2008 R2成员服务器为例。
首先打开服务控制管理器,展开配置-服务,在右侧双击所需配置的服务,在登录标签页下,选择“此账户”-“浏览”,导航到之前创建的MSA帐号,点击确定。使用该服务以选定MSA帐号运行,结果如下图所示,
注意:
1) 默认情况下,后台服务并不允许设置一个密码为空的帐号来启动,但唯独MSA帐号例外,其实MSA帐号其实是有密码的,但管理员无需设置而已。
托管服务帐号(MSA)的注意事项
使用托管服务帐号,大大简化了企业内部服务帐号的管理工作,但也有一些注意事项。
赋予MSA合适的访问权限是非常关键的
指派权限给MSA就像指派权限给一个用户服务账号
SCM给MSA通过logonAsService赋予local system权限
安装管理器不会让你指定一个没有密码的账户
使用一个标准服务器账号进行安装
给一个MSA复制权限
在SCM中更改服务来使用MSA
计划作业不能以托管服务账户运行
因为MSA帐号只能安装在一台计算机上,不能被多台计算机共享,所以托管服务账号不能使用在群集服务中
如果域功能级别是Windows Server 2008 R2, 服务账号的SPN将会在服务账号被重命名时更新。
通过以上介绍,我们了解了有关托管服务帐号(MSA)的基本概念,创建方法,使用场景等,希望在合适的场合下,大家可以正确使用。