【问题标题】:Keycloak security for Spring base rest apisSpring base rest apis 的 Keycloak 安全性
【发布时间】:2015-12-03 23:10:55
【问题描述】:

我想将 keycloak 安全功能集成到基于 Spring Boot 的 rest api 中。 我正在使用 KeyCloak 1.3.1 Final。 现在这是纯粹的基于休息的 api,我正在通过 postman 进行测试

我的 rest api 得到了保护,当我尝试访问它时,确实要求我授权,但我无法执行我的请求。基本上被我的 api 锁定了。

我会快速列出我已经做过的事情

  1. 创建了一个 spring boot rest api 并对其进行了测试。效果很好。
  2. 为 KeyCloak 修改了我的 gradle 并按照 document 进行了配置
  3. 为“仅承载”应用程序配置了我的 keyCloak
  4. 我尝试生成访问令牌,但无法生成。因此,我在 keycloak 中使用“机密”创建了另一个客户端,并使用该客户端生成访问令牌(两个客户端都指向同一个应用程序。不确定这是否正确)
  5. 使用此访问令牌,我正在尝试进行 api 调用,但得到 401 我再次使用这个document

我是 keycloak 和 spring 的新手。


所以我想在这里问的是,我们如何生成访问令牌以在类似于此处的场景中测试 rest api。

KeyCloak 上任何可以帮助我的有用资源。到目前为止,我不知道问题出在哪里?是我的 api 还是我配置 KeyCloak 的方式。 另外,由于我是 Spring 新手,我只是找不到关于如何为 Spring Boot 配置 cloak 的体面文档。如果你也能帮忙的话。


更进一步,我在 KeyCloak 邮件列表中得知 Spring Boot 适配器仅支持基本身份验证,因此我决定将 Spring 安全适配器本身合并。 我这样做了,当我运行应用程序并提供凭据时仍然无法使其工作。然而,有趣的事情正在发生。我被重定向到http://127.0.0.1:8090/sso/login 我仔细检查了它,这不是我提供的重定向网址。 ??? 知道为什么吗? (我又是新手,在这个项目中学习弹簧和安全性。所以请多多包涵。)

【问题讨论】:

    标签: rest spring-boot keycloak


    【解决方案1】:

    所以在花了相当多的时间并从 keycloak 用户列表中获得一些帮助之后,我就是如何让它工作的。

    1. 使用 Spring Security 而不是 spring boost 安全适配器(正如我在编辑中已经提到的,引导适配器仅用于基本身份验证)

    documentation 很好地解释了其他所有内容。

    我仍在测试整个事情,并将记录下来以供将来参考。

    【讨论】:

    • Anunay,您能否描述一下您是如何设法修复重定向到 127.0.0.1:8090/sso/login 并获得正确的令牌的?
    • 所以我们需要注意的事情很少,首先我们使用仅承载应用程序,要生成令牌,我们与其中一个机密应用程序对话并获取访问令牌(确保重定向网址设置正确)。如果你有访问令牌,你应该能够通过你的方式。你能告诉我你在哪里遇到问题吗?也许我可以贡献更多
    • 很久了,但这里是我为小demo写的示例
    猜你喜欢
    • 2017-09-16
    • 2014-02-24
    • 2022-09-28
    • 2015-03-18
    • 2017-12-05
    • 2016-01-24
    • 2015-07-02
    • 2016-08-05
    • 2019-09-13
    相关资源
    最近更新 更多