<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>

<!-- 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.
-->

<section id="example-openldap-configuration">
    <title>Example LDAP Configuration for OpenLdap</title>
    <para>This shows the configuration settings required for using OpenLDAP.</para>
    <para>The default values supplied are suited for OpenLDAP.</para>
    <itemizedlist>
        <listitem><para>uid - Logon name</para></listitem>
        <listitem><para>mail - Email Address</para></listitem>
        <listitem><para>cn - Real name</para></listitem>
    </itemizedlist>
    <para>Along with this the ldap.user.object name needs to be modified, by default OpenLDAP uses the value "inetOrgPerson" for this.</para>
    <para>Map the following attributes accordingly as shown below within the cloudstack ldap configuration:</para>
    <mediaobject>
        <imageobject>
            <imagedata fileref="./images/add-ldap-configuration-openldap.png"/>
        </imageobject>
        <textobject>
            <phrase>add-ldap-configuration-openldap.png: example configuration for OpenLdap.</phrase>
        </textobject>
    </mediaobject>
</section>
