SPN(Service Principal name)服务器主体名称。
SPN 是服务在使用 Kerberos 身份验证的网络上的唯一标识符。它由服务类、主机名和端口组成。在使用 Kerberos 身份验证的网络中,必须在内置计算机帐户(如 NetworkService 或 LocalSystem)或用户帐户下为服务器注册 SPN。对于内置帐户,SPN 将自动进行注册。但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册 SPN。
这是我抄自百度百科:http://baike.baidu.com/view/707988.htm。因为我在网上搜索了之后,只有百度的这段简单明了用中文几句话就把这个概念解释清楚了,特此存档。
域控制器除了要做域控外,还要作为CA。
下面开始。
在“服务器管理器”中添加角色。
添加“Active Directory域服务”角色。
添加必须的功能。
添加完成。
使用“Active Directory域服务安装向导”初始化AD服务。
在新林中新建域。
选择林功能级别。不是必须的。
选择“是”。
创建完成。点击“完成”以后,重启虚机。
重启以后继续添加角色。
点击“添加角色”。
选择“Active Directory证书服务”。
选择“证书颁发机构Web注册”的时候,会提示添加所需的角色服务。
选择“企业”CA。
选择“根CA”。
选择“新建私钥”。
一路选择“下一步”。
开始安装。
CA安装完成。
本节我们完成了域控服务器上面创建域和创建CA的操作。
公司需要做Lync的开发,闲来没事在虚机里面做一个Lync2010标准版的开发环境。这个环境除了最基本的消息功能外,还要有消息存档的功能。
这样,规划中我们需要两个虚机,一个叫做dc,作为域控制器。一个叫做lync,作为Lync服务器。
域控制器的内存为1GB,IP为192.168.56.50,机器名为dc。
Lync服务器的内存为3GB,IP为192.168.56.51,机器名为lync。
准备好虚机,我们就可以开始下面的步骤了。
这几个组是域环境下的,他们的作用范围不同:
1、通用组
通用组的成员可包括域树或林中任何域的其他组和账户,而且可在该域树或林中的任何域中指派权限;当域功能级别设置为Windows2000混合模式时,不能创建具有通用组的安全组。
2、全局组
全局组的成员可包括其所在域中的其他组和账户,而且可在林中的任何域中指派权限;
3、本地域组
本地域组的成员可包括Windows Server2003、Windows 2000或WindowsNT域中的其他组和账户,而且只能在其所在域内指派权限。
我在使用CredentialCache的Add方法的时候,不知道其他的几个authType怎么来写。在Google的帮助下,从微软的Support网站找到一些提示:
"Basic":基本身份认证(明文传送用户名和密码)
"Digest":Windows域服务器的摘要式身份认证
"Negotiate":Windows集成身份认证(至少在这种认证方式下可用)
希望对调用有身份认证要求的WebService的朋友有帮助!
问微软工程师的第二个问题“额外的域控制器是否都可以升级为GC”。
是的,所有域控制器都可以提升为GC。操作步骤如下:
1. 在第一台DC上打开“Active Directory Sites and Services”
2. 展开“Sites\Default-First-Site-Name\Servers\<第二台DC的名字>\NTDS Settings”
3. 右键单击NTDS Settings,选择Properties
4. 在General页面中,将“Global Catalog”前的勾勾上,点击OK。
5. 重新启动第二台DC。
昨天问微软的工程师一个问题“额外域控制器上的DNS如何配置?”,答案如下:
1. 在添加/删除程序->添加/删除Windows组件中添加DNS服务。
2. 在第二台DNS服务器上,打开DNS服务器管理控制台。
3. 展开正向搜索区域,右键点击正向搜索区域,选择新建区域,单击下一步。
4. 选择“在Active Directory中存储区域”,选择创建“主要区域”,单击下一步。注:只有选择“在Active Directory中存储区域”,才能在有主要DNS区域的DNS域中创建第二台DNS服务器。
5. 选择DNS的复制范围,建议选择“至Active Directory林中的所有DNS服务器”,单击下一步。 注:在只有一个域的环境下,至林中与至域中所有DNS服务器是一样的。
6. 输入域DNS名称,单击下一步。
7. 选择“允许安全动态更新”,单击下一步,点击完成,第二台DNS服务器配置完成。
8. 返回DNS服务器控制台,展开正向搜索区域,右键点击新建区域,选择属性,单击区域复制,勾选“允许区域复制”,选择“到所有服务器”,单击确定。这样,DNS服务器之间的DNS数据将会同步更新。
这几天一直写一个在SPS当中修改AD用户密码的Webpart。我向鞠海洋大哥要来了他写的代码,仔细研究了,自己也动手写了一个。但是包括鞠大哥写的和我写的都不用正确运行,总是捕捉到异常信息。不同的是,鞠大哥的代码可以显示用户的displayName属性,而我的显示不了。
昨天就想起来在ASP.NET中测试一下吧,毕竟ASP.NET当中条是要容易些。我有在写Webpart之前,先用ASP.NET预演的习惯。但是却发现ASP.NET当中不仅可以显示displayName属性,连密码也可以修改了。于是又仔细看了鞠大哥的代码,发现他并不是从AD用户的displayName属性显示的用户名称,而是通过SPS的CurrentUser对象来获取的用户名称。这样在仔细测试后可以发现,在SPS的Webpart当中是没有办法读取AD内数据的,即使将SPS网站的安全信任级别提高到了“Full”也是不行的。
详细的错误信息:
System.Runtime.InteropServices.COMException (0x80070035): 找不到网络路径。 at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) at System.DirectoryServices.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_NativeObject() at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) at nChi.WebParts.Utility.UserCtrl.chgPwd()
以此猜测这可能是SPS把有关的COM调用给屏蔽到了…
近期评论