Keycloak: 4. 创建服务

本文件是使用 CLI 实现自动化指南的一部分。您可以在这里查看完整指南:通过 Stackhero CLI 以编程方式启动 Keycloak、获取其凭证并更改其配置

👋 欢迎来到 Stackhero 文档!

Stackhero 提供 Keycloak cloud 服务,让您仅需 2 分钟即可轻松部署可用于生产环境的身份认证服务:

  • 无限制的用户、realm 和 client
  • 支持 OpenID ConnectOAuth 2.0SAML 2.0、社交登录、LDAP 及 Active Directory 联邦
  • 自定义域名,内置 HTTPS,确保安全访问(例如,https://login.your-company.com
  • 自定义主题:通过内置在线编辑器,轻松定制您的登录页面、账户控制台和邮件内容
  • 专属 email 服务器,支持 SPF、DKIM 和 DMARC,自动处理账户确认和密码重置
  • 内置 PostgreSQL 数据库,管理控制台可通过独立端口访问并可关闭
  • 一键升级,让您的系统始终保持最新,无需手动操作

专注于开发,而不是配置:您可以在 5 分钟内体验 Stackhero 的 Keycloak cloud 解决方案

以下是一个示例脚本:创建一个 stack,将您的 Keycloak 服务添加到 stack,等待服务启动,获取其配置信息(包括自动生成的凭证),然后应用新的配置。

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="keycloak"   # Keycloak 服务商店名称(见第 2 步)
instance="..."                # 第 3 步获取的实例规格
region="europe"               # 第 3 步获取的区域名称

# 为您的服务创建一个 stack(默认使用您的组织,如有需要可加 --organization)
stackId=$(stackhero --format=script stack-create \
  --name="My Keycloak stack")
echo "Stack created: ${stackId}"

# 将 Keycloak 添加到 stack(名称会自动解析)
serviceId=$(stackhero --format=script service-add \
  --stack="My Keycloak stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Service added: keycloak"

# 等待服务完全启动(可能需要几分钟)
stackhero service-wait-for --service="keycloak"

# 获取服务配置,包括自动生成的凭证
stackhero service-configuration-get --service="keycloak" --format=json