具有不同于 UPN 的 CN 和使用者备用名称的 ADFS 客户端证书身份验证



我正在尝试使用客户端证书身份验证为SharePoint应用程序实现客户端身份验证。

用户的证书由外部证书颁发机构颁发,我们通过名称映射CN的证书值将证书映射到活动证书中的用户。但是,证书的 CN 与活动目录中的 UPN 不匹配,我无法控制 CN 的创建方式(外部 CA(。

当用户尝试通过客户端证书登录时(我们使用证书启用外部身份验证 + 将所有根 CA 添加到受信任的存储区,以便可以信任客户端证书(,系统会提示用户选择证书,之后,他们会收到以下错误:

联合身份验证服务在处理 WS 信任请求时遇到错误。

请求类型:schemas.microsoft.com/idfx/requesttype/issue

其他数据 异常详情:

System.ComponentModel.Win32Exception (0x80004005(:用户名或密码不正确,Microsoft.IdentityModel.Tokens.X509SecurityTokenHandler.KerberosCertificateLogon(X509Certificate2 certificate( at Microsoft.IdentityModel.Claims.WindowsClaimsIdentity.CertificateLogon(X509Certificate2 x509Certificate( at Microsoft.IdentityModel.Claims.WindowsClaimsIdentity.CreateFromCertificate(X509Certificate2 certificate, Boolean useWindowsTokenService, String issuerName( atMicrosoft.IdentityModel.Tokens.X509SecurityTokenHandler.ValidateToken(SecurityToken token( at Microsoft.IdentityServer.Service.Tokens.MSISX509SecurityTokenHandler.ValidateToken(SecurityToken token( at Microsoft.IdentityServer.Web.WSTrust.SecurityTokenServiceManager.GetEffectivePrincipal(SecurityTokenElement securityTokenElement, SecurityTokenHandlerCollection securityTokenHandlerCollection( atMicrosoft.IdentityServer.Web.WSTrust.SecurityTokenServiceManager.Issue(RequestSecurityToken request, IList1& identityClaimSet, List1 extraalClaims(

确保备用 ID 匹配与证书的指纹完成。

根据您的错误消息,一些可能的情况包括:

  • 您的 ADFS 服务帐户无法从用户读取 pwdlastset 值 在子域中 - 检查有效权限。
  • 子域中的用户从未设置过密码,或者 pwdlastset 的值设置为非常大或非常小的值,无法继续 文件时间 - 如果为用户预配了 在 具体方式。

在子域中手动创建用户,并查看该用户是否可以登录。如果不能,请禁用对象的继承,并将读取所有属性权限分配给服务帐户 - 删除用户的任何拒绝权限。

最新更新