使用谷歌浏览器或Safari在Mac上集成Windows Auth(NTLM)

时间:2011-12-23 13:47:43

标签: macos google-chrome iis-7 ntlm

启用了Windows身份验证的IIS7 Intranet站点。当从Windows上的Chrome点击时,传递身份验证工作正常(没有用户/密码提示),但是,Mac上的Chrome会出现提示。由于内部网络使用CAC / PKI,因此没有人拥有密码。

我尝试在网站上切换Windows身份验证以进行协商,但同样的用户/传递提示。

appcmd set config /section:windowsAuthentication /-providers.[value='Negotiate']

任何人都知道OS X上的Chrome解决方案吗?

编辑

OS X 10.6.8

Centrify for Mac将用于通过CAC对(Windows 2008 R2 ActiveDirectory)网络进行身份验证。

编辑2

有一个代理设置,但它被本地内部网站点绕过,所以我认为它不起作用。

还尝试使用 - auth-server-whitelist 命令行开关,但无效。

编辑3

open 'Google Chrome.app' --args --auth-server-whitelist="*DOMAIN.TLD" --auth-negotiate-delegate-whitelist="*DOMAIN.TLD" --auth-schemes="digest,ntlm,negotiate"

不幸的是,Google Chrome for Mac无法在每次加载时指定命令行参数,因此需要制作某种shell脚本。

在登录时运行以下shell脚本是解决Chrome更新和额外文档图标的最终解决方案。

#!/bin/bash
cd /Applications/Google\ Chrome.app/Contents/MacOS/
if [ -f 'Google Chrome.bin' ];
then
   echo "Already Modified"
else
   sudo chmod u+wr ./
   sudo mv 'Google Chrome' 'Google Chrome.bin'
   sudo echo "#!/bin/bash" > "Google Chrome"
   sudo echo 'exec /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome.bin --args --auth-server-whitelist="*DOMAIN.TLD" --auth-negotiate-delegate-whitelist="*DOMAIN.TLD" --auth-schemes="digest,ntlm,negotiate"' >> "Google Chrome"
   sudo chmod a+x 'Google Chrome'
   echo "NTLM Will now work in chrome"
fi

4 个答案:

答案 0 :(得分:4)

目前这不是一个错误。 Mac版Chrome只是不支持/尊重Kerberos策略(“协商”Windows身份验证),除非白名单中的域名和浏览器从命令行触发。查看2011年10月31日发布的链接:

http://code.google.com/p/chromium/issues/detail?id=102339

看起来您可以永久地将域名列入白名单:

http://www.google.com/support/forum/p/Chrome/thread?tid=592eb87350d9d528&hl=en


由于你已经尝试了白名单开关,我看起来更近了,这是一个OSX的事情... 10.7是交换机与Chrome正常工作所必需的。如果没有像Centrify这样的第三方工具,你的10.6版本将无法运行。

不是一个快乐的答案,而是事实。

答案 1 :(得分:2)

我们似乎可以在终端中进行以下配置,

$ defaults write com.google.Chrome AuthServerWhitelist "*.example.com"
$ defaults write com.google.Chrome AuthNegotiateDelegateWhitelist "*.example.com"
$ defaults write com.google.Chrome AuthSchemes "digest,ntlm,negotiate"

答案 2 :(得分:1)

defaults write com.google.Chrome AuthServerWhitelist '<your domain>'将永久允许kerberos到服务器或服务器集(* .mydomain.local)。

答案 3 :(得分:0)