Jenkins OIDC
Casdoor can use the OIDC protocol as an IDP to connect various applications. In this example, we will use Jenkins to demonstrate how to use OIDC to connect to your applications.
The following are some of the names used in the configuration:
CASDOOR_HOSTNAME
: The domain name or IP where the Casdoor server is deployed.JENKINS_HOSTNAME
: The domain name or IP where Jenkins is deployed.
Step 1: Deploy Casdoor and Jenkins
Firstly, deploy Casdoor and Jenkins.
After a successful deployment, ensure the following:
Set the Jenkins URL (Manage Jenkins -> Configure System -> Jenkins Location) to
JENKINS_HOSTNAME
.Ensure that Casdoor can be logged in and used normally.
Set Casdoor's
origin
value (conf/app.conf) toCASDOOR_HOSTNAME
.
Step 2: Configure the Casdoor application
Create a new Casdoor application or use an existing one.
Add a redirect URL:
http://JENKINS_HOSTNAME/securityRealm/finishLogin
Add the provider you want and provide any additional settings.
You will obtain two values from the application settings page: Client ID
and Client secret
. We will use these values in the next step.
Open your favorite browser and visit: http://CASDOOR_HOSTNAME
/.well-known/openid-configuration to view the OIDC configuration of Casdoor.
Step 3: Configure Jenkins
First, we need to install OpenId Connect Authentication as Jenkins does not natively support OIDC.
After the installation is complete, go to Manage Jenkins -> Configure Global Security.
Make sure to back up the Jenkins config.xml
file to recover in case of any setup errors.
In Access Control, select
Login with Openid Connect
as the Security Realm.Specify the
Client ID
noted above in the Client ID field.Specify the
Client secret
noted above in the Client secret field.In the Configuration mode, select
Automatic configuration
and enter http://CASDOOR_HOSTNAME
/.well-known/openid-configuration as the Well-known configuration endpoint.If your Casdoor is deployed locally, you may need to select
Manual configuration
and provide the following information:- Token server URL: http://
CASDOOR_HOSTNAME
/api/login/oauth/access_token - Authorization server URL: http://
CASDOOR_HOSTNAME
/login/oauth/authorize - UserInfo server URL: http://
CASDOOR_HOSTNAME
/api/get-account - Scopes:
address phone openid profile offline_access email
- Token server URL: http://
Click on Advanced settings and fill in the following:
- In the User name field, specify
name
. - In the Full name field, specify
displayName
. - In the Email field, specify
email
.
- In the User name field, specify
In the Authorization section, enable “Logged-in users can do anything” and disable “Allow anonymous read access”. You can configure more complex authorization later, but for now, check if OpenID works correctly.
Log out of Jenkins, and it should redirect you to Casdoor for authentication.