Deploy Securely Behind a Load Balancer
IDM prevents URL-hijacking, with the following code block in the conf/jetty.xml
file:
<Call name="addCustomizer"> <Arg> <New class="org.eclipse.jetty.server.SecureRequestCustomizer"> <!-- Enable SNI Host Check when true --> <Arg name="sniHostCheck" type="boolean">true</Arg> <!-- Enable Strict-Transport-Security header and define max-age when >= 0 seconds --> <Arg name="stsMaxAgeSeconds" type="long">-1</Arg> <!-- If enabled, add includeSubDomains to Strict-Transport-Security header when true --> <Arg name="stsIncludeSubdomains" type="boolean">false</Arg> </New> </Arg> </Call>
If you are deploying IDM behind a system such as a load balancer, firewall, or a reverse proxy, you must uncomment the next section in jetty.xml
, so that Jetty honors X-Forwarded-Host
headers:
<Call name="addCustomizer"> <Arg> <New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"> <Set name="forcedHost"> <Call class="org.forgerock.openidm.jetty.Param" name="getProperty"> <Arg>openidm.host</Arg> </Call>:<Call class="org.forgerock.openidm.jetty.Param" name="getProperty"> <Arg>openidm.port.https</Arg> </Call> </Set> </New> </Arg> </Call>