<?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>Extra Thimian &#187; RubyCAS</title>
	<atom:link href="http://blog.thimian.com/category/rubycas/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thimian.com</link>
	<description>Suddenly Fiction</description>
	<lastBuildDate>Sun, 14 Feb 2010 04:03:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Choices, choices, choices: CAS or OpenID?</title>
		<link>http://blog.thimian.com/2008/05/11/choices-choices-choices-cas-or-openid/</link>
		<comments>http://blog.thimian.com/2008/05/11/choices-choices-choices-cas-or-openid/#comments</comments>
		<pubDate>Sun, 11 May 2008 12:07:00 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[RubyCAS]]></category>
		<category><![CDATA[Single sign-on]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/2008/05/11/choices-choices-choices-cas-or-openid/</guid>
		<description><![CDATA[With RubyCAS and Ruby-OpenID you have two choices to enable authentication for your application.
But which choice is the best one? Or rather the correct one? That depends on your usage scenario.
RubyCAS and OpenID solve, roughly, two different problems:

Single Sign On
User account management

Solving the Single Sign On problem
This is RubyCAS&#8217; strength. If you want to offer [...]]]></description>
			<content:encoded><![CDATA[<p>With RubyCAS and Ruby-OpenID you have two choices to enable authentication for your application.</p>
<p>But which choice is the best one? Or rather the correct one? That depends on your usage scenario.</p>
<p>RubyCAS and OpenID solve, roughly, two different problems:</p>
<ul>
<li>Single Sign On</li>
<li>User account management</li>
</ul>
<p><span style="font-weight: bold;">Solving the Single Sign On problem</span><br />
This is RubyCAS&#8217; strength. If you want to offer multiple applications to your users (be it on the internet, or in an intranet), RubyCAS is the better choice. Since it allows proxy authentication, users only have to sign into their account once, and all applications available to them can be used without retyping their credentials when switching applications.</p>
<p>This is the classic environment prompting the need for SSO solutions in general, and RubyCAS fits the bill (especially since it provides Authenticators for common enterprisey storage solutions, like LDAP).</p>
<p><span style="font-weight: bold;">Simplifying sign up</span><br />
This is where OpenID shines. User&#8217;s only have to maintain one set of credentials, and can use it whereever they can log in with OpenID. This is a big bonus for you. No need to store passwords, you can automate account creation at the first sign in of your users (you can request account data like passwords, nicknames, first and last names, etc.), and don&#8217;t have to worry ( alot) about validation of this data. The user&#8217;s OpenID provider took care of that for them.</p>
<p>You can of course offer them an OpenID services with your application, allowing them to use the credentials they use for your application to login everywhere else.</p>
<p>However, it seems that OpenID doesn&#8217;t allow proxy authentication out of the box (you could add it, or maybe the next version will provide support for that, but that is difficult to do in an essentially untrusted network, which leads to things like <a class="zem_slink" title="Kerberos (protocol)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Kerberos_%28protocol%29" target="_blank">Kerberos</a>).</p>
<p><span style="font-weight: bold;">So, what should you use?</span></p>
<p>If you are <span style="font-style: italic;">user-centric</span>, use RubyCAS. Examples of user-centric scenarios would be <a class="zem_slink" title="Google Apps" rel="wikipedia" href="http://en.wikipedia.org/wiki/Google_Apps" target="_blank">Google Apps</a> for Domains: One account for all these services.</p>
<p>If you are <span style="font-style: italic;">application-centric</span> use OpenID. Users will only use one or few applications you offer, and you can thusly simplify the process for them, by cutting the amount of username/password credentials your users have to maintain drastically.</p>
<p>Remember, though, that OpenID is not an ID verification service! If you plan to use OpenID in an intranet, you should have users use an OpenID server you provide on the intranet, and not have them authenticate via, say myopenid.com. This also allows you to fine-tune the data stored with OpenID accounts, for example organizational units, supervisors, etc.</p>
<p>As you can see, there is no single correct answer. Neither RubyCAS nor Ruby-OpenID are silver bullets, solving all your account problems. It is a question of what fits your usage-scenario the best.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2008/05/11/choices-choices-choices-cas-or-openid/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A case for CAS</title>
		<link>http://blog.thimian.com/2008/05/04/a-case-for-cas/</link>
		<comments>http://blog.thimian.com/2008/05/04/a-case-for-cas/#comments</comments>
		<pubDate>Sun, 04 May 2008 12:16:00 +0000</pubDate>
		<dc:creator>Phill</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[English Language Posts]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RubyCAS]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[Single sign-on]]></category>

		<guid isPermaLink="false">http://blog.thimian.com/2008/05/04/a-case-for-cas/</guid>
		<description><![CDATA[A couple of days ago, I talked about the limited options of SSO on the Ruby side of things. This turned out to be a bit of a mistake. In fact, the two viable SSO solutions are viable, and feature rich, providing what you need on the authentication server’s side, as well as the client’s [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago, <a href="http://justarubyist.blogspot.com/2008/04/why-have-thee-forsaken-me-oh-sso.html">I talked about the limited options of SSO</a> on the Ruby side of things. This turned out to be a bit of a mistake. In fact, the two viable <a class="zem_slink" title="Enterprise single sign-on" rel="wikipedia" href="http://en.wikipedia.org/wiki/Enterprise_single_sign-on" target="_blank">SSO</a> solutions are viable, and feature rich, providing what you need on the <a class="zem_slink" title="Authentication server" rel="wikipedia" href="http://en.wikipedia.org/wiki/Authentication_server" target="_blank">authentication server</a>’s side, as well as the client’s side.</p>
<p>The issue was more that there are only these two options in the first place.</p>
<p>However, I’m going to take a deeper look at these two options. I’ll do this in three articles, focusing on RubyCAS client and server first, <a class="zem_slink" title="OpenID" rel="wikipedia" href="http://en.wikipedia.org/wiki/OpenID" target="_blank">OpenID</a> client and server second, and comparing these against each other in the last episode.</p>
<p>Now, without further ado, a look into <a class="zem_slink" title="Central Authentication Service" rel="wikipedia" href="http://en.wikipedia.org/wiki/Central_Authentication_Service" target="_blank">CAS</a>.</p>
<p>CAS is Yale’s solution to the SSO problem. It provides a client/server architecture, allowing each application to authenticate users against a single server.</p>
<p>Matt Zukowski (his <a href="http://rubyforge.org/users/gunark/">RubyForge profile</a>) implemented the Ruby variants of the <a href="http://www.ja-sig.org/products/cas/overview/protocol/index.html">Central Authentication Service Protocol</a> (short CAS), both on the server side (<a href="http://code.google.com/p/rubycas-server/">RubyCAS server</a>), and the client side (<a href="http://code.google.com/p/rubycas-client/">RubyCAS client</a>).</p>
<p><span style="font-weight: bold;">Clientèle dealings</span></p>
<p>The client simply enables to authenticate against a server implementing the CAS protocol. That’s it. Well, not quite.</p>
<p>Actually, a CAS enabled website hands authentication off to the CAS server login page, which checks the user’s credentials, and redirects back to the requested webpage on successful authentication. The web application verifies that the user has, indeed, logged in, and works as expected.</p>
<p>The benefit of CAS for web-based SSO is, that any CAS-enabled application can use the ticket issued by the CAS server for authentication, as long as the server can read the cookie placed (so, it has to be the same URI that reads the cookie, not necessarily the same server).</p>
<p><span style="font-weight: bold;">Serving the greater good</span></p>
<p>The server works a bit different, and necessarily so. It takes the user’s credentials, authenticates the user against the configured form of storage, and redirects back to the application requesting the authentication of the user.</p>
<p>For authentication, RubyCAS server brings three pre-configured Authenticators:</p>
<ul>
<li><span style="font-style: italic;">CASServer::Authenticators::LDAP</span> to authenticate against an LDAP directory service, and LDAP’s cousin <a class="zem_slink" title="Active Directory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Active_Directory" target="_blank">Active Directory</a> gets its own Authenticator, called.</li>
<li>Additionally, there is an SQL authenticator <span class="link" style="font-style: italic;">CASServer::Authenticators::SQL</span>, which can use any SQL database that <a href="http://ar.rubyonrails.com/">ActiveRecord</a> can talk to.</li>
<li>If none of these fit the bill, you can apparently use <span class="link" style="font-style: italic;">CASServer::Authenticators::Base</span> to roll your own authenticator (the RDoc documentation is rather silent on the issue, and I haven’t dug into the source code yet).</li>
</ul>
<p><span style="font-weight: bold;">Concluding the obvious</span></p>
<p>As long as you use Ruby, you should be able to use RubyCAS client (you’ll probably have to do some source code hacking if you don’t use ActiveRecord for the RubyCAS server, though).</p>
<p>This should be of a great boon in any organization using the CAS system already. And the <a href="http://www.ja-sig.org/wiki/display/CASC/Home">wealth of client options provided by the CAS ecosystem</a> should make CAS an easy sell if you are looking for an SSO solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thimian.com/2008/05/04/a-case-for-cas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.709 seconds -->
