SharePoint 使用客户端证书为没有 Active Directory 帐户的用户声明身份验证
Posted
技术标签:
【中文标题】SharePoint 使用客户端证书为没有 Active Directory 帐户的用户声明身份验证【英文标题】:SharePoint claims authentication using client certificates for users who don't have Active Directory accounts 【发布时间】:2020-10-21 10:08:25 【问题描述】:我正在尝试让没有 Active Directory 帐户的用户使用 SharePoint 2019(本地)进行客户端证书声明身份验证。
内部用户已经通过映射到 AD 用户的表单身份验证向 SharePoint 进行身份验证,并且他们的声明流向 SharePoint。但现在会有很多外部用户拥有客户端证书 (X.509),但没有可映射到的 AD 帐户。
我已经配置了 IIS 设置,因此 SharePoint 要求提供客户端证书并尝试使用选定的证书进行身份验证,但这就是我碰壁的地方。
我认为该解决方案将涉及一些自定义 .NET 代码,这些代码通过检查一些证书值来验证客户端证书,并且链中最顶层的根证书与指纹或颁发者的预期匹配。
客户端证书通过验证后,我可以映射到通用 AD 用户(想想 HR 部门或会计部门),然后以某种方式将一些声明和身份验证内容推送到 SharePoint。
我正在使用 SharePoint 声明查看器 Web 部件来查看当前用户的声明,一旦经过身份验证就可以知道声明的来源和价值,因此我应该能够将表单身份验证登录与客户端证书登录进行比较这已经完成了。
我的问题是:
-
这个解决方案概念是正确的方法吗?如果没有,有什么更好的方法来考虑这个问题?
如何构建自定义身份验证代码(是成员资格提供程序、自定义 STS、自定义声明提供程序)?是否有用于 SharePoint 期望调用的界面和事件的 SharePoint 2019 模板?
如何将自定义身份验证代码部署到 SharePoint?
【问题讨论】:
【参考方案1】:有IIS客户端证书映射认证:https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/iisclientcertificatemappingauthentication/
我没有将它与 SharePoint 一起使用,但它允许 IIS 对客户端证书进行身份验证,从而向用户提供与任何其他身份验证一样的身份验证(例如 AD 集成客户端证书)。映射在 web.config 文件中而不是 AD。
【讨论】:
以上是关于SharePoint 使用客户端证书为没有 Active Directory 帐户的用户声明身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Sharepoint 2010 和 Silverlight Web 部件 SL 版本