标签: keycloak-nodejs-connect

撤销 Keycloak 访问令牌

我正在使用 Keycloak 来保护我的 React 前端和 node.js 后端。这些客户端使用基于角色的授权进行保护。

我的前端应用程序在 Keycloak 中注册为公共客户端,后端注册为仅承载客户端。当用户登录到前端时,我正在获取该特定用户的访问令牌,并且我正在使用该访问令牌来调用后端 api 层。

当用户从前端注销时,我正在使用 keycloak 对象注销方法从 Keycloak 清除该特定用户的前端客户端会话。这工作正常,用户正在注销并重定向到 Keycloak 登录页面。

但问题是我仍然可以使用该注销用户的访问令牌来调用后端 api。即使用户注销,访问令牌仍然有效。

我尝试了这个端点来撤销用户访问令牌。但没有工作 /auth/admin/realms//users/

有没有办法在 Keycloak 中撤销特定用户的访问令牌?

node.js reactjs keycloak keycloak-nodejs-connect keycloak-rest-api

5
推荐指数
2
解决办法
6725
查看次数

带有“授权码”流程的 Keycloak 自定义登录页面

我们正在尝试将 keycloak 与本机应用程序集成,但使用 keycloak 的登录/注册 oauth2 流程显示默认登录页面,该页面不符合我们对材料设计用户屏幕的要求

我发现自定义登录屏幕的选项很少:

  1. 自定义keycloak提供的主题或将新主题部署到JBoss
  2. 添加一个nodejs api服务器来与移动应用程序交互并使用keycloak.grantManager.obtainDirectlyAPI​​,但这grantType=passwordkeycloak-connect包中使用 - keycloak-connect有关obtainDirectly 的更多信息

第一个选项有点乏味,所以我们实现了第二个选项,但是它附带了grantType=passwordoauth 不推荐的流程

我想知道 keycloak 是否有任何解决方案来使用自定义登录Authorization Code

keycloak keycloak-nodejs-connect

5
推荐指数
0
解决办法
1632
查看次数

Keycloak - 通过api请求用户验证电子邮件地址

期望的结果

用户应该能够注册,然后他应该能够通过移动应用程序登录(如果电子邮件地址未验证则发生),该应用程序会显示一条警告,表明电子邮件未验证并且某些应用程序功能被禁用

我拥有的

  1. 具有用户注册和登录功能的本机移动应用程序
  2. 应用程序使用的 api 服务器
  3. 钥匙钟实例

注册功能由api 服务器完成,它是一个 keycloak 机密客户端,可以创建用户 登录移动应用程序直接通过对 keycloak 的后调用来完成/token返回访问令牌来完成的

一切都好,现在我有一个可以由我的 api 服务器使用的令牌,并且我知道它是一个具有未经确认的电子邮件地址的注册用户

问题是用户没有收到任何欢迎/确认电子邮件,但是:如果用户转到 keycloak LogIn 网页并尝试使用新创建的用户登录,那么他会收到来自 Keycloak 的电子邮件,但对于通过 api 登录,则没有电子邮件。那么有什么办法解决这个问题吗?难道我做错了什么?

请求用户验证电子邮件的唯一方法是请求“验证电子邮件”操作,但如果我这样做,那么用户将无法再使用未经验证的电子邮件登录

登录通过POSTto/auth/realms/realm/protocol/openid-connect/token和 with完成{grant_type: 'password', password: 'string', username: 'string'}body完成的

呼叫的行为似乎与PUT /{realm}/users/{id}/send-verify-email请求相同Verify Email/execute-actions-email

keycloak keycloak-nodejs-connect keycloak-rest-api

5
推荐指数
1
解决办法
3300
查看次数

通过 iFrame 访问时出现 Keycloak LOGIN_ERROR

尝试使用 iFrame 访问 Keycloak 时遇到登录问题。我收到以下错误:

2020-08-29 04:06:50,976 WARN  [org.keycloak.events] (default task-9654) type=LOGIN_ERROR, realmId=34d62e4f-f267-4f1a-8ec7-075e5046543b, clientId=null, userId=null, ipAddress=192.168.66.183, error=invalid_code
Run Code Online (Sandbox Code Playgroud)

尝试通过 chrome 浏览器访问它时工作正常,

2020-08-29 04:08:44,310 INFO  [org.keycloak.events] (default task-9658) type=LOGIN, realmId=34d62e4f-f267-4f1a-8ec7-075e5046543b, clientId=dxp-frontend, userId=6db38019-c323-4071-abc2-a39c705ed122, ipAddress=192.168.66.183, auth_method=openid-connect, auth_type=code, redirect_uri=https://dxp-model1.devopnet.in.telstra.com.au/csrtb/, consent=no_consent_required, code_id=ac77dc9d-9237-4c17-b74d-9f3c9582ebbd, username=dxpcsr1, authSessionParentId=ac77dc9d-9237-4c17-b74d-9f3c9582ebbd, authSessionTabId=3K3KgKVc2bc
2020-08-29 04:08:45,811 INFO  [org.keycloak.events] (default task-9658) type=CODE_TO_TOKEN, realmId=34d62e4f-f267-4f1a-8ec7-075e5046543b, clientId=dxp-frontend, userId=6db38019-c323-4071-abc2-a39c705ed122, ipAddress=192.168.66.183, token_id=15905d22-c77f-4f6d-bce4-63c36ed04f0b, grant_type=authorization_code, refresh_token_type=Refresh, scope='openid profile email', refresh_token_id=a0b3437b-c2b3-4179-ad24-833459a847db, code_id=ac77dc9d-9237-4c17-b74d-9f3c9582ebbd, client_auth_method=client-secret
Run Code Online (Sandbox Code Playgroud)

附加信息

使用部署了单个 Keycloak 实例的 K8 集群。

keycloak keycloak-gatekeeper keycloak-nodejs-connect keycloak-connect

5
推荐指数
0
解决办法
2256
查看次数