跳到主内容

Jenkins(OIDC)

把 Casdoor 用作 Jenkins 的 OIDC 身份提供商,用户就能用 Casdoor 账号登录。

术语:CASDOOR_HOSTNAME:Casdoor 服务器地址;JENKINS_HOSTNAME:Jenkins 服务器地址。

步骤1:部署Casdoor和Jenkins​

部署 Casdoor 和 Jenkins。然后:

  1. 将Jenkins URL(管理Jenkins -> 配置系统 -> Jenkins位置)设置为JENKINS_HOSTNAME。 Jenkins URL

  2. 确保Casdoor可以正常登录和使用。

  3. 将Casdoor的origin值(conf/app.conf)设置为CASDOOR_HOSTNAME。 Casdoor conf

步骤2:配置Casdoor应用​

  1. 创建或编辑一个 Casdoor 应用。
  2. 添加回调地址:http://JENKINS_HOSTNAME/securityRealm/finishLogin。
  3. 按需添加提供商。在应用页面记下 Client ID 和 Client secret。

OIDC 发现地址:http://CASDOOR_HOSTNAME/.well-known/openid-configuration

Casdoor应用设置

步骤3:配置Jenkins​

安装 OpenId Connect Authentication 插件(Jenkins 默认不支持 OIDC)。

安装完成后,转到管理Jenkins -> 配置全局安全。 jenkins全局安全

提示

确保备份Jenkins的config.xml文件,以防任何设置错误。

  1. 在访问控制中,选择使用Openid Connect登录作为安全领域。

  2. 在Client ID字段中指定上面记下的Client ID。

  3. 在Client secret字段中指定上面记下的Client secret。

  4. 在配置模式中,选择自动配置,并输入http://CASDOOR_HOSTNAME/.well-known/openid-configuration作为已知配置端点。 Jenkins'设置

    如果你的Casdoor是本地部署的,你可能需要选择手动配置并提供以下信息:

    • 令牌服务器URL:http://CASDOOR_HOSTNAME/api/login/oauth/access_token
    • 授权服务器URL:http://CASDOOR_HOSTNAME/login/oauth/authorize
    • 用户信息服务器URL:http://CASDOOR_HOSTNAME/api/get-account
    • 范围:address phone openid profile offline_access email 手动配置
  5. 点击高级设置并填写以下内容:

    • 在用户名字段中,指定name。
    • 在全名字段中,指定displayName。
    • 在电子邮件字段中,指定email。

    用户信息字段设置

  6. 在授权部分,启用“已登录用户可以做任何事情”并禁用“允许匿名读取访问”。你可以稍后配置更复杂的授权,但现在,检查OpenID是否正常工作。

    退出Jenkins,它应该将你重定向到Casdoor进行身份验证。Jenkins登录页面