跳到主内容

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 at http://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领域

Keycloak realm

在 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。

添加Keycloak客户端

单击 Save(保存)。 此动作创建客户端并将您带到 设置 选项卡。

以下是设置的一部分:

  1. Name — e.g. Casdoor; any friendly name for the Keycloak UI.
  2. 已启用 - 选择 on
  3. 包含 Authn 语句 - 选择 on
  4. 签署文件 - 选择 on
  5. 签名断言 - 选择 off
  6. 加密断言 - 选择 off
  7. 需要客户签名 - 请选择 off
  8. 强制名称ID格式 - 选择 on
  9. 名称 ID 格式 - 选择 username
  10. 有效重定向 URI - 添加 http://localhost:8000/api/acs.
  11. Master SAML 处理 URL - http://localhost:8000/api/acs.
  12. 精良的谷物SAML端点配置
    1. 声明消费者服务公开绑定URL - http://localhost:8000/api/acs
    2. 声明消费者服务重定向绑定URL - http://localhost:8000/api/acs

保存该配置。

配置Keycloak客�户端

提示

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 KeysImportArchive FormatCertificate 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.

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.

Casdoor 登录