跳到主内容

Jenkins (OIDC)

Use Casdoor as the OIDC identity provider for Jenkins so users sign in with their Casdoor accounts.

Terms: CASDOOR_HOSTNAME — Casdoor server URL; JENKINS_HOSTNAME — Jenkins server URL.

步骤1:部署Casdoor和Jenkins

Deploy Casdoor and Jenkins. Then:

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

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

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

步骤2:配置Casdoor应用

  1. Create or edit a Casdoor application.
  2. Add redirect URL: http://JENKINS_HOSTNAME/securityRealm/finishLogin.
  3. Add providers as needed. Note the Client ID and Client secret from the application page.

OIDC discovery URL: http://CASDOOR_HOSTNAME/.well-known/openid-configuration

Casdoor应用设置

步骤3:配置Jenkins

Install the OpenId Connect Authentication plugin (Jenkins does not support OIDC by default).

安装完成后,转到管理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登录页面