2.8. 安装和配置 Keycloak


将 Keycloak 后端插件集成到 Developer Hub 中,具有以下功能:

  • 同步域中的 Keycloak 用户。
  • 在域中同步 Keycloak 组及其用户。

2.8.1. 对于管理员

2.8.1.1. 安装

Keycloak 插件在 Developer Hub 中预加载,带有基本配置属性。要启用它,将 disabled 属性设置为 false,如下所示:

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic
        disabled: false
Copy to Clipboard Toggle word wrap

2.8.1.2. 基本配置

要启用 Keycloak 插件,您必须设置以下环境变量:

  • KEYCLOAK_BASE_URL
  • KEYCLOAK_LOGIN_REALM
  • KEYCLOAK_REALM
  • KEYCLOAK_CLIENT_ID
  • KEYCLOAK_CLIENT_SECRET

2.8.1.3. 高级配置

调度配置

您可以在 app-config.yaml 文件中配置调度,如下所示:

     catalog:
       providers:
         keycloakOrg:
           default:
             # ...
             # highlight-add-start
             schedule: # optional; same options as in TaskScheduleDefinition
               # supports cron, ISO duration, "human duration" as used in code
               frequency: { minutes: 1 }
               # supports ISO duration, "human duration" as used in code
               timeout: { minutes: 1 }
               initialDelay: { seconds: 15 }
               # highlight-add-end
Copy to Clipboard Toggle word wrap
注意

如果您在 app-config.yaml 文件中对调度进行了任何更改,则重启以应用更改。

Keycloak 查询参数

您可以覆盖 app-config.yaml 文件中的默认 Keycloak 查询参数,如下所示:

   catalog:
     providers:
       keycloakOrg:
         default:
           # ...
           # highlight-add-start
           userQuerySize: 500 # Optional
           groupQuerySize: 250 # Optional
           # highlight-add-end
Copy to Clipboard Toggle word wrap

使用 Keycloak API 启用 Developer Hub 和 Keycloak 之间的通信。用户名和密码或客户端凭证是支持的身份验证方法。

下表描述了您可以配置在 app-config.yaml 文件中的 catalog.providers.keycloakOrg.<ENVIRONMENT_NAME > 对象下启用插件的参数:

Expand
Name描述默认值必填

baseUrl

Keycloak 服务器的位置,如 https://localhost:8443/auth。请注意,Keycloak 的较新版本省略了 /auth 上下文路径。

""

realm

要同步的域

master

loginRealm

用于验证的域

master

username

进行身份验证的用户名

""

如果使用基于密码的身份验证,则为

password

进行身份验证的密码

""

如果使用基于密码的身份验证,则为

clientId

要进行身份验证的客户端 ID

""

如果使用基于客户端凭证的身份验证,则为 yes

clientSecret

要进行身份验证的客户端 Secret

""

如果使用基于客户端凭证的身份验证,则为 yes

userQuerySize

一次查询的用户数

100

groupQuerySize

一次查询的组数

100

在使用客户端凭据时,必须将访问类型设为 机密,并且必须启用服务帐户。您还必须从 realm-management 客户端角色中添加以下角色:

  • query-groups
  • query-users
  • view-users

2.8.1.4. 限制

如果您有自签名或企业证书问题,您可以在启动 Developer Hub 前设置以下环境变量:

NODE_TLS_REJECT_UNAUTHORIZED=0

注意

不建议设置环境变量的解决方案。

2.8.2. 对于用户

成功配置插件后,插件会在每次启动时都会导入用户和组。

注意

如果您设置了调度,则用户和组也会被导入。

第一次导入完成后,您可以从目录页面中选择 User 来列出用户:

您可以在页面中查看用户列表:

当您选择一个用户时,您可以看到从 Keycloak 导入的信息:

您还可以选择一个组,查看列表,并为组选择或查看从 Keycloak 导入的信息:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat