<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE repositoryAttributes SYSTEM "wmmAttributesMap.dtd">

<repositoryAttributes repositoryName="wmmLDAP">
  
<!-- 

Active Directory sample mapping file, based on the following settings

  ********************************************************************
  Member Type       Member RDN    LDAP RDN    Object Class
  ********************************************************************
  Person                cn        cn           user                            
  Group                 cn        cn           group                           
  Organization           o         o           organization                        
  OrganizationalUnit    ou        ou           organizationalUnit                
   
-->



<!-- 
Internal attributes 

  Define which LDAP attribute is mapped to external identifier 
-->

  <!-- objectGUID is generated by Active Directory Server. 
       wmmGeneratedExtId in wmm.xml needs to set to false -->

  <attributeMap wmmAttributeName="extId" 
                applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"
                pluginAttributeName="objectGUID"
                dataType="String"
                pluginDataType="OctetString"
                multiValued="false"
                readOnly="true"/>
          

  <!-- Define which LDAP attribute is used for storing static group members -->

  <attributeMap wmmAttributeName="groupMember"
                pluginAttributeName="member"
                 applicableMemberTypes="Group"
                 dataType="String"
                 valueLength="1024"
                 multiValued="true" />


          
  <!-- Define which LDAP attribute is used for storing dynamic group queries -->
  <!-- If no dynamic groups are used, comment out this map to improve performance -->

  <!--attributeMap wmmAttributeName="groupMemberURL"
                   pluginAttributeName="memberURL"
                   applicableMemberTypes="Group"
                   dataType="String"
                   valueLength="1024"
                   multiValued="true" /-->
  

  <!-- Define the userAccountControl in Active Direcoty: = 66048 enables the person -->   

  <attributeMap wmmAttributeName="userAccountControl"
                pluginAttributeName="userAccountControl"
                applicableMemberTypes="Person"                                                          
                dataType="String" 
                valueLength="32"
                multiValued="false"
                defaultValue="66048"
                readOnly="true"/>
          


  <!-- Define the group type in Active Direcoty: groupType = 8 allows nested group -->              

  <attributeMap wmmAttributeName="groupType"
                pluginAttributeName="groupType"
                applicableMemberTypes="Group"                                                           
                dataType="String" 
                valueLength="32"
                multiValued="false"
                defaultValue="8"
                readOnly="true"/>
          




  <!-- Common schema attributes -->
  

  <!-- samAccountName is mandatory for user object class in Active Directory, use uid to map to samAccountName -->

  <attributeMap wmmAttributeName="uid"
                   pluginAttributeName="samAccountName"
                   applicableMemberTypes="Person"
                   requiredMemberTypes="Person"
                   dataType="String" 
                   valueLength="32"
                   multiValued="false"/>
  
  <attributeMap wmmAttributeName="sn" 
                pluginAttributeName="sn"
                applicableMemberTypes="Person"          
                requiredMemberTypes="Person"
                dataType="String" 
                valueLength="128" 
                multiValued="true" />
  
  <attributeMap wmmAttributeName="givenName"
                pluginAttributeName="givenName"
                applicableMemberTypes="Person"          
                dataType="String" 
                valueLength="128" 
                multiValued="true" />
  
  <attributeMap wmmAttributeName="initials"
                pluginAttributeName="initials"
                applicableMemberTypes="Person"
                dataType="String"
                valueLength="20"
                multiValued="true" />
  
  <attributeMap wmmAttributeName="ibm-primaryEmail"
                pluginAttributeName="mail"
                applicableMemberTypes="Person"
                dataType="String"
                valueLength="256"
                multiValued="false" />
  
  <attributeMap wmmAttributeName="o"
                pluginAttributeName="o"
                applicableMemberTypes="Organization;Person"
                requiredMemberTypes="Organization"            
                dataType="String"
                valueLength="128"
                multiValued="false" />      
          
  <attributeMap wmmAttributeName="ou"
                pluginAttributeName="ou"
                applicableMemberTypes="OrganizationalUnit;Person"
                requiredMemberTypes="OrganizationalUnit"            
                dataType="String"
                valueLength="128"
                multiValued="false" />      

  <attributeMap wmmAttributeName="cn"
                pluginAttributeName="cn"
                applicableMemberTypes="Person;Group"
                dataType="String"
                valueLength="256" 
                multiValued="false" />  
          
  <!-- If samAccountName is not specified when creating a group, samAccountName will use the value of its default attrbiute 'cn' -->        
  <attributeMap wmmAttributeName="samAccountName"
                pluginAttributeName="samAccountName"
                applicableMemberTypes="Group"
                requiredMemberTypes="Group"
                dataType="String" 
                valueLength="32"
                multiValued="false"
                defaultAttribute="cn"/>
  
  <!-- userPassword needs to map to unicodePwd, SSL connection is needed in order for creating or updating unicodePwd -->
  <attributeMap wmmAttributeName="userPassword"
                pluginAttributeName="unicodePwd"
                applicableMemberTypes="Person"
                dataType="String"
                pluginDataType="OctetString"
                valueLength="128"
                multiValued="false" />
          
  <!-- Read only attribute -->
  <attributeMap wmmAttributeName="createTimestamp"
                pluginAttributeName="createTimestamp"
                applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"  
                dataType="Timestamp" 
                multiValued="false" 
                readOnly="true"/>
          
  <!-- Read only attribute -->  
  <attributeMap wmmAttributeName="modifyTimestamp" 
                pluginAttributeName="modifyTimestamp"
                applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"  
                dataType="Timestamp" 
                multiValued="false" 
                readOnly="true"/>
  
  <attributeMap wmmAttributeName="telephoneNumber"
                pluginAttributeName="telephoneNumber"
                applicableMemberTypes="Person;Organization;OrganizationalUnit"
                dataType="String" 
                valueLength="32"
                multiValued="true" /> 
  
  <attributeMap wmmAttributeName="facsimileTelephoneNumber"
                pluginAttributeName="facsimileTelephoneNumber"
                applicableMemberTypes="Person;Organization;OrganizationalUnit"
                dataType="String" 
                valueLength="32"
                multiValued="true" /> 

  <attributeMap wmmAttributeName="mobile"
                pluginAttributeName="mobile"
                applicableMemberTypes="Person"
                dataType="String" 
                valueLength="32"
                multiValued="true" />
  
  <attributeMap wmmAttributeName="homePostalAddress"
                pluginAttributeName="homePostalAddress"
                applicableMemberTypes="Person"
                dataType="String" 
                valueLength="500"
                multiValued="true" />  
  
  <attributeMap wmmAttributeName="postalAddress"
                pluginAttributeName="postalAddress"
                applicableMemberTypes="Person;Organization;OrganizationalUnit"
                dataType="String" 
                valueLength="500"
                multiValued="true" /> 
           
  <attributeMap wmmAttributeName="street"
                pluginAttributeName="street"
                applicableMemberTypes="Person;Organization;OrganizationalUnit"
                dataType="String" 
                valueLength="128"
                multiValued="true" />

  <attributeMap wmmAttributeName="postalCode"
                pluginAttributeName="postalCode"
                applicableMemberTypes="Person;Organization;OrganizationalUnit"
                dataType="String" 
                valueLength="40"
                multiValued="true" />
          
  <attributeMap wmmAttributeName="manager"
                pluginAttributeName="manager"
                applicableMemberTypes="Person"
                dataType="MemberIdentifier"
                multiValued="true" />

  <attributeMap wmmAttributeName="seeAlso"
                pluginAttributeName="seeAlso"
                applicableMemberTypes="Person;Organization;OrganizationalUnit"
                dataType="MemberIdentifier" 
                multiValued="true" />
          

  <!-- Active Directory by default does not have 'preferredLangauge' attribute -->
  <!-- Need to create 'preferredLanague' attribute schema and add to 'user' object class -->

  <attributeMap wmmAttributeName="preferredLanguage"
                  pluginAttributeName="preferredLanguage"
                  applicableMemberTypes="Person"
                  dataType="String"
                  valueLength="128"
                  multiValued="false" />

  <attributeMap wmmAttributeName="ibm-jobTitle" 
      pluginAttributeName="title" 
      applicableMemberTypes="Person" 
      dataType="String" 
      valueLength="128" 
      multiValued="true"/>

  <attributeMap wmmAttributeName="displayName"
          pluginAttributeName="displayName"
          applicableMemberTypes="Person"
          dataType="String"
          valueLength="128"
          multiValued="true" />


  <!-- The following attributes need to defined in Look Aside database -->
  
  <!--
  <attributeMap wmmAttributeName="ibm-otherEmail"
          pluginAttributeName="ibm-otherEmail"
          applicableMemberTypes="Person"
          dataType="String"
          valueLength="256"
          multiValued="true" />       
  

  <attributeMap wmmAttributeName="description"
          pluginAttributeName="description"
          applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"          
          dataType="String"
          valueLength="1024"
          multiValued="true" />
          
  <attributeMap wmmAttributeName="ibm-personalTitle"
          pluginAttributeName="ibm-personalTitle"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="50"
          multiValued="true" />  

  <attributeMap wmmAttributeName="jpegPhoto"
          pluginAttributeName="jpegPhoto"
          applicableMemberTypes="Person"
          dataType="ByteArray"  
          valueLength="250000"     
          multiValued="true" />  

  <attributeMap wmmAttributeName="labeledURI"
          pluginAttributeName="labeledURI"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="32700"       
          multiValued="true" />

  <attributeMap wmmAttributeName="carLicense"
          pluginAttributeName="carLicense"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="128"
          multiValued="true" /> 

  <attributeMap wmmAttributeName="pager"
          pluginAttributeName="pager"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="32"
          multiValued="true" />

  <attributeMap wmmAttributeName="roomNumber"
          pluginAttributeName="roomNumber"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="256"
          multiValued="true" />

  <attributeMap wmmAttributeName="localityName"
          pluginAttributeName="l"
          applicableMemberTypes="Person;Organization;OrganizationalUnit"
          dataType="String" 
          valueLength="128"
          multiValued="true" />

  <attributeMap wmmAttributeName="stateOrProvinceName"
          pluginAttributeName="st"
          applicableMemberTypes="Person;Organization;OrganizationalUnit"
          dataType="String" 
          valueLength="128"
          multiValued="true" />

  <attributeMap wmmAttributeName="countryName"  
          pluginAttributeName="c"  
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="128"
          multiValued="true" />   

  <attributeMap wmmAttributeName="employeeNumber"
          pluginAttributeName="employeeNumber"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="20"
          multiValued="false" />

  <attributeMap wmmAttributeName="ibm-personalTitle"
          pluginAttributeName="ibm-personalTitle"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="50"
          multiValued="true" />
              
  <attributeMap wmmAttributeName="employeeType"
          pluginAttributeName="employeeType"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="128"
          multiValued="true" />

  <attributeMap wmmAttributeName="secretary"
          pluginAttributeName="secretary"
          applicableMemberTypes="Person"
          dataType="MemberIdentifier" 
          multiValued="true" />

  <attributeMap wmmAttributeName="businessCategory"
          pluginAttributeName="businessCategory"
          applicableMemberTypes="Person;Organization;OrganizationalUnit"
          dataType="String" 
          valueLength="128"
          multiValued="true" /> 

  <attributeMap wmmAttributeName="departmentNumber"
          pluginAttributeName="departmentNumber"
          applicableMemberTypes="Person"
          dataType="String" 
          valueLength="128"
          multiValued="true" />
  -->

</repositoryAttributes>