使用TLS连接时,如何向客户端授予权限



我正在使用TLS对登录到我的服务器的客户端进行身份验证。

我想设置一些基于角色的访问,这样当他们登录时,他们只能根据自己的角色访问某些信息。

实现这一目标的最佳方法是什么?您可以在创建客户端证书时指定角色吗?你是根据客户的其他属性来做的吗?

谢谢!

可以将角色信息放入证书中(作为自定义X.509v3扩展(,但如果您需要更改他们的角色,则需要吊销并重新颁发证书。这似乎让人头疼。

最好将"身份验证"one_answers"授权"分开处理。将证书用作"身份验证";即证书证明他们是DN和SAN中列出的用户,然后您在"授权"服务/数据库中查找该DN,该服务/数据库告诉您该用户应该拥有什么权限。如果你真的很喜欢,授权服务可以返回一个带有用户名/DN和权限的签名JWT,有点像自定义的SAML/OIDC声明。

作为奖励,如果您决定在未来添加替代身份验证方法,如API密钥、MFA等,该系统将很好地扩展。

相关内容

  • 没有找到相关文章

最新更新