标签: keycloak

keycloak - keycloak 是否有任何端点来获取分页的用户列表

我正在尝试获取分页的用户列表我尝试使用此端点

获取 /admin/realms/{realm}/users

但响应包含所有用户。

keycloak

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

创建 keycloak 容器时获取“/opt/jboss/tools/docker-entrypoint.sh:第 165 行:DB_ADDR:未绑定变量”

我正在尝试为 keycloak 创建一个 docker 容器。但是当我在 docker 快速启动终端中尝试以下命令时:

docker run -it -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

/opt/jboss/tools/docker-entrypoint.sh: line 165: DB_ADDR: unbound variable
Run Code Online (Sandbox Code Playgroud)

经过一番研究,我发现我DB_ADDR还需要传递命令。所以我现在尝试了以下命令:

docker run -it -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_ADDR=keycloak-db -e DB_VENDOR=h2 jboss/keycloak
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到同样的错误。我真的不知道我做错了什么。如果有人可以在这里帮助我,请。谢谢你们。

docker keycloak

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

将 stdin 通过管道传输到 cURL 标头

我正在尝试从 Keycloak 端点获取身份验证令牌并使用它来访问另一个资源。获取令牌不是问题,但将其传递到另一个请求的标头中却是一项不可能的任务,至少在单个命令中是这样:

curl \
    -X POST \
    -d 'client_id=app' \
    -d 'username=username' \
    -d 'password=password' \
    -d 'grant_type=password' \
    -d "client_secret=$APP_SECRET" \
    'http://localhost:9000/auth/realms/realm/protocol/openid-connect/token' \
| \
jq -r '.access_token' \
| \
curl \
    -X GET \
    -H "Accept: application/json" \
    -H "Authorization: Bearer @-" \ # <- read header value from stdin
    -u "username:password" \
    "http://localhost:8080/app/api/"
Run Code Online (Sandbox Code Playgroud)

实现这一目标的替代方法是什么?

curl zsh pipe jq keycloak

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

如何在单个 API 中创建具有多个客户端角色的用户

我想创建一个用户并在 Keycloak 的单个API 中为其分配客户端角色,我已附上详细信息。

我有这个API

http://testkeycloak.com:8085/auth/admin/realms/engineer/users

