blob: 60ddb1f940017327afa83a48f65fedf1aa77e17d [file] [log] [blame] [view]
# ADFS as Gerrit SAML authentication provider
Note: replace `fs.hc.sct` with the name of your ADFS, replace gerrit.hc.sct with the name of your Gerrit host.
## Setup on the Gerrit machine
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.googlesource.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
## Setup on ADFS
Open the Management console (mmc), make sure you have the AD FS Management snap-in. Add a Relying Party Trust.
![][screen16]
Go through the wizard. The properties at the end should look like indicated on the following screens.
Monitoring: unmodified
![][screen01]
Identifiers: The relying party identifier is: `https://gerrit.hc.sct/gerrit/plugins/gerrit-saml-plugin/saml`
![][screen02]
Encryption: unmodified
![][screen03]
Signature: In the signature tab you need to import the certificate you exported above.
![][screen04]
Accepted Claims: unmodified
![][screen05]
Organization: unmodified
![][screen06]
Endpoints: URL is `https://gerrit.hc.sct/gerrit/plugins/gerrit-saml-plugin/saml`, binding POST
![][screen07]
Proxy Endpoints: unmodified
![][screen08]
Notes: unmodfied
![][screen09]
Advanced: SHA-256
![][screen10]
Select the `Relying Party Truct` and click on `Edit Claim Rules...`.
You should expose the following LDAP attributes:
![][screen11]
![][screen12]
Allow all users to connect, or modify depending on your setup:
![][screen13]
![][screen14]
Delegation Authorization Rules: unmodified
![][screen15]
[screen01]: images/0.png "screen 01"
[screen02]: images/1.png "screen 02"
[screen03]: images/2.png "screen 03"
[screen04]: images/3.png "screen 04"
[screen05]: images/4.png "screen 05"
[screen06]: images/5.png "screen 06"
[screen07]: images/6.png "screen 07"
[screen08]: images/7.png "screen 08"
[screen09]: images/8.png "screen 09"
[screen10]: images/9.png "screen 10"
[screen11]: images/10.png "screen 11"
[screen12]: images/11.png "screen 12"
[screen13]: images/12.png "screen 13"
[screen14]: images/13.png "screen 14"
[screen15]: images/14.png "screen 15"
[screen16]: images/15.png "screen 16"