需要适用于目录服务映射(Active Directory)的客户端证书?

时间:2009-06-03 21:32:47

标签: sharepoint iis-6 sharepoint-2007

我的MOSS 2007实例(IIS 6)使用Windows身份验证和IIS'目录服务映射(针对Active Directory),允许用户仅使用她的智能卡客户端证书进行身份验证,无需任何用户名/密码,无论是什么(如果任何)客户端工作站加入的域。 IIS实例设置为需要客户端证书。

我的理解是,为了找到(在Active Directory中)与客户端证书关联的帐户,它必须能够从中读取“用户原则名称”(有时称为“用户登录名”)。 / p>

我的用户的智能卡有两个由同一根CA颁发的客户端证书。一个指定UPN。另一个没有。她可以在访问网站时选择任一证书。如果她选择没有UPN的证书,则验证肯定会失败。

如何使浏览器的证书选择对话框显示证书,哪些IIS至少有机会与帐户匹配(同样:DSM& AD )?

更专业地说:如何将MOSS用户的客户证书选择限制为在“主题备用名称”字段中具有UPN的选项?

2 个答案:

答案 0 :(得分:1)

我认为你不能改变这一点。我相信证书选择屏幕是Internet Explorer的一部分。

如果用户选择没有关联UPN的证书,您可以提示用户选择其他证书,然后重试。

编辑:由于进入MOSS安全框架可能很困难,您可以将其实现为HTTPHandler并将其添加到MOSS根web.config。

当用户请求进入时,处理程序获得第一个dib,如果证书中缺少UPN,则可以重定向到“再试一次”页面。

“再试一次”页面必须通过打开另一个窗口来重试请求,以获得另一个证书提示。

答案 1 :(得分:1)

快速思考一下,如果您对可能稍微不那么恼人的重新验证解决方案持开放态度。要注意:几个IF!

  • 如果您可以依赖用户的浏览器 是Internet Explorer 6 SP1或
  • 如果你可以认为 他们的浏览器将运行脚本
  • 如果您可以清除ALL 认证信息(即, 所有需要身份验证的网站 需要重新认证)

  • 然后您可以使用document.execCommand('ClearAuthenticationCache') javascript代码。 broswer应该通过清除身份验证缓存来执行此代码 - 所有缓存的用户名和密码,所有缓存的客户端证书等。

如果用户没有运行脚本或运行IE以外的其他东西,那么(据我所知)这不会运行。请记住,所有其他选项卡(以及同一进程中的窗口)共享身份验证缓存。如果页面/站点需要身份验证,则此命令将要求用户重新进行身份验证,但至少在关闭所有浏览器窗口后,他们不必再次导航...

玩得开心!

P.S。 - 它不应影响STORED用户名/密码组合,不应影响任何可能为智能卡缓存的PIN号,但很可能要求用户按OK提交用户名/密码,或选择特定证书试。