Joomla LDAP Plugin
Code:
Host: w2003ad.domain.com
Port: 389
LDAP v3: Yes
Negotiate TLS: No
Don't follow referrals: No
LDAP directory is AD: Yes
Base DN: DC=domain,DC=pt
Users DN: [username]@domain.com
Search string: sAMAccountName=[search]
Connect username: admin-username@domain.com
Connect password: password
Authorization Method: Bind As User
Map FullName: displayName
Map Email: mail
Map User ID: sAMAccountName
Map Password: userPassword
Map User Blocked: loginDisabled
Map Group Name: groupMembership
Map Group Members: member
Auto Create Users: Yes
Auto Create Public Frontend: Yes
Demore Users: No
Force LDAP Auth. Yes
CB: Confirm Users: Autoconfirm
Syncronization Event: On Login
Default Group: Frontend User
Use iconv: Yes
LDAP SSI
Code:
Use Global Settings: Yes
HTTP Single Signon
Code:
User Key: REMOTE_USER
Username Replacement: @DOMAIN.COM
Use Global Settings: Yes
LDAP Sync
Code:
Use Global Settings: Yes
You will also need to configure Kerberos on the linux host, to do so create a keytab file for the admin user in the AD with a line such as:
Code:
ktpass -princ host/hostname.domain.com@REALM.COM -mapuser joomla -pass joomla -out joomla.keytab
ktpass -princ HTTP/hostname.domain.com@REALM.COM -mapuser joomla-http -pass joomla -out joomla-http.keytab
Import said keytab file into your linux host with something like:
Code:
ktutil
> rkt /path/to/joomla.keytab
> rkt /path/to/joomla-http.keytab
> wkt /etc/krb5.keytab
> q
Test authentication with "kinit -k host/hostname.domain.com" and then just "kinit".
In Joomla root directory (webserver) you will need to create a .htaccess file such as:
Code:
Options FollowSymLinks Indexes MultiViews
IndexOptions FancyIndexing
<FilesMatch "\.php$">
AuthType Kerberos
KrbAuthRealm DOMAIN.COM
KrbServiceName HTTP
Krb5Keytab /etc/krb5.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd off
require valid-user
</FilesMatch>
If you don't have kerberos authentication on the system your using to test with, change the directive KrbMethodK5Passwd to ON. It will then bring up a password dialog to request for your username and password.
As you can see this .htaccess file only applies to .PHP files, so you will also need to create a index.html file that redirects to index.php file such as:
Code:
<html>
<head>
<title></title>
<meta http-equiv="refresh" content="0;url=index.php">
</head>
<body></body>
</html>
This is needed to prevent the automatic detection of replay attacks.
This is everything I remember I did. The SSI module wont be necessary if all you want is SSO. I however with the use of "ErrorDocument 401" managed to get both SSO and SSI/Normal login working.
Hope this helps.