<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<chapter xml:id="CASLDAP" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="5.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"
    xsi:schemaLocation="http://docbook.org/ns/docbook ../../applications/content/dtd/docbook.xsd"
    xmlns="http://docbook.org/ns/docbook">
    <title>OFBiz Single Sign On using CAS and LDAP</title>
    <section>
        <title>Setup the Java Key Store</title>
        <para>
            From the directory in which you want to create the keystore, run keytool with the following parameters. 
        </para>
        <orderedlist>
            <listitem>
                <para>
                    Generate the server certificate.
                    <programlisting>
                        $ keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks 
                    </programlisting>
                    When you press Enter, keytool prompts you to enter the server name, organizational unit, organization, locality, state, and country code. Note that you must enter the server name in response to keytool's first prompt, in which it asks for first and last names. For testing purposes, this can be localhost.
                </para>
            </listitem>
            <listitem>
                <para>
                    Export the generated server certificate in keystore.jks into the file server.cer.
                    <programlisting>
                        $ keytool -export -alias tomcat -storepass changeit -file server.cer -keystore keystore.jks 
                    </programlisting>
                </para>
            </listitem>
            <listitem>
                <para>
                    To create the trust-store file cacerts.jks and add the server certificate to the trust-store, run keytool from the directory where you created the keystore and server certificate. Use the following parameters:
                    <programlisting>
                        $ keytool -import -v -trustcacerts -alias tomcat -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit 
                    </programlisting>
                </para>
            </listitem>
            <listitem>
                <para>
                    Information on the certificate, such as that shown next, will display.
                    <programlisting>
                        $ keytool -import -v -trustcacerts -alias tomcat -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit

                        Owner: CN=localhost, OU=Sun Micro, O=Docs, L=Santa Clara, ST=CA, C=US
                        Issuer: CN=localhost, OU=Sun Micro, O=Docs, L=Santa Clara, ST=CA, C=US
                        Serial number: 3e932169
                        Valid from: Tue Apr 08
                        Certificate fingerprints:
                        MD5: 52:9F:49:68:ED:78:6F:39:87:F3:98:B3:6A:6B:0F:90 
                        SHA1: EE:2E:2A:A6:9E:03:9A:3A:1C:17:4A:28:5E:97:20:78:3F:
                        Trust this certificate? [no]: 
                    </programlisting>
                </para>
            </listitem>
            <listitem>
                <para>
                    Enter yes, and then press the Enter or Return key. The following information displays:
                    <programlisting>
                        Certificate was added to keystore
                        [Saving cacerts.jks] 
                    </programlisting>
                </para>
            </listitem>
        </orderedlist>
    </section>
    <section>
        <title>CAS Server</title>
        <para>
            <orderedlist>
                <listitem>
                    <para>
                        Download CAS server from <link xl:href="http://www.jasig.org/cas">the CAS web site</link>.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        Deploy cas-server-webapp-[version].war to Tomcat
                    </para>
                </listitem>
                <listitem>
                    <para>
                        Set key store file to Tomcat
                        <programlisting>
                            keystoreFile="path/to/keystore.jks"
                        </programlisting>
                    </para>
                </listitem>
                <listitem>
                    <para>
                        Start Tomcat
                    </para>
                </listitem>
            </orderedlist>
        </para>
    </section>
    <section>
        <title>OFBiz Certificate</title>
        <para>
            Set trust store's file to Java Virtual Machine (JVM) before start OFBiz.
            <programlisting>
                -Djavax.net.ssl.trustStore=path/to/cacerts.jks
            </programlisting>
        </para>
    </section>
    <section>
        <title>LDAP Component</title>
        <para>
            OFBiz uses the LDAP component in the specialpurpose to check the security in a web application. OFBiz disabled LDAP component as default, you can enable this component by take the comment out from specialpurpose/component-load.xml file.
        </para>
        <section>
            <title>LDAP Properties</title>
            <para>
                LDAP properties file is specialpurpose/ldap/config/ldap.xml. You can change a filter condition you want.
            </para>
            <section>
                <title>Attributes</title>
                <para>
                    <orderedlist>
                        <listitem>
                            <para>
                                Attribute : LDAP attbitue for filter e.g. uid=%u
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                AuthenType : LDAP authentication method e.g. simple
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                AuthenticaionHandler : CAS handler class e.g. org.ofbiz.ldap.cas.OFBizCasAuthenticationHandler
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                AutoPartyId : Party's id for user login e.g. admin
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                AutoSecurityGroupId : Security group's id for user login e.g. FULLADMIN
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                BaseDN : The top level ofbiz LDAP directory tree e.g. dc=example,dc=com
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                Filter : LDAP search filter e.g. (objectclass=*)
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                Scope : LDAP search scope parameter e.g. sub,one, etc.
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                URL : LDAP server's url e.g. ldap://localhost:389
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                UserOFBizLoginWhenLDAPFail : indicate that if LDAP fail then login with normal OFBiz's user or not. (true/false)
                            </para>
                        </listitem>
                    </orderedlist>
                </para>
            </section>
            <section>
                <title>CAS</title>
                <para>
                    <orderedlist>
                        <listitem>
                            <para>
                                CasLoginUri : URI to CAS login e.g. /login
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                CasLogoutUri : URI to CAS logout  e.g. /logout
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                CasUrl : CAS Server's URL e.g. https://localhost:8443/cas
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                CasValidateUri : URI to CAS validate e.g. /validate
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                CasLdapHandler : LDAP hanlder class e.g. org.ofbiz.ldap.openldap.OFBizLdapAuthenticationHandler
                            </para>
                        </listitem>
                        <listitem>
                            <para>
                                CasTGTCookieName : CAS TGT's cookie name e.g. CASTGC
                            </para>
                        </listitem>
                    </orderedlist>
                </para>
            </section>
        </section>
    </section>
    <section>
        <title>OpenLDAP</title>
        <para>
            The LDAP component need data from LDAP server (OpenLDAP). The server needs to install, configure and populate OpenLDAP: see at <link xl:href="http://www.openldap.org">the OpenLDAP web site</link>.
        </para>
    </section>
    <section>
        <title>Web Application Security Mapping</title>
        <para>
            Every web application you need to use LDAP (single sign on) feature, you need to change the event's path of some the security request mappings to org.ofbiz.ldap.LdapLoginWorker class.
        </para>
        <section>
            <title>checkLogin</title>
            <para>
                <programlisting>
                    &lt;request-map uri="checkLogin" edit="false"&gt;
                        &lt;description&gt;Verify a user is logged in.&lt;/description&gt;
                        &lt;security https="true" auth="false"/> 
                        &lt;event type="java" path="org.ofbiz.ldap.LdapLoginWorker" invoke="checkLogin"/&gt;
                        &lt;response name="success" type="view" value="main"/&gt;
                        &lt;response name="error" type="view" value="login"/&gt;
                    &lt;/request-map&gt;
                </programlisting>
            </para>
        </section>
        <section>
            <title>login</title>
            <para>
                <programlisting>
                    &lt;request-map uri="login"&gt;
                        &lt;security https="true" auth="false"/&gt;
                        &lt;event type="java" path="org.ofbiz.ldap.LdapLoginWorker" invoke="login"/&gt;
                        &lt;response name="success" type="view" value="main"/&gt;
                        &lt;response name="requirePasswordChange" type="view" value="requirePasswordChange"/&gt;
                        &lt;response name="error" type="view" value="login"/&gt;
                    &lt;/request-map&gt;
                </programlisting>
            </para>
        </section>
        <section>
            <title>logout</title>
            <para>
                <programlisting>
                    &lt;request-map uri="logout"&gt;
                            &lt;security https="true" auth="true"/&gt;
                            &lt;event type="java" path="org.ofbiz.ldap.LdapLoginWorker" invoke="logout"/&gt;
                            &lt;response name="success" type="request-redirect" value="main"/&gt;
                            &lt;response name="error" type="view" value="main"/&gt;
                    &lt;/request-map&gt;
                </programlisting>
            </para>
        </section>
    </section>
</chapter>