通常,使用客户端证书进行身份验证是通过让一些私有CA颁发客户端证书并在验证客户端证书时仅信任CA来完成的。在这种情况下,受信任的CA和只有此CA可以完全控制证书的主题,这意味着将CN映射到用户是完全正常的并且也是常用的。
如果你出于某种原因想要允许由任意CA发布的证书,那么这样的简单映射就不能像你自己实现的那样完成。在这种情况下,可以完成证书pubkey或证书指纹之间的映射,这当然要求预先知道特定用户期望的确切证书。而且,只要客户端证书因为过期而需要更改,就需要以某种方式更新此映射。