Kerberos认证在企业门户使用非标准端口时失效
我们根据白皮书Microsoft Dynamics AX 2009 White Paper: Configuring Kerberos Authentication with Role Centers开始配置
然而即使Kerberos 和SPNs配置正确,如果您有以下组件运行在Windows Server 2008服务器上 , 您仍然可能碰到认证问题:
- Microsoft SQL Server 2005 或者 2008 (包括数据库引擎,报表服务和分析服务)
- Microsoft Office SharePoint Server 2007 或者Microsoft Windows SharePoint Services 3.0
我们参照了以前博文给出的小技巧:
https://blogs.technet.com/b/axchina/archive/2011/02/15/kerberos-kpi.aspx
尽管如此,客户机连接企业门户网站仍然无法成功。问题发生在启动企业门户站点后,我们碰到了认证弹出框和401错误(访问拒绝)
On SharePoint Server 2007 our Enterprise Portal was not installed on port 80 (standard port) but on 82 port. On port 80 we had different page which needed to be working correctly which was running on application pool using different identity than our bc proxy account. In our case our SPN for Sharepoint server looked following:
在SharePoint Server 2007上,我们的企业门户并没有安装在80端口(标准端口),而是使用了82端口。在80端口上,我们有需要正常运作的其它页面,而运行该页面的应用程序池并没有使用我们的bc代理帐号。在我们这个案例中Sharepoint服务器的SPN配置如下:
HTTP/{server name}: {port number} {application pool account}
HTTP/{the server fully-qualified domain name}:{port number} {application pool account}
因此对于contonso域情况如下:
HTTP/EnterprisePortal1:82
HTTP/EnterprisePortal1.contoso.corp.contoso.com:82
问题的原因在于Wininet.dll文件没有把端口号传递给目标网络站点,因此Kerberos票据是其它帐号生成的。
如果您使用的IE版本低于IE7,解决方案是安装修复并实施https://support.microsoft.com/kb/908209链接中"更多信息"板块中的变更。
如果您使用的IE版本高于IE7,解决方案是实施https://support.microsoft.com/kb/908209链接中"更多信息"板块中的变更。
如果您实施了https://support.microsoft.com/kb/908209链接中的变更,您会发现IE访问工作正常,但AX中还是有错误。要想解决该问题,您需要在注册表中加入新的键值:
- 1. 点击开始-〉运行-〉regedit-〉ok
- 2. 在左侧面板中,找到并点击下列注册表子键
- 3. 对于32位系统
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_INCLUDE_PORT_IN_SPN_KB908209
- 4. 对于64位系统
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FeatureControl\FEATURE_INCLUDE_PORT_IN_SPN_KB908209
- 5. 在编辑菜单,选择新建-> DWORD Value
- 6. 输入ax32.exe并回车
- 7. 在编辑菜单点击修改
- 8. 在数据值框输入1并点击ok
- 9. 退出注册表编辑器
原文地址: