<?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: Mutual Authentication in Action</title>
	<atom:link href="http://monduke.com/2006/08/07/mutual-authentication-in-action/feed/" rel="self" type="application/rss+xml" />
	<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/</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/08/07/mutual-authentication-in-action/comment-page-1/#comment-9599</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Tue, 11 Sep 2007 02:50:04 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-9599</guid>
		<description>Harry,

I&#039;d be happy to assist if I can. Please post the stack trace and we&#039;ll take it from there.

Mike</description>
		<content:encoded><![CDATA[<p>Harry,</p>
<p>I&#8217;d be happy to assist if I can. Please post the stack trace and we&#8217;ll take it from there.</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry van Rijn</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-9580</link>
		<dc:creator>Harry van Rijn</dc:creator>
		<pubDate>Mon, 10 Sep 2007 13:16:34 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-9580</guid>
		<description>Hallo Mike,

I try to setup WebLogic 8.1sp5 for handling Soap Messages with a signed Header. Much of your description was very usefull for me. But I configure d a web-servies.xml file, all according to the Bea documentation. However my webservice answers with: &#039;{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurityToken&#039;
May I ask your help for this ?

kind regards,

Harry van Rijn</description>
		<content:encoded><![CDATA[<p>Hallo Mike,</p>
<p>I try to setup WebLogic 8.1sp5 for handling Soap Messages with a signed Header. Much of your description was very usefull for me. But I configure d a web-servies.xml file, all according to the Bea documentation. However my webservice answers with: &#8216;{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurityToken&#8217;<br />
May I ask your help for this ?</p>
<p>kind regards,</p>
<p>Harry van Rijn</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-3413</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Sat, 14 Apr 2007 02:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-3413</guid>
		<description>Mek,

If I understand you correctly, your users have certificates but you don&#039;t have (and don&#039;t want) a list of users in a data store such as an LDAP server or database.

That scenario is possible but you&#039;ll have to write a custom authentication security provider. The default identity asserter maps the certificate to a username. Part of that work is done by a username mapper class which can pull the value of certain attributes. You could also write your own username mapper if your needs are more elaborate.

Regardless of the username mapper, though, you still have to deal with authentication. If the username mapper returns the CN from the certificate, for example, that CN needs to &quot;exist&quot; in the realm.  As a result, your authentication provider will need to say that this CN does indeed represent a valid user even though he doesn&#039;t really exist anywhere.

You can find more information at &lt;a href=&quot;http://e-docs.bea.com/wls/docs81/dvspisec/ia.html&quot; rel=&quot;nofollow&quot;&gt;http://e-docs.bea.com/wls/docs81/dvspisec/ia.html&lt;/a&gt;. Note that my description above takes the approach of a separate authentication provider but you could wrap the assertion and authentication into the identity asserter.

Another issue to think about is authorization. I get the feeling that you don&#039;t care about roles but just want the user to be authenticated before accessing your system. If that&#039;s the case, &lt;a href=&quot;http://monduke.com/2007/03/29/implicit-groups-in-weblogic/&quot; rel=&quot;nofollow&quot;&gt;implicit groups&lt;/a&gt; might do the trick.

Hope this helps!</description>
		<content:encoded><![CDATA[<p>Mek,</p>
<p>If I understand you correctly, your users have certificates but you don&#8217;t have (and don&#8217;t want) a list of users in a data store such as an LDAP server or database.</p>
<p>That scenario is possible but you&#8217;ll have to write a custom authentication security provider. The default identity asserter maps the certificate to a username. Part of that work is done by a username mapper class which can pull the value of certain attributes. You could also write your own username mapper if your needs are more elaborate.</p>
<p>Regardless of the username mapper, though, you still have to deal with authentication. If the username mapper returns the CN from the certificate, for example, that CN needs to &#8220;exist&#8221; in the realm.  As a result, your authentication provider will need to say that this CN does indeed represent a valid user even though he doesn&#8217;t really exist anywhere.</p>
<p>You can find more information at <a href="http://e-docs.bea.com/wls/docs81/dvspisec/ia.html" rel="nofollow">http://e-docs.bea.com/wls/docs81/dvspisec/ia.html</a>. Note that my description above takes the approach of a separate authentication provider but you could wrap the assertion and authentication into the identity asserter.</p>
<p>Another issue to think about is authorization. I get the feeling that you don&#8217;t care about roles but just want the user to be authenticated before accessing your system. If that&#8217;s the case, <a href="http://monduke.com/2007/03/29/implicit-groups-in-weblogic/" rel="nofollow">implicit groups</a> might do the trick.</p>
<p>Hope this helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mek</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-3400</link>
		<dc:creator>mek</dc:creator>
		<pubDate>Fri, 13 Apr 2007 18:29:17 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-3400</guid>
		<description>very good work ...

but, Can be avoied the creation of each user in weblogic security realm?
I must give the acces to many user ...
thanks</description>
		<content:encoded><![CDATA[<p>very good work &#8230;</p>
<p>but, Can be avoied the creation of each user in weblogic security realm?<br />
I must give the acces to many user &#8230;<br />
thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-2991</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Sun, 25 Mar 2007 00:34:32 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-2991</guid>
		<description>Madhav,

You&#039;re right -- I hosed that up big time.

I&#039;ve made the corrections in the post.

Thanks!</description>
		<content:encoded><![CDATA[<p>Madhav,</p>
<p>You&#8217;re right &#8212; I hosed that up big time.</p>
<p>I&#8217;ve made the corrections in the post.</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Madhav Lakkapragada</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-2982</link>
		<dc:creator>Madhav Lakkapragada</dc:creator>
		<pubDate>Fri, 23 Mar 2007 20:15:02 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-2982</guid>
		<description>Isn&#039;t this part of weblogic.xml
Your article mentions web.xml. Thanks.

Hereâ€™s the pertinent snippet from &lt;strong&gt;web.xml&lt;/strong&gt;:

- m

&lt;code&gt;

    Admin
    Administrators
  
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Isn&#8217;t this part of weblogic.xml<br />
Your article mentions web.xml. Thanks.</p>
<p>Hereâ€™s the pertinent snippet from <strong>web.xml</strong>:</p>
<p>- m</p>
<p><code></p>
<p>    Admin<br />
    Administrators</p>
<p></code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-818</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Thu, 19 Oct 2006 00:27:22 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-818</guid>
		<description>Kevin: Excellent!</description>
		<content:encoded><![CDATA[<p>Kevin: Excellent!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Moran</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-817</link>
		<dc:creator>Kevin Moran</dc:creator>
		<pubDate>Wed, 18 Oct 2006 08:23:52 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-817</guid>
		<description>Mike,
    I finally got around to testing your suggestion for how to get user&#039;s DN from the ContextHandler.  I&#039;m happy to report it worked like a champ.  The key &#039;com.bea.contextelement.servlet.HttpServletRequest&#039; allowed me to get his X.509 cert from the ContextHandler.  Now my role mapper&#039;s getRoles() method knows the caller&#039;s DN.

Thanks!
-kevin</description>
		<content:encoded><![CDATA[<p>Mike,<br />
    I finally got around to testing your suggestion for how to get user&#8217;s DN from the ContextHandler.  I&#8217;m happy to report it worked like a champ.  The key &#8216;com.bea.contextelement.servlet.HttpServletRequest&#8217; allowed me to get his X.509 cert from the ContextHandler.  Now my role mapper&#8217;s getRoles() method knows the caller&#8217;s DN.</p>
<p>Thanks!<br />
-kevin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-809</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Wed, 11 Oct 2006 23:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-809</guid>
		<description>Prem,

The default identity asserter will try to extract a known user from the certificate. It does this by pulling something (which is definable by the username mapper) out of the certificate and passing that along as the username. Then, an authenticator will check to see if that user exists. The authenticator might check a database or LDAP server, for example.

The LDAP x509 Identity Asserter differs from the default one in that the certificate presented by the user is the same one that&#039;s stored in LDAP as an attribute of that user. That is, the user&#039;s certificate is stored in LDAP and compared to the certificate that WebLogic received from the user. Furthermore, the username has to be from one of the attributes of the DN such as the CN.

Hope this helps,

Mike</description>
		<content:encoded><![CDATA[<p>Prem,</p>
<p>The default identity asserter will try to extract a known user from the certificate. It does this by pulling something (which is definable by the username mapper) out of the certificate and passing that along as the username. Then, an authenticator will check to see if that user exists. The authenticator might check a database or LDAP server, for example.</p>
<p>The LDAP x509 Identity Asserter differs from the default one in that the certificate presented by the user is the same one that&#8217;s stored in LDAP as an attribute of that user. That is, the user&#8217;s certificate is stored in LDAP and compared to the certificate that WebLogic received from the user. Furthermore, the username has to be from one of the attributes of the DN such as the CN.</p>
<p>Hope this helps,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Prem Sumetpong</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-807</link>
		<dc:creator>Prem Sumetpong</dc:creator>
		<pubDate>Wed, 11 Oct 2006 03:54:45 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-807</guid>
		<description>I would like to know when to use default Identity Asserter (X509 token) and LDAP X509 Identity Asserter</description>
		<content:encoded><![CDATA[<p>I would like to know when to use default Identity Asserter (X509 token) and LDAP X509 Identity Asserter</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-775</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Tue, 03 Oct 2006 13:44:37 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-775</guid>
		<description>Thanks, Kevin.

As you suspected, the username mapping has already occurred by the time role mapping happens. You might still be able to get the DN, though.

The RoleMapper interface is 

getRoles(javax.security.auth.Subject subject, Resource resource, ContextHandler handler)

The Subject will contain the WL username. However, the ContextHandler contains extra information that a security provider can use. This object is simply a group of name/value pairs. If one of them is the HttpServletRequest, you&#039;re in business. Have a look at &lt;a href=&quot;http://monduke.com/2006/03/01/reversed-dn-in-weblogic-814/&quot; rel=&quot;nofollow&quot;&gt;http://monduke.com/2006/03/01/reversed-dn-in-weblogic-814/&lt;/a&gt; for how to pull the DN from this object.

I&#039;ve never examined the context data for a role mapper so I can&#039;t tell you what&#039;s in it. It&#039;s also not documented. You&#039;ll just need to loop through the data from your custom role mapper to see what&#039;s inside.

Let me know how it goes.

HTH,

Mike</description>
		<content:encoded><![CDATA[<p>Thanks, Kevin.</p>
<p>As you suspected, the username mapping has already occurred by the time role mapping happens. You might still be able to get the DN, though.</p>
<p>The RoleMapper interface is </p>
<p>getRoles(javax.security.auth.Subject subject, Resource resource, ContextHandler handler)</p>
<p>The Subject will contain the WL username. However, the ContextHandler contains extra information that a security provider can use. This object is simply a group of name/value pairs. If one of them is the HttpServletRequest, you&#8217;re in business. Have a look at <a href="http://monduke.com/2006/03/01/reversed-dn-in-weblogic-814/" rel="nofollow">http://monduke.com/2006/03/01/reversed-dn-in-weblogic-814/</a> for how to pull the DN from this object.</p>
<p>I&#8217;ve never examined the context data for a role mapper so I can&#8217;t tell you what&#8217;s in it. It&#8217;s also not documented. You&#8217;ll just need to loop through the data from your custom role mapper to see what&#8217;s inside.</p>
<p>Let me know how it goes.</p>
<p>HTH,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Moran</title>
		<link>http://monduke.com/2006/08/07/mutual-authentication-in-action/comment-page-1/#comment-774</link>
		<dc:creator>Kevin Moran</dc:creator>
		<pubDate>Tue, 03 Oct 2006 09:14:19 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=32#comment-774</guid>
		<description>Great overview!  I&#039;m wondering about role mapping though.  I need to assign each user&#039;s roles by first calling a web service that takes his X.509 DN and returns info on him.  Is the user&#039;s X.509 cert available to a custom role mapper or has it already been mapped to a WL username at the point role mapping takes place?  If it&#039;s the latter, how does one get access to the user&#039;s cert/DN from within a custom role mapper?

Thanks!</description>
		<content:encoded><![CDATA[<p>Great overview!  I&#8217;m wondering about role mapping though.  I need to assign each user&#8217;s roles by first calling a web service that takes his X.509 DN and returns info on him.  Is the user&#8217;s X.509 cert available to a custom role mapper or has it already been mapped to a WL username at the point role mapping takes place?  If it&#8217;s the latter, how does one get access to the user&#8217;s cert/DN from within a custom role mapper?</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
