0

是否可以在信任库中使用 root-ca 证书配置 WildFly 13 客户端证书身份验证?客户端将使用由该根签名的证书。

这让我想知道:在这个文档中https://ctomc.github.io/docs-playground/WildFly_Elytron_Security.html他们说:

IMPORTANT: The decoded principal * MUST* must be the alias value you set in your server’s truststore for the client’s certificate.

这意味着我可以将解码器配置为映射 CN 以外的属性,这将指向我的信任库中的 root-ca 别名,并且所有客户端证书都会有此属性指向 root-ca 别名。
但是,问题是,服务器如何知道将哪个用户映射到该证书,因为它将这个“其他”属性映射到信任库中的同一个证书?

4

2 回答 2

2

我认为自https://issues.jboss.org/browse/ELY-1418以来,您尝试实现的目标是可能的,这意味着自 WF14 以来。

从 ELY-1418 开始,您不必将用户证书保存在 keystore-realm 中。

于 2018-09-25T20:09:13.407 回答
1

无论您使用 CLIENT_CERT 机制还是您自己的自定义机制,它起作用的关键是

  1. 不要在您的 elytron/server-ssl-context 中配置安全域。
  2. 在您的 elytron/security-domain 中,使用领域,如 LDAP 领域或任何其他领域来提供授权。不要在您的 elytron/security-domain 中使用以下聚合领域:(aggregate-realm name="CustomRealm" authentication-realm="keystorebackedRealm" authorization-realm="...")
  3. 如果您使用 CLIENT_CERT 机制,请按照http://docs.wildfly.org/15/WildFly_Elytron_Security.html此处记录的步骤操作。但是上面的文档中有一个错误。创建 /subsystem=elytron/configurable-http-server-mechanism-factory=configured-cert:add(http-server-mechanism-factory=global, properties={org.wildfly.security.http.skip-certificate- verify=true}),你需要在你的 elytron/http-authentication-factory 中引用它。创建 elytron/http-authentication-factory 的命令是正确的,但示例输出仍然引用全局工厂。
  4. 如果您使用自定义机制,请确保跳过身份验证检查,因为这是通过 ssl 握手完成的。
于 2019-03-19T20:57:17.060 回答