【问题标题】:How to protect frontend and rest API with Keycloak如何使用 Keycloak 保护前端和 REST API
【发布时间】:2021-03-08 14:27:23
【问题描述】:

我对 Keycloak 服务器非常陌生,我想用它来保护我的前端应用程序和后端 rest API,它们也在互联网上开放。到目前为止,我所理解和所做的是在 Keycloack 上创建 2 个客户端,1 个用于使用客户端协议(openid-connect)和访问类型(公共)的前端,然后在客户端我使用采用者将用户重定向到 Keycloak 登录页面并进行身份验证并获取令牌。现在对于后端(rest-apis),我创建了一个单独的客户端,它再次使用客户端协议(openid-connect)但具有访问类型(机密)和身份验证流:浏览器流和直接授权流都是直接授权和之后我得到客户端ID和客户端秘密来调用Keycloak rest api。

现在我希望当用户从前端进行身份验证并获取令牌并将标头请求发送到我的 rest API 时,我在这里调用一些 Keycloak rest api 通过提供 client_id 和 client_secret 来验证此令牌。

我正在使用 Keycloak 的以下 api 来验证我在前端生成的令牌:

http://localhost:8120/auth/realms/evva_realm/protocol/openid-connect/token/introspect

但结果是这样的:

{
    "active": false
}

可能是我使用了一些错误的 api 或者整个架构来验证和保护我的后端 api 不正确。有人可以帮我了解问题出在哪里吗?

【问题讨论】:

    标签: authentication keycloak keycloak-services keycloak-rest-api keycloak-connect


    【解决方案1】:

    @user565 我发现这篇中等帖子对我有用。我相信您也可以从中受益。

    它基本上创建了两个客户端,一个用于后端,另一个用于前端。问题是它们通过利用客户端范围、角色和复合角色功能来共享相同的角色。

    希望对您有所帮助:https://medium.com/devops-dudes/secure-front-end-react-js-and-back-end-node-js-express-rest-api-with-keycloak-daf159f0a94e

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 2019-12-25
      • 2021-11-14
      • 2019-12-07
      • 2021-10-25
      • 2018-04-07
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多