我正在尝试为没有 Active Directory 帐户的用户使用 SharePoint 2019(本地)进行客户端证书声明身份验证。
内部用户已经通过映射到 AD 用户的表单身份验证向 SharePoint 进行身份验证,并且他们的声明流向 SharePoint。但是现在会有很多外部用户拥有客户端证书(X.509),但没有 AD 帐户可以映射。
我已经配置了 IIS 设置,因此 SharePoint 要求提供客户端证书并尝试使用所选的证书进行身份验证,但这就是我碰壁的地方。
我认为该解决方案将涉及一些自定义 .NET 代码,这些代码通过检查一些证书值来验证客户端证书,并且链中最顶层的根证书与指纹或颁发者的预期相匹配。
验证客户端证书后,我可以映射到通用 AD 用户(想想 HR 部门或会计部门),然后以某种方式将一些声明和身份验证内容推送到 SharePoint。
我正在使用 SharePoint 声明查看器 Web 部件查看当前用户的声明,一旦通过身份验证就可以知道声明的来源和价值,因此我应该能够在完成后将表单身份验证登录与客户端证书登录进行比较.
我的问题是:
- 这个解决方案概念是正确的方法吗?如果没有,有什么更好的方法来考虑这个问题?
- 如何构建自定义身份验证代码(是成员资格提供程序、自定义 STS、自定义声明提供程序)?是否有用于 SharePoint 期望调用的接口和事件的 SharePoint 2019 模板?
- 如何将自定义身份验证代码部署到 SharePoint?