Skip to content

About

本插件用于禅道支持基于OpenID Connect的SSO登录

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

17 Commits

Folders and files

Repository files navigation

本插件用于禅道支持基于OpenID Connect的SSO登录。
在禅道开源版18.8、21.4、21.7.8及Keycloak 23.0.7上验证通过。

使用方法(以Keycloak为例):

  1. 在Keycloak的Clients页面中添加新的OpenID Connect类型的client。例如:
    img.jpg
  2. 在新创建的client中拿到secret:
    img_1.jpg
  3. 在Keycloak的Realm roles页面添加新的角色:zentao_admin。并将希望登录禅道后自动赋予管理员角色的用户关联到该角色上,注:只有在禅道中新创建用户时才会自动赋予管理员角色。
  4. 在本项目的release页面下载最新插件安装包。
  5. 使用本地管理员登录禅道,并使用禅道的插件本地安装功能安装本插件。
  6. 编辑文件extension/pkg/oidc/config/ext/oidc.php:
    img_2.jpg
  7. 缺省情况下,禅道是使用传统的GET请求方式,这种方式不允许URL参数中包含字符:,和OpenID Connect Authentication Response中的iss参数冲突。有两种解决方案:
    • 编辑config/my.php文件并修改以下选项:
      $config->requestType = 'PATH_INFO';
    • 将Keycloak中client的advanced选项中的Exclude Issuer From Authentication Response选项打开。
      img.jpg
  8. 重启禅道后,点击单点登录按钮,在Keycloak中输入账号登录。

角色和分组映射

adminRoleName 用于配置可获得禅道管理员身份的授权标识列表。插件按以下顺序读取授权标识,并将其合并到统一的 authorities 集合:

  1. Keycloak 的 realm_access.roles;
  2. Casdoor 的 groups;
  3. Casdoor 的 roles,角色对象使用其 name 字段。

只要 authorities 集合中的任一元素也在 adminRoleName 授权标识列表中存在,即视为拥有管理员身份。例如:

$config->oidc->adminRoleName = array(
    "zentao_admin",
    "owner/zentao-admin",
    "role_zentao-admin"
);

About

本插件用于禅道支持基于OpenID Connect的SSO登录

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages