【问题标题】:Keycloak Certificate AuthenticationKeycloak 证书认证
【发布时间】:2020-10-14 16:51:28
【问题描述】:

我想要在 keycloak 中进行证书身份验证的身份验证流程,并遵循此 docs from keycloak

我使用这些命令生成了密钥库和信任库

keytool.exe -genkey -keyalg RSA -alias localhost -keystore keystore.jks -storepass password123 -validity 360
keytool.exe -export -alias localhost -file localhost.cer -keystore keystore.jks
keytool.exe -import -v -trustcacerts -alias localhost -file localhost.cer -keystore truststore.jks

并且还在 xml 文件中进行了更改,现在在 troubleshooting part 我不知道如何生成 client_cert.crtclient_cert.key。还提到它们需要采用 .pem 格式。

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: ssl keycloak


    【解决方案1】:

    我假设您想要用户和 keycloak 之间的相互 SSL ,最终我使用了wildfly官方文档,它终于奏效了!

    源代码:https://docs.wildfly.org/18/WildFly_Elytron_Security.html#configure-ssltls

    【讨论】:

    • 是的,我浏览了该链接并发现它很有用。接下来我想要一个像dzone.com/articles/securing-rest-apis-with-client-certificates 这样但使用keycloak 的应用程序。知道我该怎么做吗?
    • 在 wildfly 文档中,按照“4.3.2. 在 WildFly 中为应用程序启用双向 SSL/TLS”,您将获得与示例中相同的配置。尝试访问 api 的用户将被重定向到 keycloak,它将请求客户端证书,并执行相互 ssl 握手。
    【解决方案2】:

    根据您提供的信息,我建议您仔细检查是否遵循了所有说明。

    您是否配置了 X509 浏览器流程?

    应选择此流程通过 KC> Authentication> Bindings 进行身份验证

    源身份也是将证书映射到用户的重要部分,因此请检查它是否配置正确。

    在我这边,我尝试了按序列号进行映射,它有效。

    我必须在 Keycloak > 用户 > [testuser] > 属性中创建一个名为 usercertificate 的用户属性,其值为 0D(我的证书序列号)。 证书已导入我的浏览器,在身份验证阶段,我的浏览器会弹出浏览器证书以供选择。

    【讨论】:

      猜你喜欢
      • 2019-08-12
      • 2021-01-19
      • 2022-06-30
      • 2015-09-19
      • 2012-12-09
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多