从 vertx 中的客户端证书中提取用户主体

Posted

技术标签:

【中文标题】从 vertx 中的客户端证书中提取用户主体【英文标题】:extract the user principal from client certificate in vertx 【发布时间】:2018-12-13 10:30:39 【问题描述】:

我正在为我的 API 使用 Vertx 框架,并已成功启用 https。

对于用户身份验证/授权,我不想使用客户端证书,即谁可以访问哪些 API。 流程将:

    当客户端命中 API 时,它会将其证书提供给 Vertx 服务器。此证书应包含用户名 CN。 Vertx 服务器应验证客户端证书并从中提取公用名,然后根据此用户名进行授权。

如何读取客户端证书以提取 cn 即用户主体?

【问题讨论】:

【参考方案1】:

如果你有io.vertx.core.http.HttpConnection,你可以写:

connection.sslSession().getPeerPrincipal().getName()

【讨论】:

感谢您的回答。我能够这样做。我的完整场景是我想对我的 Vertx webapp 进行证书身份验证/授权,即需要客户端证书,并且基于客户端证书中的 cn,因此将决定角色/权限。对此的任何指示,实现这一目标的最佳方法是什么。

以上是关于从 vertx 中的客户端证书中提取用户主体的主要内容,如果未能解决你的问题,请参考以下文章

vertx应用程序中的CORS问题不起作用

在 Servlet 中读取客户端证书

如何从 Java 中的 X509Certificate 中提取 CN?

使用 pyOpenSSL 从证书或其他连接信息中提取公钥

从 https 站点获取证书

没有证书的 WCF 用户名