http://wenku.baidu.com/view/a0a16ea34028915f804dc2f8.html
当VisualSVN 2.7采用Windows用户认证或Windows域认证时,可以使用SVN分级授权工具对VisualSVN的授权功能进行扩展,实现SVN库的创建、分库的分级授权、SVN用户密码修改等。本手册主要描述Windows用户认证的配置方法,关于采用Windows域认证的配置方法请参考《SVN分级授权工具部署手册--Windows域认证》。
本手册环境为Windows 2008 SP1 R2版本,具体安装过程略。需要特别注意的是Windows本地组策略中的用户策略设置不当会影响到通过SVN分级授权工具进行用户管理,建议按照下面的策略设置:运行gpedit.msc启动本地组策略编辑器,把密码复杂度等策略设置好后,执行gpupdate /force命令使策略立即生效。
低于2.6版本的VisualSVN无法使用SVN分级授权工具,本手册环境为VisualSVN Server2.7.5。采用Windows用户认证和Windows域认证需要购买VisualSVN授权(本文仅仅为了说明分级授权工具的安装部署,因此SVN Server采用了特殊方法使之支持Windows用户认证)。
运行VisualSVN Server2.7.5.msi,采用缺省设置安装:
停止VisualSVN Server服务并退出管理控制台。
采用特殊方法使之支持Windows用户认证,正式生产环境请购买商业版授权。
把VisualSVN的认证方式更改为“Use Windows Authentication”。
启动VisualSVN Server服务。
安装vcredist2010_x86.exe和vcredist2010_x64.exe,否则无法显示SVN仓库的结构树:
本分级授权工具支持Oracle、SQL Server、Sybase、MySQL、PostgreSQL六种数据库,本手册采用SQL Server桌面数据库进行部署,使用分级授权自带的配置工具自动安装数据库和部署应用。分级授权工具相关软件如下:
点击PMagicConfig.exe开始安装部署:
自动部署支持SQL Server2008数据库,其余数据库需要手工安装并导入SQL脚本。微软SQL Server 2008桌面版免费,本文采用此方案。
开始自动部署SQL Server 2008桌面版数据库。
SQL Server 2008桌面版数据库部署中不需要认为干预,等待安装完成即可。
自动发布COM+,安装COM+过程中会自动新建一个MagicLtdUser的Windows用户。
部署WebServer服务前需要安装Apache,自动部署会启动Apache的安装,只需要点击下一步缺省安装就可以了。
这儿可以随便输入一些值。
检测到端口冲突(因为SVN服务已经用到了80端口,Apache缺省也使用80),退出即可,部署工具在后面会自动调整可用apache的端口。
自动部署程序调整apache端口后启动apache服务。
完成基本部署并询问是否运行程序。
SVN分级授权工具为绿色软件(向用户发布参考2.6节),第一次运行时会自动下载并配置19个环境支撑文件。
输入用户名和密码后登录系统。缺省的用户登录认证方式为DB认证,稍后需要改成WINDOWS认证。
svnuser1具有分级授权、SVN仓库管理、组织维护、角色维护、授权管理和基础代码管理的权限(调整权限参考3.3节),因此他登录后看到的程序界面如下:
安装MagicService服务,此服务可以实现端口转发、定时从外部系统同步用户到SVN分级授权工具,定时从Active Directory刷新SVN分级授权工具中用户的SID、定时从本地Windows刷新SVN分级授权工具中用户的SID等功能。本文只用到定时从本地Windows刷新SVN分级授权工具中用户的SID这一个功能。
右键点击Windows任务栏应用程序托盘区域的红***标,选择服务控制、启动服务。
程序检测到服务未安装,将询问是否安装服务,点击确定:
在端口映射区域点击右键,选择WEB管理控制台用户管理修改admin的缺省密码:
这个用户名和密码是端口映射WEB管理控制台的的账号,同时这个密码可以供SVN管理员模拟用户身份登录SVN分级授权管理工具,以测试用户是否可以正常使用SVN分级授权管理工具。
更改SVN分级授权的登录认证方式为Windows用户认证。
认证方式改为WINDOWS后,主机名会自动带出来,选择允许用户同步后点击应用设置。
参数说明如下:
SYSUSERNAMES:定时同步程序会根据SVN分级授权工具数据库中不存在的用户删除WINDOWS用户,但SYSUSERNAMES定义的用户除外。
REPO_ROOT_DIR:SVN仓库根目录,缺省为D:\SVNROOT\Repositories,一般不用更改。
REPO_BASE_URL:必须修改,SVN分级授权管理中拷贝URL地址时就根据此参数组成完整的地址,本文环境中需要改成:http://192.168.43.253:80。
ENABLEWINDOWSUSERSYNC:允许用本地Windows账号刷新数据库的SID字段,设置为TRUE。
ENABLEVSSUSERSYNC:是否允许从外部数据源同步用户到VSS(SourceAnywhere),设置为FALSE。
ENABLESVNUSERSYNC:是否允许从外部数据源同步用户数据到SVN,设置为FALSE。
IS_NW:特殊标记请不要修改,设置为FALSE。
把下图中的三个文件发给需要使用SVN分级授权管理的用户即可。
建议放到一个网站下载,下图是利用SVN的apache发布的下载服务:
访问http://192.168.43.253/下载SVN分级授权管理工具客户端程序SvnManage.zip
3.1 用户批量导入
为了简化初始化部门和用户的操作,工具提供了批量导入组织机构的功能,按照如下格式整理成csv格式文件并命名为Sync_Magic_Org.csv放在C:\位置即可导入。第一行为列名称,第二行开始为用户、部门对应关系(目前版本只支持一级部门)。
点击组织机构的根节点,点击右键选择“同步组织机构信息(导入)”菜单。
SVNADMIN用户是SVN的超级管理员,他可以做一般用户无法执行的操作,如给tag目录授权、给已将创建的SVN库修改库名称,可以在SVN分级授权模块设置SVN库的配置管理员等。
此授权是指对SVN分级授权功能的访问控制,如哪些人可以访问分级授权、SVN仓库管理、组织维护。
允许配置管理员角色访问分级授权管理、SVN仓库管理和组织维护;允许全体人员访问分级授权管理。
在SVN分级授权管理工具中添加、修改、删除用户,并同步到Windows,下面做个演示。出Admin和Administrator用户外,系统刚部署好后只有MagicLtdUser一个内置用户(用于运行COM+和WebServer的用户)。
在组织维护选择组织机构,在拥有雇员Tab选项卡上邮件菜单选择重设对应的Windows和Cynthia用户密码(Cynthia作为分级授权用不到,这个功能在2.5节禁用了)。
设置初始化密码后点击确定。
在Windows的用户管理中已经看到SVNADMIN被创建了,此用户属于User用户组。
同样,再把研发部下面的7位同事一次性初始化。
在Windows用户管理中已经出现7位新用户。
管理员可以重置SVN分级授权工具用户和SVN用户的密码。
用户修改密码,修改后登录SVN分级授权管理工具和存取SVN的密码都同步更改。
第一次使用需要准备SVN仓库模板,将模板放到D:\SVNROOT\Template下,文件名为“00000000.开发项目模板”。
启动“SVN仓库管理”,点击“添加”按钮:
选择可以管理这个SVN库的用户,最多可以设置5个。
点击“创建SVN库”,确认SVN库名称(SVNADMIN用户可以在创建前修改)。
SVN库创建成功。
用户登录SVN分级授权管理工具(刚才授权的五个用户中的一个svnuser1),这里以svnuser1登录。点击“分级授权”,点击“查询”,展开需要授权的SVN节点,在右边点击鼠标右键,可以添加用户、删除用户、设置拒绝访问权限、只读访问权限和读/写访问权限,需要注意:
1) 除管理员SVNADMIN外,只能对branches和trunk及其下级目录进行授权。
2) 新增加的用户缺省权限为读/写。
3) 节点权限会覆盖父节点权限。
4) 从父节点继承而来的权限不能删除。
当用户特别多时,可以根据登录名或用户姓名筛选后多选:
缺省加入的用户具有”读/写”权限:
完成授权。存在一个建议删除的用户:这是创建SVN库时SVN自动设置的Administrator对此库的访问权限,建议删除。
选中SVN目录树的节点,点击 “拷贝URL” 按钮会将SVN访问的URL地址复制到Windows剪贴板中,方便在TortoiseSVN等SVN客户端工具中使用。
在下一篇文章中,将讲述采用Windows活动目录进行认证配置的方法,并且将实施高可用配置保证SVN的安全:
1)服务器硬件层面的数据可靠性保障;
2)基于Oracle数据库部署SVN分级授权工具;
3)主域控制器和额外域控制器保证域认证的高可用;
4)SVN采用文件同步的主SVN服务器和备SVN服务器;
5)与外部业务系统的组织机构自动同步;
6)提供AD用户管理接口;
7)备份脚本及Windows备份任务的策略。