Jenkins
Casdoor can use OIDC protocol as IDP to connect various applications. Here we will use Jenkins as an example to show you how to use OIDC to connect to your applications.
The following are some of the names in the configuration:
CASDOOR_HOSTNAME
: Domain name or IP where Casdoor server is deployed.
JENKINS_HOSTNAME
: Domain name or IP where Jenkins is deployed.
Step1. Deploy Casdoor and Jenkins
Firstly, the Casdoor and Jenkins should be deployed.
After a successful deployment, you need to ensure:
- Set Jenkins URL(Manage Jenkins -> Configure System -> Jenkins Location) to
JENKINS_HOSTNAME
. - Casdoor can be logged in and used normally.
- Set Casdoor’s
origin
value (conf/app.conf) toCASDOOR_HOSTNAME
.
Step2. Configure Casdoor application
- Create or use an existing Casdoor application.
- Add a redirect url:
http://JENKINS_HOSTNAME/securityRealm/finishLogin
- Add provider you want and supplement other settings.
Not surprisingly, you can get two values on the application settings page: Client ID
and Client secret
like the picture above, we will use them in next step.
Open your favorite browser and visit: http://`CASDOOR_HOSTNAME`/.well-known/openid-configuration, you will see the OIDC configure of Casdoor.
Step3. Configure Jenkins
Jenkins does not natively support OIDC, so we need to install OpenId Connect Authentication.
After completing the installation, go to Manage Jenkins -> Configure Global Security.
Suggestion: Back up the Jenkins config.xml
file, and use it to recover in case of setup errors.
- In Access Control, Security Realm select “Login with Openid Connect”.
- In Client ID, specify the
Client ID
noted above. - In Client secret, specify the
Client secret
noted above. - In Configuration mode, select
Automatic configuration
and fill in http://`CASDOOR_HOSTNAME`/.well-known/openid-configuration into Well-known configuration endpoint.If your casdoor is deployed locally, you may need selectManual configuration
and input some infomation:Token server url
: http://`CASDOOR_HOSTNAME`/api/login/oauth/access\_tokenAuthorization server url
: http://`CASDOOR_HOSTNAME`/login/oauth/authorizeUserInfo server url
: http://`CASDOOR_HOSTNAME`/api/get-accountScopes
:address phone openid profile offline_access email
- Click Advanced setting, fill in the following:
- In User name field, specify
data.name
- In Full name feild, specify
data.displayName
- In Email field, specify
data.email
- In User name field, specify
- In the Authorization section, check “Logged-in users can do anything”. Disable “Allow anonymous read access”. You can configure more complex authorization later, for now check if OpenID actually works.
Log out of Jenkins, it should now redirect you to Casdoor for authentication.