<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: The Mysterious CLIENT-CERT</title>
	<atom:link href="http://monduke.com/2006/01/19/the-mysterious-client-cert/feed/" rel="self" type="application/rss+xml" />
	<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/</link>
	<description>Covering J2EE Security and WebLogic Topics</description>
	<lastBuildDate>Tue, 13 Apr 2010 01:53:49 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-7707</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Tue, 17 Jul 2007 01:25:36 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-7707</guid>
		<description>JW,

Something I forgot in my last comment. If you don&#039;t compare certs, ensure that your trusted CAs are limited to just the one(s) that you accept. The default Java trust store contains a ton of CAs...</description>
		<content:encoded><![CDATA[<p>JW,</p>
<p>Something I forgot in my last comment. If you don&#8217;t compare certs, ensure that your trusted CAs are limited to just the one(s) that you accept. The default Java trust store contains a ton of CAs&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-7702</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Tue, 17 Jul 2007 00:51:43 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-7702</guid>
		<description>JW,

My bad. I missed the &quot;LDAP&quot; distinction in your original question. What I described above is for the default identity asserter set to handle X.509 certs. There is no comparison of the provided cert to one in LDAP like the LDAP X.509 identity asserter does.

Whether you want to compare certs is up to you. The default identity asserter wouldn&#039;t cause two hits to LDAP, though.</description>
		<content:encoded><![CDATA[<p>JW,</p>
<p>My bad. I missed the &#8220;LDAP&#8221; distinction in your original question. What I described above is for the default identity asserter set to handle X.509 certs. There is no comparison of the provided cert to one in LDAP like the LDAP X.509 identity asserter does.</p>
<p>Whether you want to compare certs is up to you. The default identity asserter wouldn&#8217;t cause two hits to LDAP, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JW</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-7692</link>
		<dc:creator>JW</dc:creator>
		<pubDate>Mon, 16 Jul 2007 18:57:45 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-7692</guid>
		<description>So it sounds like each one would have to hit the LDAP server separately. And since you configure the connection info separately for each one, they probably aren&#039;t sharing an LDAP Connection pool either.

(In case you&#039;re wondering, I asked originally because I&#039;m trying to speed up certificate-based login.)</description>
		<content:encoded><![CDATA[<p>So it sounds like each one would have to hit the LDAP server separately. And since you configure the connection info separately for each one, they probably aren&#8217;t sharing an LDAP Connection pool either.</p>
<p>(In case you&#8217;re wondering, I asked originally because I&#8217;m trying to speed up certificate-based login.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-7545</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Fri, 13 Jul 2007 02:00:51 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-7545</guid>
		<description>JW,

Identity asserters and authenticators work together to identify the user. Identity asserters check for the presence of tokens in the request such as an X.509 cert. When it finds one, it tries to map that token to a user known to the realm. In the case of a cert, the asserter might use the whole DN or just the CN as the user name. It does this via a username mapper class associated with the asserter.

Once the token has been mapped to a username, that username is passed to the authenticator(s) to see if the user exists. If an authenticator can find that username, the user has authenticated successfully (depending upon the control flags in the case of multiple authenticators). The authenticator can then do its other job of pulling the user&#039;s groups.

As for the order, asserters always have to come first so that they can extract a username to pass along to the authenticators. An authenticator wouldn&#039;t know what to do with the token.

However, as you know, the order of authentication providers is significant.

HTH,

Mike</description>
		<content:encoded><![CDATA[<p>JW,</p>
<p>Identity asserters and authenticators work together to identify the user. Identity asserters check for the presence of tokens in the request such as an X.509 cert. When it finds one, it tries to map that token to a user known to the realm. In the case of a cert, the asserter might use the whole DN or just the CN as the user name. It does this via a username mapper class associated with the asserter.</p>
<p>Once the token has been mapped to a username, that username is passed to the authenticator(s) to see if the user exists. If an authenticator can find that username, the user has authenticated successfully (depending upon the control flags in the case of multiple authenticators). The authenticator can then do its other job of pulling the user&#8217;s groups.</p>
<p>As for the order, asserters always have to come first so that they can extract a username to pass along to the authenticators. An authenticator wouldn&#8217;t know what to do with the token.</p>
<p>However, as you know, the order of authentication providers is significant.</p>
<p>HTH,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JW</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-7514</link>
		<dc:creator>JW</dc:creator>
		<pubDate>Thu, 12 Jul 2007 06:37:07 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-7514</guid>
		<description>Say you have an LDAP X509 Identity Asserter and an LDAP Authenticator. How do the two interact to produce an authenticated user + groups? Confusingly, the order they are listed in the realm&#039;s Authentication node doesn&#039;t seem to matter. How does WebLogic know to hit the X509 Identity Asserter first?</description>
		<content:encoded><![CDATA[<p>Say you have an LDAP X509 Identity Asserter and an LDAP Authenticator. How do the two interact to produce an authenticated user + groups? Confusingly, the order they are listed in the realm&#8217;s Authentication node doesn&#8217;t seem to matter. How does WebLogic know to hit the X509 Identity Asserter first?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-822</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Mon, 23 Oct 2006 01:09:29 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-822</guid>
		<description>Kevin,

No, there doesn&#039;t have to be a WL user stored somewhere. This article is talking about the common case where there is a user account stored somewhere and the cert has to be mapped to it.

To not have a &quot;backing user&quot; so to speak, you&#039;ll probably need a custom authenticator with a custom login module. This login module will do nothing more than add a WLSUser object to the Subject. This value can be anything you want but I&#039;d imagine you&#039;d take some piece of the DN and stick it there. This value represents the user from WLS&#039; perspective, so if you do an HttpServletRequest.getRemoteUser() you&#039;ll get that value back (as a simple String, of course).

Check the sample security providers for an example of a custom authenticator.

Hope this helps,

Mike</description>
		<content:encoded><![CDATA[<p>Kevin,</p>
<p>No, there doesn&#8217;t have to be a WL user stored somewhere. This article is talking about the common case where there is a user account stored somewhere and the cert has to be mapped to it.</p>
<p>To not have a &#8220;backing user&#8221; so to speak, you&#8217;ll probably need a custom authenticator with a custom login module. This login module will do nothing more than add a WLSUser object to the Subject. This value can be anything you want but I&#8217;d imagine you&#8217;d take some piece of the DN and stick it there. This value represents the user from WLS&#8217; perspective, so if you do an HttpServletRequest.getRemoteUser() you&#8217;ll get that value back (as a simple String, of course).</p>
<p>Check the sample security providers for an example of a custom authenticator.</p>
<p>Hope this helps,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Moran</title>
		<link>http://monduke.com/2006/01/19/the-mysterious-client-cert/comment-page-1/#comment-820</link>
		<dc:creator>Kevin Moran</dc:creator>
		<pubDate>Sat, 21 Oct 2006 03:05:29 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=14#comment-820</guid>
		<description>Excellent article!  Question, though, regarding identity assertion: Do X.509 certificates necessarily have to map to WL users?  Example: My custom role mapper assigns roles to users based on their DN.  My intention is to control users&#039; access to web services based on those roles.  I&#039;d like to issue lots of client certs without having to create a corresponding WL user (especially since I don&#039;t know what it buys me!).  Also, it seems like the job of managing WL users would grow with the number of client certs.

Anyway, thanks for demystifying WL&#039;s security framework. :)  I can&#039;t tell you how much your blog has already helped my understanding.

-kevin</description>
		<content:encoded><![CDATA[<p>Excellent article!  Question, though, regarding identity assertion: Do X.509 certificates necessarily have to map to WL users?  Example: My custom role mapper assigns roles to users based on their DN.  My intention is to control users&#8217; access to web services based on those roles.  I&#8217;d like to issue lots of client certs without having to create a corresponding WL user (especially since I don&#8217;t know what it buys me!).  Also, it seems like the job of managing WL users would grow with the number of client certs.</p>
<p>Anyway, thanks for demystifying WL&#8217;s security framework. <img src='http://monduke.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   I can&#8217;t tell you how much your blog has already helped my understanding.</p>
<p>-kevin</p>
]]></content:encoded>
	</item>
</channel>
</rss>
