Keycloak SAML
Keycloak is an open-source IdP that supports SAML and OpenID Connect and can broker LDAP or other SAML IdPs. This guide configures a Keycloak SAML client and Casdoor so Keycloak users can sign in to Casdoor.
Configure Keycloak
Example assumptions:
- Casdoor: UI at
http://localhost:7001, API athttp://localhost:8000. Adjust for your deployment. - Keycloak: UI at
http://localhost:8080/auth. - SP ACS URL and Entity ID:
http://localhost:8000/api/acs.
The /api/acs endpoint only accepts POST requests. Ensure Keycloak is configured to use HTTP POST binding for SAML responses.
Use the default realm or create a new one.


在 Keycloak 中添加客户端条目
在菜单中点击 客户端 然后点击 创建 去到 添加客户端 页面。 按照以下方式填写字段:
- 客户端 ID:
http://localhost:8000/api/acs- 这将是以后在 Casdoor 配置中使用的 SP 实体ID。 - Client Protocol:
saml. - 客户端SAML端点:
http://localhost:8000/api/acs- 这个URL是你希望Keycloak服务器发送SAML请求和响应的地方。 通常,应用程序有一个用于处理SAML请求的URL。 客户端的设置选项卡中可以设置多个URL。

单击 Save(保存)。 此动作创建客户端并将您带到 设置 选项卡。
以下是设置的一部分:
- Name — e.g.
Casdoor; any friendly name for the Keycloak UI. - 已启用 - 选择
on。 - 包含 Authn 语句 - 选择
on。 - 签署文件 - 选择
on。 - 签名断言 - 选择
off。 - 加密断言 - 选择
off。 - 需要客户签名 - 请选择
off。 - 强制名称ID格式 - 选择
on。 - 名称 ID 格式 - 选择
username。 - 有效重定向 URI - 添加
http://localhost:8000/api/acs. - Master SAML 处理 URL -
http://localhost:8000/api/acs. - 精良的谷物SAML端点配置
- 声明消费者服务公开绑定URL -
http://localhost:8000/api/acs。 - 声明消费者服务重定向绑定URL -
http://localhost:8000/api/acs。
- 声明消费者服务公开绑定URL -
保存该配置。

To sign the authn request: enable Client Signature Required and upload your certificate. Casdoor’s private key and certificate (token_jwt_key.key, token_jwt_key.pem) are in the object directory. In Keycloak open Keys → Import → Archive Format → Certificate PEM and upload the certificate.
点击 安装 标签页。
For Keycloak <= 5.0.0, select Format Option - SAML Metadata IDPSSODescriptor and copy the metadata.
对于Keycloak 6.0.0+,选择格式选项 - Mod Mellon 文件 并点击 下载。 解压下载的.zip文件,找到idp-metadata.xml,并复制元数据。


在Casdoor配置
在 Casdoor 中创建一个新的提供商。
选择分类为 SAML, 输入 Keycloak. 将metadata的内容复制并粘贴到元数据字段中。 点击解析按钮后,端点、IdP和发行者URL的值将自动生成。 最后,点击保存按钮。
If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

编辑您想要在 Cassdoor 中配置的应用程序。 选择你刚刚添加的提供商,然后点击保存按钮。

Test
Open the application’s login page; a Keycloak option appears. Click it to sign in via Keycloak; after success you are logged into Casdoor.
