<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sam Moffatt @ Pasamio.com &#187; authentication</title>
	<atom:link href="http://pasamio.com/category/authentication/feed/" rel="self" type="application/rss+xml" />
	<link>http://pasamio.com</link>
	<description>Sam Moffatt's Tech Blog: Writings on Technology</description>
	<lastBuildDate>Sat, 17 Mar 2012 03:24:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Month in review: January</title>
		<link>http://pasamio.com/2011/02/01/month-in-review-january/</link>
		<comments>http://pasamio.com/2011/02/01/month-in-review-january/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 07:25:26 +0000</pubDate>
		<dc:creator>pasamio</dc:creator>
				<category><![CDATA[accesscontrol]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[eprints]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[university]]></category>
		<category><![CDATA[vufind]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=778</guid>
		<description><![CDATA[January for me was an interesting and varied month. Here is a quick look back at what I got up to in the month. Joomla! integration for the Access All Databases Access All Databases is a USQ system that really screams to be embedded in a CCK style app. It is a set of custom [...]]]></description>
			<content:encoded><![CDATA[<p>January for me was an interesting and varied month. Here is a quick look back at what I got up to in the month.<br />
<span id="more-778"></span><br />
<strong>Joomla! integration for the Access All Databases</strong><br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/aad-joomla-research.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/aad-joomla-research-150x150.png" alt="" title="Access All Databases in Joomla!" width="150" height="150" class="alignleft size-thumbnail wp-image-795" align="left" valign="top" /></a><a href="http://resguide.usq.edu.au">Access All Databases</a> is a USQ system that really screams to be embedded in a CCK style app. It is a set of custom fields, some search and a bit of link tracking. Beyond versioning and approval of edits there is no significant functionality beyond CRUD in this application. At the moment it is a hand built system written in PHP and badly needing redevelopment into a more modular nature. The approach I&#8217;ve taken is to experiment with using Joomla! and Flexicontent to rebuild the application from scratch. So far I&#8217;m doing well and I&#8217;ve managed to recreate the basic look and feel of the site. I&#8217;ve got one custom menu module to integrate Flexicontent&#8217;s nested categories to emulate the behaviour of another primitive CMS USQ uses called &#8220;<a href="http://libtute.usq.edu.au">Finding Information Tutorial</a>.&#8221; I&#8217;ve done a custom module override for the menu as well to get it using the current USQ look and feel by default. The great thing is that there is a mobile friendly version very easily with standard Joomla! tools. I don&#8217;t think I&#8217;ll get more time to play with this soon however it is already a good start.</p>
<p><strong>VuFind UConnect SSO</strong><br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/vufind-geany.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/vufind-geany-150x150.png" alt="" title="VuFind UConnect SSO in Geany" width="150" height="150" class="alignleft size-thumbnail wp-image-796" align="left" valign="top" /></a>VuFind is the library catalogue system and UConnect is USQ&#8217;s custom SSO system that was developed. I&#8217;ve gone through and built an integration between the two which looks like the following:<br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/vufind-sso.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/vufind-sso-300x207.png" alt="" title="VuFind with UConnect SSO" width="300" height="207" class="alignnone size-medium wp-image-794" valign="none" /></a><br />
I talk a bit more about <a href="http://pasamio.com/?p=762">VuFind, SSO and authentication</a> in an earlier blog post.</p>
<p><strong>Book Finder</strong><br />
This is primarily the work of Ken MacAlpine who is working on mobile technologies at USQ. Ken developed an SVG powered map of the top floor of the library to aide in the location of books. He put together a database of roughly where the catalogue numbers stop and start for each shelf on each side. It has been integrated into the catalogue and shows up as a &#8220;Show on Map&#8221; link for Toowoomba Main Collection items.<br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/bookfinder-1.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/bookfinder-1-300x207.png" alt="" title="USQ Book Finder in Library catalogue" width="300" height="207" class="alignnone size-medium wp-image-793" /></a><br />
 At some point in the future we will work to expand it to all campuses and collections. When it is clicked it appears in a new window like this:<br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/bookfinder-2.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/bookfinder-2-192x300.png" alt="" title="USQ BookFinder display" width="192" height="300" class="alignnone size-medium wp-image-792" /></a><br />
It is aimed to be the same size as an iPhone display so that it fits neatly there. It also works in all browsers that support SVG. Fallback support is provided for IE since it doesn&#8217;t support SVG yet.</p>
<p><strong>ePrints, RPCS and data conversion!</strong><br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/rpcs-webmatrix.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/rpcs-webmatrix-150x150.png" alt="" title="RPCS modifications in Web Matrix" width="150" height="150" class="alignleft size-thumbnail wp-image-788"  align="left" valign="top" /></a>As an interesting exercise I also spent some time converting data from an internal reporting system, RPCS, into our open access repository &#8211; ePrints. This was a fun project which required connecting to RPCS&#8217; MSSQL database and outputting an XML file for ePrints to eat. To do this I figured I&#8217;d pull out <a href="http://www.microsoft.com/web/">Web Matrix</a>, Microsoft&#8217;s cut down editor for web developers. It feels on par with Geany though it has a built in web server, request tracking and a database explorer. It also integrates with the Web Platform Installer product which means I can easily install other applications. I used Web Matrix to kick start the Joomla! install for the Access All Databases research project as well.</p>
<p><a href="http://pasamio.com/wp-content/uploads/2011/01/eprints-eclipse.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/eprints-eclipse-150x150.png" alt="" title="ePrints Author ID XML file in Eclipse" width="150" height="150" class="alignright size-thumbnail wp-image-791"  align="right" valign="top" /></a>The RPCS data is loaded into our ePrints system along side the <a href="http://pasamio.com/2009/08/28/eprints-author-id/">Author ID</a> project that existed there. We&#8217;re also pulling across the data from their system which is going to result in duplicate authors until we merge them down to uniques however doing so in an automated manner isn&#8217;t easily possible. There is a whole heap of work to get things together but all in all we&#8217;re doing well.</p>
<p><strong>EQUELLA Moodle module</strong><br />
<a href="http://pasamio.com/wp-content/uploads/2011/01/moodle-equella-1.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/moodle-equella-1-150x150.png" alt="" title="Screenshot of EQUELLA Moodle module 1" width="150" height="150" class="alignleft size-thumbnail wp-image-790" align="left" valign="top" /></a>Last but not least I&#8217;ve been playing with the EQUELLA Moodle module. It adds an extra option to the Moodle resource drop down and enables access to select items from the EQUELLA repository software. </p>
<p><a href="http://pasamio.com/wp-content/uploads/2011/01/moodle-equella-2.png"><img src="http://pasamio.com/wp-content/uploads/2011/01/moodle-equella-2-150x150.png" alt="" title="Screenshot of EQUELLA Moodle module 2" width="150" height="150" class="alignright size-thumbnail wp-image-789"  align="right" valign="top" /></a>I&#8217;ve used Web Matrix here to deploy out a quick Moodle site utilising the same Web Platform Installer technology and managed to get up and running quickly with everything. The deployment of the module to our main Moodle environment would enable lecturers to directly select course readings to embed in relevant modules on their Moodle course pages &#8211; exciting!</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2011/02/01/month-in-review-january/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VuFind, Single Sign On and authentication!</title>
		<link>http://pasamio.com/2011/01/28/vufind-single-sign-on-and-authentication/</link>
		<comments>http://pasamio.com/2011/01/28/vufind-single-sign-on-and-authentication/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 23:24:39 +0000</pubDate>
		<dc:creator>pasamio</dc:creator>
				<category><![CDATA[authentication]]></category>
		<category><![CDATA[vufind]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=762</guid>
		<description><![CDATA[The other day I finished up the work I had been doing for the the last week or so on integrating the different solutions for authenticating users at USQ. This evening I finished up the plugins and services required to handle authentication via USQ&#8217;s custom single sign-on (SSO) system (&#8220;USQAuth&#8221;), USQ&#8217;s single sign in (SSI) [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I finished up the work I had been doing for the the last week or so on integrating the different solutions for authenticating users at USQ. This evening I finished up the plugins and services required to handle authentication via USQ&#8217;s custom single sign-on (SSO) system (&#8220;USQAuth&#8221;), USQ&#8217;s single sign in (SSI) system (Oracle Internet Directory with an LDAP interface) and USQ Integrated Library System, Virtua) so that they all play nicely together. Something that one would think should be relatively easy to do turns out to be a non-trivial task.<br />
<span id="more-762"></span><br />
First some background. A few years ago before I joined the USQ Library they implemented the open source VuFind application in its &#8220;1.0RC1&#8243; form. Recently the Library managed to rebuild the application to not use the deep core hacks that initially were implemented to get it deployed. Some of it was due to the radical architectural improvements between 1.0RC1 and 1.0RC2 as well as the final 1.0 release which helped make it easier to extend. </p>
<p>USQ also developed the Virtua driver for VuFind. Virtua, the library&#8217;s integrated library system (ILS), doesn&#8217;t provide a driver themselves but sells a reasonably expensive layer which integrates with Drupal these days. Originally such a layer didn&#8217;t exist and the system operates by a complicated mess of reading directly from database tables and posting stuff to arcane undocumented web interfaces through an even older web application known as &#8220;iPortal&#8221; with a binary named &#8220;chameleon&#8221;. Much fun!</p>
<p>So one of the things that has been desired for a while is the ability to integrate with the corporate directory service and corporate single sign on service. Unfortunately the vendor product is an all or nothing: you either have everyone authenticating from the directory or you create accounts inside the ILS which can authenticate. Due to the nature of our Library and the non-USQ patrons (e.g. people who pay to join the library or reciprocal borrowers) we have we can&#8217;t easily just pick the LDAP option. That leaves us in a position where we have to have our own passwords distinct from everything else which leaves a bad user experience.</p>
<p>Fortunately VuFind has a pluggable authentication layer. This means that we can supply our own authentication to handle things. Great! Except that the list of authentication plugins was hard coded. Well not so bad, but easy enough to fix by altering the system to have <a href="http://vufind.org/jira/browse/VUFIND-365">more flexible support for authentication handlers</a>. </p>
<p>So by default we have an ILS authentication handler which works fine. And for those non-USQ users we still want to use that handler because it works great right now. But we also want to have another one that hooks into our LDAP directory and integrates there. Now I could build a new magical plugin that handles both the ILS authentication and the LDAP authentication however I figured that this was a bit much and decided instead to build an authentication handler which allows chaining of multiple authentication handlers, creatively called &#8220;<a href="http://vufind.org/jira/browse/VUFIND-368">MultiAuth</a>&#8220;. This allows chaining and processing of the fields to ensure that they are consistently used by all subsequent child plugins. Nifty!</p>
<p>So now that we have better pluggable authentication support and the ability to chain multiple plugins we&#8217;re getting close to everything we need. The USQ situation is unique in that students are issued with a barcode identical to their student number. This makes them easy to process because we can map them directly from the LDAP interface into the ILS system. Staff however present a much trickier problem. Staff are created with a custom barcode and identifier which is distinct from their staff username and unique from the staff payroll number. This means that we need to dereference their username back to their ILS identity. Fortunately this was already done: an alternate barcode in a particular format stored their payroll number for cross verification. Sweet! In the not so lucky bucket was the fact that the custom barcode format meant that I could do a direct mapping still and needed to write some custom code. So with some modifications to the Virtua driver to pull out the alternate barcode and grab their real barcode to log the user in. </p>
<p>So at this point a user can login using the LDAP credentials or the standard ILS credentials. For relevant staff and students this means they&#8217;ve got two options but thats better than nothing. This is great but it isn&#8217;t single sign on yet because they have to log into the library catalogue specifically and that isn&#8217;t fun! So bring on the single sign on!</p>
<p>USQ has its own SSO system that was developed which means the standard mechanisms don&#8217;t work (bummer!). Fortunately our ICT department has some smart people and they&#8217;re also PHP friendly which means that there was already a library and sample code sitting just begging to be integrated. Surprisingly with the rest of the LDAP stuff in place this was relatively easy. The library did the heavy lifting of authenticating the user and returning their details so we just have to replicate what we had before. Students go straight through since their usernames match their barcode and we do a lookup with the staff payroll number to backtrack to finding their actual barcode and then logging them into the system and sending them on their way.</p>
<p>Fortunately this is all now in place on the live system which is up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2011/01/28/vufind-single-sign-on-and-authentication/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Putting Token Login to work</title>
		<link>http://pasamio.com/2009/02/22/putting-token-login-to-work/</link>
		<comments>http://pasamio.com/2009/02/22/putting-token-login-to-work/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 09:07:00 +0000</pubDate>
		<dc:creator>pasamio</dc:creator>
				<category><![CDATA[authentication]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[jauthtools]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=272</guid>
		<description><![CDATA[So a few weeks ago I released JAuthTools 1.5.4 which features Token Login. Token Login was created to solve the need to generate a secure token that you can use for automatic login, for example with stuff like newsletters. Today I&#8217;m going to show you how you can write something simple with Token Login to [...]]]></description>
			<content:encoded><![CDATA[<p>So a few weeks ago I released JAuthTools 1.5.4 which features Token Login. Token Login was created to solve the need to generate a secure token that you can use for automatic login, for example with stuff like newsletters. Today I&#8217;m going to show you how you can write something simple with Token Login to handle automatic login with tokens in a unique problem case.<br />
<span id="more-272"></span><br />
The other day on the JAuthTools mailing list there was an email of a weird case where the user&#8217;s session was being created initially with the SSO system but as soon as they clicked around it appeared like they logged out. With a bit of work we managed to work out the initial hit was proxied and the session was being created for the proxy not for the actual user. So initially the user was being successfully authenticated which gave me an idea.</p>
<p>My solution was to use token login to handle the actual request. The process is a tad convoluted, but the diagram should explain how the system works:<br />
<a href="http://pasamio.com/wp-content/uploads/2009/02/tokenlogin-sample.png"><img src="http://pasamio.com/wp-content/uploads/2009/02/tokenlogin-sample-143x300.png" alt="" title="Workflow Diagram" width="143" height="300" class="alignnone size-medium wp-image-273" /></a><br />
So the user logs into a remote service, which proxies a username to the Joomla! which is picked up by SSO HTTP in a custom component which generates a token using the detected username, redirects the user to the token login component (not through the proxy) which then lets the user log in and continue through the site.</p>
<p>So what we need to create is a new component to handle detecting the user, creating the token and them redirecting them. We can use the SSO HTTP plugin to handle detecting the remote user perfectly fine (this has already been tested) and the Token Login component can handle validating tokens and redirecting users.</p>
<p><strong>Step 1: Prerequisites</strong><br />
I&#8217;m going to use the JAuthTools packages available from Joomla!Code. To install these, you will need to install the <a href="http://sammoffatt.com.au/os/index.php/joomla-15-products/10-advanced-tools">Advanced Tools</a> package first before you get started. The latest version is <a href="http://joomlacode.org/gf/download/frsrelease/6797/22390/com_advancedtools.tgz">Advanced Tools 1.5.1</a> available from JoomlaCode.</p>
<p>Once we&#8217;ve got the Advanced Tools installed, we&#8217;re going to need the <a href="http://joomlacode.org/gf/download/frsrelease/9530/36171/pkg_jauthtools_core.tgz">JAuthTools 1.5.4 Core package</a>. This will give us the SSO library that we&#8217;re going to use later on. We will also need the <a href="http://joomlacode.org/gf/download/frsrelease/9530/36175/pkg_jauthtools_ssoplugins.tgz">SSO plugins</a> package (for the SSO HTTP plugin in our case) and the <a href="http://joomlacode.org/gf/download/frsrelease/9530/36176/pkg_jauthtools_tokenlogin.tgz">Token Login package</a>. As we&#8217;re not using the user source plugins for this case (both LDAP and Session are provided by default) we don&#8217;t need to install them and since we&#8217;re going to write our own SSO detection component we don&#8217;t need to use the options offered by the SSO package.</p>
<p>Once we&#8217;ve got all of the prerequisites installed we can start building the component</p>
<p><strong>Step 2: Building the component</strong><br />
So we&#8217;ll start building our component with the basic few lines all components require:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;?php<br />
defined('_JEXEC') or die();</div></div>
<p>This basic check ensures that we&#8217;re within Joomla!&#8217;s confines or kills the execution if we&#8217;re not. From here, lets set up some basic variables:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$landingpage = 'index.php';<br />
$autocreate = false;</div></div>
<p>These are two variables we&#8217;re going to use later. The landing page is used for token login to redirect the user to a page once they&#8217;ve been authenticated successfully. The autocreate option is utilised by the SSO system to determine if it should automatically create the user. Keep these in mind as we&#8217;ll use them later on.</p>
<p>In this next phase we&#8217;re going to take a copy of the current user and then use the SSO system to attempt to do the login. If its successful, the user&#8217;s ID will change and we can then create a token for them and redirect so they can login, if not we&#8217;ll redirect them with an error message:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$user =&amp; JFactory::getUser();<br />
$oldid = $user-&gt;id;<br />
jimport('jauthtools.sso');<br />
jimport('jauthtools.usersource');<br />
$sso = new JAuthSSOAuthentication();<br />
$sso-&gt;doSSOAuth($autocreate);</div></div>
<p>So we get a reference to the user object, get a copy of the user ID, import the SSO library, create a new SSO authentication object and handle authentication. We see the $autocreate variable we initialised before used here. We could load the plugins ourselves and handle everything but the doSSOAuth call will handle this for us, create the users session and if requested attempt to create the user if they don&#8217;t exist. We can then check if the user ID&#8217;s are different and then create a token to direct the user back:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">if($oldid != $user-&gt;id) {<br />
&nbsp; &nbsp; &nbsp; &nbsp;jimport('jauthtools.token');<br />
&nbsp; &nbsp; &nbsp; &nbsp;$dbo =&amp; JFactory::getDBO();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token = new JAuthToolsToken($dbo);</div></div>
<p>A sizable chunk of code. So we check if the user ID has changed (typically from unauthenticated to authenticated, we could also just check if the user ID != 0 as well). We then import the token login library, grab a copy of the database object and then create a new token.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('username', $user-&gt;username);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('expiry', time() + 3600); // now + 1 hr (60 * 60)<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('logins', 1);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('landingpage', $landingpage);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;store();</div></div>
<p>So with the token, we set the username to be that of the currently authenticated user (which we know is correct), set the expiry to be the present time plus an hour. Since this data is only &#8216;temporary&#8217; we don&#8217;t bother with JDate and just use the server time. If the server transitions to or from daylight savings there could be an issue but since the user should be redirected rather quickly that seems like an unlikely possibility. We set the number of logins that the token is valid for, which for this case is only one and then we set the token&#8217;s landing page to be the value of $landingpage that we set before. Once we&#8217;ve set all of the data we call the &#8216;store&#8217; function to save all of this to the database which will also trigger the generation of the login token.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp;$session =&amp; JFactory::getSession();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$session-&gt;destroy();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app =&amp; JFactory::getApplication();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app-&gt;redirect($token-&gt;generateLoginUrl());</div></div>
<p>Since the session we&#8217;re currently in is invalid, we destroy it for a bit of extra security and then we redirect the user to the token login component. Since this request will get proxied as a redirect to the real site (hopefully the proxy doesn&#8217;t rewrite the redirect header coming back otherwise this will fail), token login can then authenticate the user (again) and create a session for them without the proxies&#8217; interference. There is however one last part of our component, which is the else case for if the user doesn&#8217;t get detected:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">} else {<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app =&amp; JFactory::getApplication();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app-&gt;redirect('index.php', JText::_('Invalid SSO Request'));<br />
}</div></div>
<p>So if we don&#8217;t detect anything, redirect the user to index.php with the message &#8216;Invalid SSO Request&#8217;. Too easy almost!</p>
<p>So for reference below is the final completed component file, don&#8217;t forget to update the values of $landingpage and $autocreate:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;?php<br />
defined('_JEXEC') or die('nachos libre!');<br />
$landingpage = 'http://www.google.com';<br />
$autocreate = false;<br />
$user =&amp; JFactory::getUser();<br />
$oldid = $user-&gt;id;<br />
jimport('jauthtools.sso');<br />
jimport('jauthtools.usersource');<br />
$sso = new JAuthSSOAuthentication();<br />
$sso-&gt;doSSOAuth($autocreate);<br />
if($oldid != $user-&gt;id) {<br />
&nbsp; &nbsp; &nbsp; &nbsp;jimport('jauthtools.token');<br />
&nbsp; &nbsp; &nbsp; &nbsp;$dbo =&amp; JFactory::getDBO();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token = new JAuthToolsToken($dbo);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('username', $user-&gt;username);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('expiry', time() + 3600); // now + 1 hr (60 * 60)<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('logins', 1);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;set('landingpage', $landingpage);<br />
&nbsp; &nbsp; &nbsp; &nbsp;$token-&gt;store();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$session =&amp; JFactory::getSession();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$session-&gt;destroy();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app =&amp; JFactory::getApplication();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app-&gt;redirect($token-&gt;generateLoginUrl());<br />
} else {<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app =&amp; JFactory::getApplication();<br />
&nbsp; &nbsp; &nbsp; &nbsp;$app-&gt;redirect('index.php', JText::_('Invalid SSO Request'));<br />
}</div></div>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2009/02/22/putting-token-login-to-work/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Using Context Login with GMail and Google Apps for your Domain</title>
		<link>http://pasamio.com/2009/02/08/using-context-login-with-gmail-and-google-apps-for-your-domain/</link>
		<comments>http://pasamio.com/2009/02/08/using-context-login-with-gmail-and-google-apps-for-your-domain/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 12:21:04 +0000</pubDate>
		<dc:creator>pasamio</dc:creator>
				<category><![CDATA[authentication]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jauthtools]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=232</guid>
		<description><![CDATA[Context login is a new concept that I&#8217;m introducing in 1.5.4 that features a new login module called &#8220;mod_contextlogin&#8221; and support from both the Advanced LDAP and Advanced GMail plugin. I&#8217;ll focus on today the GMail plugin and how you can use both context login and the Advanced GMail plugin to connect to two different [...]]]></description>
			<content:encoded><![CDATA[<p>Context login is a new concept that I&#8217;m introducing in 1.5.4 that features a new login module called &#8220;mod_contextlogin&#8221; and support from both the Advanced LDAP and Advanced GMail plugin. I&#8217;ll focus on today the GMail plugin and how you can use both context login and the Advanced GMail plugin to connect to two different Google supported domains (e.g. GMail and a Google Apps for your Domain site).</p>
<p>The first step in all of this is to install JAuthTools. The Context Login bit is mostly self contained so once you&#8217;ve got my <a title="Advanced Tools package" href="http://sammoffatt.com.au/os/index.php/joomla-15-products/10-advanced-tools">Advanced Tools extensions</a> installed you should be able to install the extras package. You can grab the 1.5.1 version of the Advanced Tools extension off Joomla!Code at <a title="Advanced Tools Installation Package" href="http://joomlacode.org/gf/download/frsrelease/6797/22390/com_advancedtools.tgz">http://joomlacode.org/gf/download/frsrelease/6797/22390/com_advancedtools.tgz</a> and install directly in Joomla!. The next item we&#8217;re going to need is the helper package, the best way to grab this is to install the <a title="JAuthTools Core Libraries" href="http://sammoffatt.com.au/jauthtools/Quickstart_for_1.5#Install_the_JAuthTools_Libraries">JAuthTools Core Package</a> from <a title="JAuthTools Core Libraries Installation Package" href="http://joomlacode.org/gf/download/frsrelease/9530/36171/pkg_jauthtools_core.tgz">http://joomlacode.org/gf/download/frsrelease/9530/36171/pkg_jauthtools_core.tgz</a> which will also give you SSO and User Source libraries as well. The <a title="Quickstart for 1.5: JAuthTools Extras Package" href="http://sammoffatt.com.au/jauthtools/Quickstart_for_1.5#Extras">JAuthTools Extras Package</a> contains both the context login module and the Advanced GMail authentication plugin. The extras package also has the LDAP user plugin and the Advanced LDAP plugin but we&#8217;re not going to use that today. The current version of the extras package is 1.5.4 (just released!) and you can grab it off JoomlaCode at <a title="JAuthTools Extras Joomla! Installation Package" href="http://joomlacode.org/gf/download/frsrelease/9530/36195/pkg_jauthtools_extras.tgz">http://joomlacode.org/gf/download/frsrelease/9530/36195/pkg_jauthtools_extras.tgz</a> and you can also install this directly into Joomla!.</p>
<p>Once you&#8217;ve got everything installed, you can get to work. The first place we need to go into the Module Manager in the Administrator and look for Context Login. It&#8217;ll be there but it won&#8217;t be published by default. Opening it up we&#8217;ll see a lot of the params that we know and love from the core built in login module but we&#8217;ll also see some params immediately below the caching option called &#8220;Contexts&#8221;, &#8220;Require Context&#8221; and &#8220;Default Context&#8221;. The &#8220;Contexts&#8221; param is a text field that allows you to enter a per line entry of contexts. In this case we&#8217;re going to have two different contexts: one for the main GMail domain (gmail.com) and another for a Google Apps for your Domain (say &#8220;yourdomain.com&#8221;). Perhaps you&#8217;ve got a few of these domains that you want to limit people to so what you can do is enable the &#8220;Require Context&#8221; option. This will enforce a given context upon the module and remove the ability for the user to be flexible. Keep in mind that this isn&#8217;t added with the request, only a context ID is sent which is then looked up and found on the remote site. The last option is the default context to use which is set to -1 initially but can be set to the index of the context (starting from 0). This changes the context select box with the default selected and is purely a cosmetic setting. Once you&#8217;ve put in a few domains, you can enable the module and position it somewhere. If you want to put in some extra settings you can also do this like you would do with the normal login module.</p>
<p>The next step is to configure the Advanced GMail plugin. The Advanced GMail has all of the features of the existing GMail plugin and then some. If you&#8217;re currently using the GMail plugin, disable it first before you switch to the Advanced GMail plugin. The Advanced GMail plugin has a few configuration options such as &#8220;Apply Suffix&#8221; (similar to contexts but limited to only a single domain), &#8220;Username Suffix&#8221; (used with Apply Suffix, a single domain name such as &#8220;gmail.com&#8221;) , &#8220;Verify Peer&#8221; is a SSL configuration option that should be left on unless you&#8217;re having seriously strange issues (at this point, change host!) and that leaves us with &#8220;Use Contexts&#8221;. This is a simple option that has &#8220;Yes&#8221;, &#8220;No&#8221; and &#8220;Require&#8221;. What this then causes it to do is look for a context in the request and then apply the context if it finds it. The &#8220;Require&#8221; option will then enforce the use of contexts and will fail the user if the contxt doesn&#8217;t line up properly. The last option is a &#8216;username&#8217; blacklist. This is a list of usernames that the plugin should never authenticate for which is useful for accounts that you may not control (e.g. &#8216;admin&#8217;) to prevent people logging in using it. This is an extra security feature that I&#8217;ve introduced and is certainly recommend using. Enable the plugin and we&#8217;re off!</p>
<p>Once both the module is configured and enabled as well as the plugin you should be able to see it in the front end. From here you can see the form and log into to it, selecting your context and then logging in appropriately.</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2009/02/08/using-context-login-with-gmail-and-google-apps-for-your-domain/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>JAuthTools 1.5.4 Released</title>
		<link>http://pasamio.com/2009/02/08/jauthtools-154-released/</link>
		<comments>http://pasamio.com/2009/02/08/jauthtools-154-released/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 05:02:28 +0000</pubDate>
		<dc:creator>pasamio</dc:creator>
				<category><![CDATA[authentication]]></category>
		<category><![CDATA[jauthtools]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=230</guid>
		<description><![CDATA[Today I finally got around to releasing JAuthTools 1.5.4, the latest release in JAuthTools. I&#8217;ve put together a lot of stuff for this new release and I&#8217;m happy to have it released out there. This release introduces Token Login, Context Login, the release of my own LDAP and GMail authentication plugins each with extra advanced [...]]]></description>
			<content:encoded><![CDATA[<p>Today I finally got around to releasing JAuthTools 1.5.4, the latest release in <a title="JAuthTools Wiki" href="http://sammoffatt.com.au/jauthtools">JAuthTools</a>. I&#8217;ve put together a lot of stuff for this new release and I&#8217;m happy to have it released out there. This release introduces Token Login, Context Login, the release of my own LDAP and GMail authentication plugins each with extra advanced features (including context integration), an OpenID SSO plugin submitted by Ian MacLennan, a new way of handling SSO plugins with new types of plugins and many more. There are tonnes of little items that I&#8217;ve added as well as bugs that have been fixed. I will follow up with blog posts about how you can configure different items to work together.</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2009/02/08/jauthtools-154-released/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Today: 04-Nov-2008: Fun with Kerberos</title>
		<link>http://pasamio.com/2008/11/04/today-04-nov-2008-fun-with-kerberos/</link>
		<comments>http://pasamio.com/2008/11/04/today-04-nov-2008-fun-with-kerberos/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 11:26:37 +0000</pubDate>
		<dc:creator>pasamio</dc:creator>
				<category><![CDATA[activedirectory]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jauthtools]]></category>
		<category><![CDATA[kerberos]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[today]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=53</guid>
		<description><![CDATA[Today was a mostly ordinary day, though the day started with me buying Red Alert 3, so that wasn&#8217;t too bad &#8211; yay! Australia! A week behind the rest of the world! I could have pirated the game and had it faster and cheaper, perhaps even finished! But I digress, it was an ordinary day. [...]]]></description>
			<content:encoded><![CDATA[<p>Today was a mostly ordinary day, though the day started with me buying Red Alert 3, so that wasn&#8217;t too bad &#8211; yay! Australia! A week behind the rest of the world! I could have pirated the game and had it faster and cheaper, perhaps even finished! But I digress, it was an ordinary day.</p>
<p>Today is Melbourne Cup day, being the first Tuesday of November, so we had a luncheon of sorts and a drawing for the horses. Didn&#8217;t win, the food was good, I&#8217;m $10 poorer and such is life.</p>
<p>I&#8217;ve been spending more time at work using my Mac as a primary machine. Since I&#8217;ve moved to Exchange from Domino (or Outlook from Notes), I&#8217;ve gotten Evolution on Linux mostly working (with the exception that it doesn&#8217;t automatically look up names for emails which is tedious) and Apple&#8217;s Mail and Address Book both playing nicely with Exchange. I do miss the fact that I had Notes on my Linux desktop and things mostly worked albeit slowly and consuming large amounts of memory, but it worked with all of the features available normally. Mail&#8217;s ability to due autocompletion is what is drawing me back to it as a client, which when you start writing emails is actually more useful than you would think. Its still not up to par with the Notes autocomplete which was quite cool and a lot more advanced than either Mail&#8217;s or Outlook&#8217;s (I get Outlook via Citrix).</p>
<p>I&#8217;ve also been trying out NetBean&#8217;s PHP Early Access through a nightly build (has the ability to create PHP projects from existing sources) and I&#8217;m impressed with it. I tried it out because I wanted to try out debugging with my PHP instance and the dated version of Eclipse I had (3.2) seems to have issues &#8211; more than likely my fault &#8211; and I don&#8217;t want to waste time on trying to fix something. NetBean&#8217;s installed and worked almost instantly, however it took me a while to find where I could change the params to get J! to route items properly. I managed to work out the bug that I was having without too much issue. I knew what it was but not where it was: turned out to be exactly what I thought, an assignment operator used instead of the append operator. The Subversion support seems to be a bit off and doesn&#8217;t work yet, so I&#8217;m not quite ready to ditch Eclipse yet &#8211; but I&#8217;ll try with later versions to see what I get.</p>
<p>I had a chat with the principal (we have principal, manager, director, CEO as our chain of command) about the projects that I&#8217;m doing and the ones I&#8217;m interested in so I&#8217;ll have to do some paperwork and business cases for the new projects and justify items. We&#8217;ve recently got a new manager who is trying to find where everything is so part of this is explaining everything so that he can get a grasp of the way the system works.</p>
<p>Then I spent the majority of the afternoon with one of the ITS guys working through how our Citrix boxes work with Flex profiles and the mandatory profiles filling in the gaps in his knowledge and how different parts of the system and why items might break or behave in a particular way. I think he&#8217;s worked out how it works and he&#8217;s even figured out why a few issues are happening. So nothing exciting but useful.</p>
<p>And finally I had fun with Kerberos. I built the Kerberos module on the SLES10 server, installed it, restarted Apache and tried to get it to work. On my Mac both Safari and Firefox requested a username and password instead of using a Kerberos token and IE6 in my Citrix session seemed to just go in a weird infinite loop. I slowly worked through my entire Kerberos configuration on the server until I got to looking at the keys. It turns out that the keys were created with the wrong virtual host name for the server which is causing the issues. The keys for the real server name actually worked fine when I got around to testing them which proves that everything will work once I get the keys. The last part is a fix to the Citrix system which for some reason think that the intranet site is actually on the internet, but I&#8217;m assured that this should be easy to achieve. Getting Kerberos up and running was pretty easy ignoring the faulty keys compared with some of the nightmares I&#8217;ve had getting items to play nicely together. I&#8217;ll probably add something to my guide (http://sammoffatt.com.au/jauthtools/Kerberos) on it, to help with items.</p>
<p>Who knows, I may have even figured this Kerberos thing out!</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2008/11/04/today-04-nov-2008-fun-with-kerberos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Today, 14-Jan-08: Query languages, LDAP, business intelligence and filesystems</title>
		<link>http://pasamio.com/2008/01/14/today-14-jan-08-query-languages-ldap-business-intelligence-and-filesystems/</link>
		<comments>http://pasamio.com/2008/01/14/today-14-jan-08-query-languages-ldap-business-intelligence-and-filesystems/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 07:10:53 +0000</pubDate>
		<dc:creator>Pasamio</dc:creator>
				<category><![CDATA[authentication]]></category>
		<category><![CDATA[businessintelligence]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[edirectory]]></category>
		<category><![CDATA[endoftheday]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[filesystems]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[lca2008]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[linux.conf.au]]></category>
		<category><![CDATA[mdfs]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[pentaho]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[today]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=34</guid>
		<description><![CDATA[I&#8217;m going to start regularly writing daily posts about what I did today and the things I found interesting, I&#8217;ll at least try anyway. First up for today is a personal thing, I completed a rather largish Uni assignment today which reminded me of all of the pains that come with C++, but to follow [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to start regularly writing daily posts about what I did today and the things I found interesting, I&#8217;ll at least try anyway.</p>
<p>First up for today is a personal thing, I completed a rather largish Uni assignment today which reminded me of all of the pains that come with C++, but to follow that I returned to working on my filesystem in C, which is just more pain. I got a quick response back, and almost full marks (96%) so I&#8217;m happy for all of the time I put in to get it done and how its probably far more complicated than anything else that will be submitted (it used Boost Signals and a whole heap of other things that I don&#8217;t think will ever be taught in the subject for a long time). But hey, thats just Uni!</p>
<p>Today I finally managed to get Pentaho, some business intelligence (BI) software, to play nicely with Novell eDirectory&#8217;s LDAP interface. I must have missed the option, but Pentaho doesn&#8217;t seem to accept anonymous binding to the LDAP server, which means I need to bind as a user. By default our users funnily enough have less access than the anonymous account (which is actually a proxy account with full browse permissions). The solution was simple enough: we shunted our dummy Pentaho user into the same group as the anonymous proxy account and everything worked. So I&#8217;ve now got Pentaho using LDAP for authentication (yay!) and a MySQL database to get its role/group permissions. Funnily enough when its all said and done the documentation is pretty close to the mark.</p>
<p>But once I had that I don&#8217;t have an ability to manage the groups/roles within Pentaho, so I end up having to write some small PHP to manage that. Luckily I worked on a project a while back that I called &#8220;Joomla! Central Management for Users&#8221; which basically connected directly to MySQL databases of Joomla! installs and altered the users. I had originally built it with a plugin infrastructure in mind so that I could plug other stuff into it later. Starting this morning it only had a &#8216;connector&#8217; for Joomla! 1.0 via MySQL and LDAP, now it has one for the Pentaho security tables. This means I can easily copy users from LDAP or Joomla! into Pentaho without too much issues and has a debugged user interface already. But wait theres more!</p>
<p>When I was originally developing the tool I wrote a query language for it. See, SQL is a great language for databases, but its a bit hard to apply in situations where you don&#8217;t quite need all of that power. So I wrote my own query language. Its quite simple it can validate simple attributes and allows for set operations within &#8220;Sites&#8221; (a site is a container for users and groups). So for example I want to see all of the users who are on our web site but not in our LDAP directory:<br />
existsin &#8220;Web Sites&#8221; and not existsin &#8220;LDAP&#8221;</p>
<p>Primitive sure, but it because writing a large SQL expression for something simple. I hope to expand on it, but it already does what it needs to do for the time being.</p>
<p>So I&#8217;ve covered query languages, LDAP and BI! All I need now is the filesystem news. Today there was a whole heap of fan fare on Slashdot about the ZFS news from Apple, whilst thats cool and all (especially since I don&#8217;t mind Apple&#8217;s UI), I personally have my own filesystem that I&#8217;ve gotten back into to do some work on. It also happens to be a Uni assignment due on Friday! So I&#8217;ll be back to working on that and hopefully I&#8217;ll have it to a nice stage that I can do some lightening talks at linux.conf.au!</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2008/01/14/today-14-jan-08-query-languages-ldap-business-intelligence-and-filesystems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JDiagnostic tech preview released</title>
		<link>http://pasamio.com/2007/06/14/jdiagnostic-tech-preview-released/</link>
		<comments>http://pasamio.com/2007/06/14/jdiagnostic-tech-preview-released/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 15:30:30 +0000</pubDate>
		<dc:creator>Pasamio</dc:creator>
				<category><![CDATA[activedirectory]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=6</guid>
		<description><![CDATA[A lot of emails I get are with regards to deploying JAuthTools and Microsoft Active Directory (AD). AD doesn&#8217;t make things easy for users in the LDAP interface: its case sensitive, has everything in capitals, disallows anonymous searching (though users can bind anonymously and see,well, nothing) and has an interesting default layout (e.g. CN=Users instead [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of emails I get are with regards to deploying JAuthTools and Microsoft Active Directory (AD). AD doesn&#8217;t make things easy for users in the LDAP interface: its case sensitive, has everything in capitals, disallows anonymous searching (though users can bind anonymously and see,well, nothing) and has an interesting default layout (e.g. CN=Users instead of OU=Users). By default Joomla! 1.0.x doesn&#8217;t have the ability to log items which is a function of the system (e.g. there are very few functions that run purely in the &#8216;background&#8217;) which makes it hard to diagnose things that are going wrong. There is a small tool I use called JLogger which is basically a mambot API loader and a component to view the logs. Its pretty primitive and I haven&#8217;t &#8216;released&#8217; it because it hasn&#8217;t had anywhere enough work done on it (it is <a href="http://http://joomlacode.org/gf/project/tccprojects/scmsvn/?action=browse&amp;path=%2Fjlogger%2Ftrunk%2F" title="JLogger SVN Path">available via Subversion</a>, zip files together to create installable packages) but it was one of the first step towards diagnostic tools, and this is another step.</p>
<p>Recently I released JDiagnostic, a tech demo of a tool that I hope will evolve into a launching pad for a wide range of useful tools, tests and diagnostics. At present it solves the above stated problem: MSAD integration. Its a step by step wizard configurator for Active Directory, with tests along the way. At the end it configures the LDAP SSI and Joomla! LDAP mambots with as much details as it can (what you&#8217;ve supplied) leaving you hopefully with a consistent and working Active Directory setup, without the pain of having to read through logs to see what is happening.</p>
<p>You can check out JDiagnostic on the <a href="http://joomlacode.org/gf/project/pasamioprojects/frs/">Pasamio&#8217;s Projects FRS page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2007/06/14/jdiagnostic-tech-preview-released/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Joomla! 1.0.x LDAP coolness</title>
		<link>http://pasamio.com/2007/06/05/joomla-10x-ldap-coolness/</link>
		<comments>http://pasamio.com/2007/06/05/joomla-10x-ldap-coolness/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 12:58:27 +0000</pubDate>
		<dc:creator>Pasamio</dc:creator>
				<category><![CDATA[authentication]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[ldap]]></category>

		<guid isPermaLink="false">http://pasamio.com/?p=4</guid>
		<description><![CDATA[So I thought I&#8217;d start out with something I think is pretty cool: with a few tweaks you can fully integrate your LDAP system into Joomla! authentication system. Frontend and backend. Thats right you can use LDAP Tools to authenticate your users, and you can even plug it into JACLPlus or similar if you&#8217;re using [...]]]></description>
			<content:encoded><![CDATA[<p>So I thought I&#8217;d start out with something I think is pretty cool: with a few tweaks you can fully integrate your LDAP system into Joomla! authentication system. Frontend and backend. Thats right you can use LDAP Tools to authenticate your users, and you can even plug it into JACLPlus or similar if you&#8217;re using that in your corporate environment. So I reckon thats pretty cool, but what if you don&#8217;t have an LDAP server to begin with?</p>
<p>Well, I&#8217;m glad you asked that question, because I&#8217;ve got it covered as well! I&#8217;ve written up a simple starters guide on how to get an LDAP server up and running and get Joomla! authenticating into it. Its mostly step by step and I&#8217;ve tested it out running Debian and Mac OS X 10.4 with the standard OpenLDAP instances that ship with those environments. Not only that but when you complete the tutorial theres a sample configuration for both Joomla! 1.0 and 1.5 so you can get up and running easily!</p>
<p>Lastly I&#8217;ve released 1.0.3 of JAuthTools for Joomla! 1.0 which adds support for LDAP powered administrator login (previously it relied on caching your password from the front end), a small refactoring of authentication options and some fixes in the XML files for missing or short descriptions. As always this is tested against Microsoft Active Directory, OpenLDAP and Novell eDirectory to see if they work and there are samples of known good set ups for those environments.</p>
<p>So you&#8217;ve read all of this and you&#8217;re wondering where you can the information from so heres the answer: for JAuthTools 1.0.3 you can go to the <a href="http://joomlacode.org/gf/project/jauthtools/frs/" title="JAuthTools Download Location">File Release Section on Joomla!Code</a>, for the sample guides, the alterations required to the Joomla! Core to get back end login and much more documentation you can check it out at the <a href="http://sammoffatt.com.au/jauthtools/" title="JAuthTools Documentation Wiki">JAuthTools wiki</a>.</p>
<p>So what are you waiting for? Good luck! <img src='http://pasamio.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pasamio.com/2007/06/05/joomla-10x-ldap-coolness/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

