You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对接Google Workspace的Keycloak SSO URL自定义为自有域名

自定义Keycloak SSO URL为自有域名的方法

1. 配置DNS解析

别纠结CNAME了,直接给子域名sso.domain.com添加A记录,指向你的Keycloak服务器公网IP。可以用nslookup sso.domain.com命令验证解析是否生效。

2. 部署反向代理(以Nginx为例)

Keycloak默认用8443端口,需要通过反向代理把sso.domain.com:443的请求转发到Keycloak的8443端口,同时配置SSL证书(推荐用Let's Encrypt免费证书)。

下面是Nginx配置示例,保存到/etc/nginx/sites-available/sso.domain.com:

server {
    listen 443 ssl;
    server_name sso.domain.com;

    # 替换成你的SSL证书路径
    ssl_certificate /etc/letsencrypt/live/sso.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/sso.domain.com/privkey.pem;

    location / {
        proxy_pass https://localhost:8443;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name sso.domain.com;
    # 强制跳转HTTPS
    return 301 https://$host$request_uri;
}

配置完成后启用站点并重启Nginx:

ln -s /etc/nginx/sites-available/sso.domain.com /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

3. 修改Keycloak服务器配置

Keycloak默认会用自身绑定的IP和端口生成URL,必须修改配置让它识别反向代理的域名:

传统非容器部署

找到Keycloak安装目录下的standalone/configuration/standalone.xml(集群部署用standalone-ha.xml),修改两处配置:

  • 找到<subsystem xmlns="urn:jboss:domain:undertow:12.0">下的<server name="default-server">,添加proxy-address-forwarding="true":
<server name="default-server" proxy-address-forwarding="true">
  • 找到<spi name="hostname">,设置frontendUrl为你的域名:
<spi name="hostname">
    <default-provider>default</default-provider>
    <providers>
        <provider name="default">
            <properties>
                <!-- Keycloak 17及以上版本不需要加/auth路径 -->
                <property name="frontendUrl" value="https://sso.domain.com/auth"/>
            </properties>
        </provider>
    </providers>
</spi>

修改完成后重启Keycloak服务。

Docker/Kubernetes容器部署

启动容器时添加环境变量:

# Keycloak 17+使用quay.io/keycloak/keycloak镜像
docker run -e KEYCLOAK_FRONTEND_URL=https://sso.domain.com/auth -e PROXY_ADDRESS_FORWARDING=true ... jboss/keycloak:latest

4. 验证Realm的SAML端点

登录Keycloak后台,进入demo Realm,点击左侧菜单的SAML 2.0 Identity Provider Metadata,查看XML里的SingleSignOnService和SingleLogoutService地址,确认已变为https://sso.domain.com/auth/realms/demo/protocol/saml(对应新版本路径则去掉/auth)。

5. 更新Google Workspace配置

把Google Workspace中原有的SSO登录/退出URL替换为新的域名地址,保存后测试登录流程即可。

内容的提问来源于stack exchange,提问作者Heather

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:33:17