{   
    "enabled":true,
    "username":"joshbiden",
    "email":"email@gmail.com",
    "firstName":"Josh",
    "lastName":"biden",
    "attributes": 
    {
        "Mobile Number":"3333332332"
    },
    "clientRoles": 
    {
        "name": "DEVELOPER"
    },
    "credentials":
    [
    {
        "type":"password",
        "value":"rollback",
        "temporary":false
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

客户角色 - 详细信息

    {
        "id": "32e432da-d0c0-45f8-a67d-f3146b7a24b4",
        "name": "DEVELOPER",
        "composite": false,
        "clientRole": true,
        "containerId": "343434-7631-4187-ac76-ad78de119b90"
    }
Run Code Online (Sandbox Code Playgroud)

如何将两个客户端的角色分配给用户,我尝试添加用户但面临未知错误。让我知道同样的问题的任何解决方案

keycloak keycloak-services keycloak-rest-api

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

Keycloak 上下文中缺少访问令牌

我正在尝试从邮递员向我的节点 apollo、express 后端发出经过身份验证的请求。我收到一条错误消息,指出用户未经身份验证。当我查看上下文对象时,没有访问令牌并且调用 context.kauth.isAuthenticated() 返回 false。

查看访问令牌,我可以看到它accessToken确实是空白的,但请求标头中确实存在承载令牌。

在此输入图像描述 在此输入图像描述

所以我不确定为什么不包含访问令牌。

我正在向邮递员发出请求,我将令牌包含在请求中,如下所示:

在此输入图像描述

为了获得此访问令牌,我首先向 Keycloak 发出邮递员请求以生成此令牌,如下所示(请注意,我故意不显示这篇文章的用户名和密码

在此输入图像描述

我在上面的邮递员请求中使用了上述访问令牌。

这就是我的index.js文件的样子:

require("dotenv").config();
import { ApolloServer } from "apollo-server-express";
import { ApolloServerPluginDrainHttpServer } from "apollo-server-core";
const { makeExecutableSchema } = require('@graphql-tools/schema');
import { configureKeycloak } from "./auth/config"
import {
  KeycloakContext,
  KeycloakTypeDefs,
  KeycloakSchemaDirectives,
} from "keycloak-connect-graphql";
import { applyDirectiveTransformers } from "./auth/transformers";
import express from "express";
import http from "http";
import typeDefs from "./graphql/typeDefs";
import resolvers from "./graphql/resolvers";
import { MongoClient } from "mongodb";
import …
Run Code Online (Sandbox Code Playgroud)

javascript keycloak apollo-server keycloak-connect

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

如何在 Spring Boot 中使用 keycloak-admin-client 使用电子邮件启用 2FA

我的要求是在 Keycloak 中使用电子邮件启用 2FA。

启用后,如果用户尝试通过电子邮件和密码登录,用户成功通过身份验证后,基于时间的令牌将发送到电子邮件。

用户将通过自定义 UI 执行此操作,即在我们的产品中,我们有 UI 为用户启用/禁用 2FA。

我们正在使用 Keycloak 并且我们希望使用 Keycloak API 来实现这一点。

我正在使用 keycloak-admin-client 与 Keycloak API 进行交互,但我没有找到足够的资源来使用 keycloak-admin-client 实现此目的。

我正在寻找一种使用 keycloak-admin-client 为用户启用 2FA 的方法。

任何帮助将不胜感激。

谢谢

keycloak keycloak-rest-api keycloak-admin-client keycloak-spring-boot-starter

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

无法使用 keycloak 中新创建的用户登录

我正在关注这个教程

https://www.keycloak.org/getting-started/getting-started-docker

keycloak server我设法使用以下命令启动

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:20.0.2 start-dev
Run Code Online (Sandbox Code Playgroud)

在我的本地计算机上并通过登录到控制台http://localhost:8080

我可以使用该admin用户登录。发布后,我创建了 arealm和 anew user并设置了凭据,但是,我无法通过新创建的用户登录。(在创建时将其标记为启用)我在docker日志中看到的错误是

2022-12-21 14:23:00,184 WARN  [org.keycloak.events] (executor-thread-17) type=LOGIN_ERROR, realmId=f5e9717b-0eeb-47cf-9d9b-2f697416c841, clientId=account-console, userId=null, ipAddress=172.17.0.1, error=user_not_found, auth_method=openid-connect, auth_type=code, redirect_uri=http://localhost:8080/realms/master/account/?referrer=security-admin-console&referrer_uri=http%3A%2F%2Flocalhost%3A8080%2Fadmin%2Fmaster%2Fconsole%2F%23%2Fmyrealm%2Fusers%2F9d6a5677-3767-4bce-a5bb-db20fe2c7ac5%2Fsessions#/, code_id=aa9ac3df-dadc-4abc-bfea-022b27ca35f0, username=harsh, authSessionParentId=aa9ac3df-dadc-4abc-bfea-022b27ca35f0, authSessionTabId=XmE45k_yHPg
Run Code Online (Sandbox Code Playgroud)

我看到user_not_found虽然它存在并且我也设置了凭据。

是否需要任何其他配置才能启用该用户?

docker keycloak

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

禁止Keycloak REST API 403

我正在尝试使用keycloak REST API删除用户会话,但是却获取了403禁止的Http状态代码。我正在将令牌和cookie传递到标题中,如果我遗漏了一些东西,请告诉我。

static void logOut(String userId,KeycloakSecurityContext session){

        userId = "a12c13b7-fa2e-412f-ac8e-376fdca16a83";

        String url = "http://localhost:8081/auth/admin/realms/TestRealm/users/a12c13b7-fa2e-412f-ac8e-376fdca16a83/logout";
        HttpClient httpclient = HttpClients.createDefault();
        HttpPost httppost = new HttpPost(url);

        HttpResponse response;
        try {

            httppost.addHeader("Accept", "application/json");
            httppost.addHeader("Content-Type","application/json");
            httppost.addHeader("Cookie", "JSESSIONID=CABD8A135C74864F0961FA629D6D489B");
            httppost.addHeader("Authorization", "Bearer "+session.getTokenString());


            response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();

            System.out.println("entity :"+response.getStatusLine());

            if (entity != null) {
                String responseString = EntityUtils.toString(entity, "UTF-8");
                System.out.println("body ....."+responseString);
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

keycloak keycloak-services

0
推荐指数
1
解决办法
5888
查看次数

在自己的应用程序中使用Keycloak的用户

我们有几个应用程序,我们使用自定义实现的安全性和用户管理 现在我们可能会切换到keycloak,因为它是一个更好的解决方案.

在每个应用程序中,我们在多个地方使用我们的用户模型,例如Product(fe creator_id = 1)aso类似的问题在这里被问到Keycloak和spring boot rest api - 用户特定的数据策略

我的问题是:

如何保留我们的用户模型,但使用keycloak进行身份验证和用户管理,而无需将用户迁移到keycloak?以及如何同步用户注册过程(使用Keycloak)?一个有用的例子非常有帮助.

database authentication oauth-2.0 keycloak

0
推荐指数
1
解决办法
1914
查看次数

JHipster OAuth2 + Keycloak用户相关用例

从各种谷歌上搜索和阅读https://www.jhipster.tech/security/#oauth2,我收集的是,为了与JHipster移动/社会融合产生的应用程序,我应该使用的OAuth2.我是这样思考的吗?(我似乎无法找到明确的答案)

我使用启用了OAuth2的JHipster v5.1.0创建了一个新的应用程序.我注意到在用户管理方面缺少一些功能.以下是我的问题.

  1. 新用户如何注册新帐户?
  2. 用户如何更改密码/重置忘记密码?

希望有上述经验的人可以帮助澄清.

先感谢您.

oauth-2.0 jhipster keycloak okta

0
推荐指数
1
解决办法
394
查看次数