| 1 | This document explains the installation steps for the PSP. Here's an overview of how it was configured: |
| 2 | |
| 3 | 1. The PSP writes data to the directory installed on grinnell. |
| 4 | 2. Group objects are created for each Grouper group (excluding the etc folder) in ou=grouper,ou=groups,dc=alaska,dc=edu. |
| 5 | 3. The "bushy" structure is used. |
| 6 | |
| 7 | |
| 8 | == Install PSP == |
| 9 | |
| 10 | 1. Download and copy the PSP to /tmp/ on grinnell. The tarball is located at http://www.internet2.edu/grouper/release/2.1.4/grouper.psp-2.1.4.tar.gz. |
| 11 | |
| 12 | 2. Extract and copy files. Note that we're using the generic LDAP example configuration as a starting point. |
| 13 | |
| 14 | {{{ |
| 15 | [root@grinnell ~]# cd /srv/grouper |
| 16 | [root@grinnell grouper]# ls |
| 17 | grouper.api-2.1.4 grouper.api-2.1.4.tar |
| 18 | [root@grinnell grouper]# mv /tmp/grouper.psp-2.1.4.tar.gz . |
| 19 | [root@grinnell grouper]# gunzip grouper.psp-2.1.4.tar.gz |
| 20 | [root@grinnell grouper]# tar xf grouper.psp-2.1.4.tar |
| 21 | [root@grinnell grouper]# cp /srv/grouper/grouper.psp-2.1.4/lib/custom/* /srv/grouper/grouper.api-2.1.4/lib/custom/ |
| 22 | [root@grinnell grouper]# cp /srv/grouper/grouper.psp-2.1.4/conf/psp-example-grouper-to-ldap/psp* /srv/grouper/grouper.api-2.1.4/conf/ |
| 23 | [root@grinnell grouper]# cp /srv/grouper/grouper.psp-2.1.4/conf/psp-example-grouper-to-ldap/ldap.properties /srv/grouper/grouper.api-2.1.4/conf/ |
| 24 | }}} |
| 25 | |
| 26 | == Configure PSP == |
| 27 | |
| 28 | 1. Find the following properties in /srv/grouper/grouper.api-2.1.4/conf/ldap.properties and update the values. |
| 29 | |
| 30 | {{{ |
| 31 | edu.vt.middleware.ldap.ldapUrl= |
| 32 | edu.vt.middleware.ldap.bindDn= |
| 33 | edu.vt.middleware.ldap.bindCredential= |
| 34 | edu.vt.middleware.ldap.baseDn=dc=alaska,dc=edu |
| 35 | edu.internet2.middleware.psp.groupsBaseDn=ou=grouper,ou=groups,dc=alaska,dc=edu |
| 36 | edu.internet2.middleware.psp.peopleBaseDn=ou=people,dc=alaska,dc=edu |
| 37 | }}} |
| 38 | |
| 39 | 2. In the file /srv/grouper/grouper.api-2.1.4/conf/psp-services.xml, replace the Service element with id=ldap with the following: |
| 40 | |
| 41 | {{{ |
| 42 | <!-- commenting out |
| 43 | <Service |
| 44 | id="ldap" |
| 45 | xsi:type="psp-ldap-target:LdapTarget" |
| 46 | logSpml="true" |
| 47 | ldapPoolId="ldap" |
| 48 | ldapPoolIdSource="grouper"> |
| 49 | <!-- A <ConfigurationResource/> is required to instantiate the <Service/>, so supply a do-nothing resource. --> |
| 50 | <ConfigurationResource |
| 51 | file="/edu/internet2/middleware/psp/util/empty-bean.xml" |
| 52 | xsi:type="resource:ClasspathResource" /> |
| 53 | </Service> |
| 54 | --> |
| 55 | |
| 56 | <Service |
| 57 | id="ldap" |
| 58 | xsi:type="psp-ldap-target:LdapTarget" |
| 59 | logSpml="true" |
| 60 | ldapPoolId="ldap" |
| 61 | ldapPoolIdSource="spring"> |
| 62 | <!-- A <ConfigurationResource/> is required to instantiate the <Service/>, so supply a do-nothing resource. --> |
| 63 | <ConfigurationResource |
| 64 | file="/psp-vt-ldap-1.xml" |
| 65 | xsi:type="resource:ClasspathResource"> |
| 66 | <ResourceFilter |
| 67 | xsi:type="grouper:ClasspathPropertyReplacement" |
| 68 | xmlns="urn:mace:shibboleth:2.0:resource" |
| 69 | propertyFile="/ldap.properties" /> |
| 70 | </ConfigurationResource> |
| 71 | </Service> |
| 72 | }}} |
| 73 | |
| 74 | 3. Create the file /srv/grouper/grouper.api-2.1.4/conf/psp-vt-ldap-1.xml with the following contents. Be sure to update the password. Also, note that this is connecting to the directory on grinnell using the non-SSL port 1389. If this was connecting to a directory on a remote machine, the SSL port should be used. |
| 75 | |
| 76 | {{{ |
| 77 | <?xml version="1.0" encoding="UTF-8"?> |
| 78 | |
| 79 | <beans |
| 80 | xmlns="http://www.springframework.org/schema/beans" |
| 81 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 82 | xmlns:p="http://www.springframework.org/schema/p" |
| 83 | xmlns:util="http://www.springframework.org/schema/util" |
| 84 | xsi:schemaLocation=" |
| 85 | http://www.springframework.org/schema/beans classpath:/schema/spring-beans-2.5.xsd |
| 86 | http://www.springframework.org/schema/util classpath:/schema/spring-util-2.5.xsd"> |
| 87 | |
| 88 | <bean |
| 89 | id="ldapFactory1" |
| 90 | class="edu.vt.middleware.ldap.pool.DefaultLdapFactory" |
| 91 | p:connectOnCreate="false"> |
| 92 | <constructor-arg |
| 93 | index="0" |
| 94 | ref="ldapConfig1" /> |
| 95 | </bean> |
| 96 | |
| 97 | <bean |
| 98 | id="ldap" |
| 99 | class="edu.vt.middleware.ldap.pool.SoftLimitLdapPool" |
| 100 | init-method="initialize" |
| 101 | p:blockWaitTime="1000"> |
| 102 | <constructor-arg index="0"> |
| 103 | <bean |
| 104 | class="edu.vt.middleware.ldap.pool.LdapPoolConfig" |
| 105 | p:minPoolSize="5" |
| 106 | p:maxPoolSize="20" |
| 107 | p:validatePeriodically="true" |
| 108 | p:validateTimerPeriod="30000" |
| 109 | p:expirationTime="600000" |
| 110 | p:pruneTimerPeriod="60000" /> |
| 111 | </constructor-arg> |
| 112 | <constructor-arg |
| 113 | index="1" |
| 114 | ref="ldapFactory1" /> |
| 115 | </bean> |
| 116 | |
| 117 | <bean |
| 118 | id="ldapConfig1" |
| 119 | class="edu.vt.middleware.ldap.LdapConfig" |
| 120 | p:ldapUrl="ldap://localhost:1389" |
| 121 | p:tls="${edu.vt.middleware.ldap.tls}" |
| 122 | p:ssl="${edu.vt.middleware.ldap.ssl}" |
| 123 | p:baseDn="${edu.vt.middleware.ldap.baseDn}" |
| 124 | p:authtype="${edu.vt.middleware.ldap.authtype}" |
| 125 | p:serviceUser="uid=grouper03,ou=resource,dc=alaska,dc=edu"> |
| 126 | <property |
| 127 | name="serviceCredential" |
| 128 | value="<PASSWORD>" /> |
| 129 | |
| 130 | <property name="searchResultHandlers"> |
| 131 | <list> |
| 132 | <bean |
| 133 | id="quotedDnSrh" |
| 134 | class="edu.internet2.middleware.psp.ldap.QuotedDnResultHandler" /> |
| 135 | <bean |
| 136 | id="fqdnSrh" |
| 137 | class="edu.vt.middleware.ldap.handler.FqdnSearchResultHandler" /> |
| 138 | <bean |
| 139 | id="entryDnSrh" |
| 140 | class="edu.vt.middleware.ldap.handler.EntryDnSearchResultHandler" /> |
| 141 | </list> |
| 142 | </property> |
| 143 | |
| 144 | </bean> |
| 145 | </beans> |
| 146 | }}} |