Note: replace fs.hc.sct
with the name of your ADFS, replace gerrit.hc.sct with the name of your Gerrit host.
Configure Gerrit as described in the README.md. Here is an example config using SAML for Authentication, LDAP for authorization and running gerrit under the gerrit
prefix.
[gerrit] basePath = git canonicalWebUrl = https://gerrit.hc.sct/gerrit/ ... [httpd] listenUrl = https://gerrit.hc.sct:8443/gerrit/ filterClass = com.thesamet.gerrit.plugins.saml.SamlWebFilter [auth] type = HTTP_LDAP logoutUrl = https://fs.hc.sct/adfs/ls/?wa=wsignout1.0 httpHeader = X-SAML-UserName httpDisplaynameHeader = X-SAML-DisplayName httpEmailHeader = X-SAML-EmailHeader httpExternalIdHeader = X-SAML-ExternalId [saml] keystorePath = /home/gerrit/samlKeystore.jks keystorePassword = pac4j-demo-password privateKeyPassword = pac4j-demo-password metadataPath = file:///home/gerrit/FederationMetadata.xml [ldap] server = ldap://fs.hc.sct username = CN=Administrator,CN=Users,DC=hc,DC=sct localUsernameToLowerCase = true sslVerify = false accountBase = DC=hc,DC=sct groupBase = DC=hc,DC=sct
You can download the IdP file FederationMeta.xml from your ADFS. You need to place it in the location configured with saml.metadataPath (note that this is an URL and that file:// is required).
wget https://fs.hc.sct/FederationMetadata/2007-06/FederationMetadata.xml
Export the certificate from the samlKeystore.jks you created during setup. You will need the certificate in your ADFS configuration (see below).
keytool -exportcert -keystore samlKeystore.jks -alias pac4j -rfc > pac4j-demo.cer
Open the Management console (mmc), make sure you have the AD FS Management snap-in. Add a Relying Party Trust.
Go through the wizard. The properties at the end should look like indicated on the following screens.
Monitoring: unmodified
Identifiers: The relying party identifier is: https://gerrit.hc.sct/gerrit/plugins/gerrit-saml-plugin/saml
Encryption: unmodified
Signature: In the signature tab you need to import the certificate you exported above.
Accepted Claims: unmodified
Organization: unmodified
Endpoints: URL is https://gerrit.hc.sct/gerrit/plugins/gerrit-saml-plugin/saml
, binding POST
Proxy Endpoints: unmodified
Notes: unmodfied
Advanced: SHA-256
Select the Relying Party Truct
and click on Edit Claim Rules...
. You should expose the following LDAP attributes:
Allow all users to connect, or modify depending on your setup:
Delegation Authorization Rules: unmodified