Keycloak前端和后端客户端

时间:2020-09-14 13:52:38

标签: keycloak keycloak-rest-api

这与keycloak客户端有关。我的前端连接到公共客户端,后端连接到机密客户端。 我可以登录并获取代码,因为我通过打开“启用标准流”来使用response_type = code。 此代码重定向并返回我Idtoken,refreshtoken和令牌。 现在,我需要与保密的后端进行通信,我想使用从前端客户端收到的一些值来对用户进行身份验证。

我该怎么做?

这是我的前端和后端配置

前锋

{
   "realm": "xyz",
   "auth-server-url": "http://localhost:8333/auth/",
   "ssl-required": "external",
   "resource": "frontend-app",
   "public-client": true,
   "confidential-port": 0,
   "enable-cors": true
}

BACKEND

keycloak.auth-server-url=http://localhost:8333/auth
keycloak.realm=xyz
keycloak.resource=backend-app
keycloak.principal-attribute=preferred_username
keycloak.bearer-only=true
keycloak.credentials.secret=xxx-xxx-xxx

this is from realm setting

1 个答案:

答案 0 :(得分:0)

这可能会对某人有所帮助。 我的后端服务是带有弹簧安全性keycloakAuthenticationProvider的springboot项目,它对从前端公共客户端收到的令牌进行身份验证。

从前端拨打电话

reshape(
  setNames(data, gsub("(\\d+)$", "\\.\\1", names(data))),
  direction = "long",
  varying = 2:ncol(data)
)

致电后端

 axios({
                    method: 'GET',
                    url: '/api/authenticate',
                    headers:{'Authorization': 'Bearer '+keycloak.token+''}

                }).then((r) => {
                    console.log("response",r)
                })

但是我仍然无法通过keycloak服务器提供的../token端点在邮递员上正确使用它。 无论如何我的工作都完成了。