<?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>asyd's blog &#187; Security</title>
	<atom:link href="http://blog.asyd.net/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.asyd.net</link>
	<description>unix forever, for everyone. Not convinced, try Mac OS X!</description>
	<lastBuildDate>Wed, 21 Jul 2010 14:26:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>LSC Use Case: synchronize telephoneNumber from Sun LDAP to Active Directory</title>
		<link>http://blog.asyd.net/2010/07/lsc-use-case-synchronize-telephonenumber-from-sun-ldap-to-active-directory/</link>
		<comments>http://blog.asyd.net/2010/07/lsc-use-case-synchronize-telephonenumber-from-sun-ldap-to-active-directory/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:26:42 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[lsc]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=449</guid>
		<description><![CDATA[At work, we are using two directories. The first one, a damn old Sun Directory 5.2, used by the mail system and VOIP. The second directory is an Active Directory used by &#8230; everything which run on Windows. At the moment, we don&#8217;t have some Identity Provisionning products, so users are created by hand in [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.rtl.fr/">work</a>, we are using two directories. The first one, a damn old Sun Directory 5.2, used by the mail system and VOIP. The second directory is an Active Directory used by &#8230; everything which run on Windows. At the moment, we don&#8217;t have some Identity Provisionning products, so users are created by hand in both directories. I want to make this synchronization automatic, however since it&#8217;s a complex and dangerous thing, I want to start by synchronize few attributes. The first one is the telephoneNumber, available in the Sun Directory with format &#8220;21xxx&#8221; (the internal phone number), while the one store in active directory is the public one (014070xxx), so I need to transform the attribute before sending it in AD.</p>
<p>Some friends of mine start the <a href="http://www.lsc-project.org">LSC Project</a>(LDAP Synchronization Connector) few years ago, a tool to synchronize directories! Here the configuration file I used for my use case:</p>
<h2>Define the source</h2>
<p><code><br />
src.java.naming.provider.url = ldap://sun_hostname:389/dc=rtl,dc=fr<br />
src.java.naming.security.authentication = none<br />
src.java.naming.security.principal =<br />
src.java.naming.security.credentials =<br />
src.java.naming.referral = ignore<br />
src.java.naming.ldap.derefAliases = never<br />
src.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory<br />
src.java.naming.ldap.version = 3<br />
</code></p>
<h2>Define the target</h2>
<p><code><br />
dst.java.naming.provider.url = ldap://ad_hostname:389/dc=activedirectory,dc=domain<br />
dst.java.naming.security.authentication = simple<br />
dst.java.naming.security.principal = userwithenoughperms@activedirectory.domain<br />
dst.java.naming.security.credentials = secret<br />
dst.java.naming.referral = ignore<br />
dst.java.naming.ldap.derefAliases = never<br />
dst.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory<br />
dst.java.naming.ldap.version = 3<br />
</code></p>
<h2>Define the task to manage telephoneNumber attribute</h2>
<p><code><br />
lsc.tasks = FirstTask<br />
lsc.tasks.FirstTask.srcService = org.lsc.jndi.SimpleJndiSrcService<br />
lsc.tasks.FirstTask.srcService.baseDn = ou=People<br />
lsc.tasks.FirstTask.srcService.filterAll = (inetUserStatus=ACTIVE)<br />
lsc.tasks.FirstTask.srcService.pivotAttrs = mail<br />
lsc.tasks.FirstTask.srcService.filterId = (mail={mail})<br />
lsc.tasks.FirstTask.srcService.attrs = mail telephoneNumber<br />
lsc.tasks.FirstTask.srcService.requestNameForList = getAllPeoplePivots<br />
lsc.tasks.FirstTask.srcService.requestNameForObject = getOnePerson<br />
lsc.tasks.FirstTask.dstService = org.lsc.jndi.SimpleJndiDstService<br />
lsc.tasks.FirstTask.dstService.baseDn = ou=Pole radio,dc=activedirectory,dc=domain<br />
lsc.tasks.FirstTask.dstService.filterAll = (&#038;(sn=*)(objectClass=inetOrgPerson))<br />
lsc.tasks.FirstTask.dstService.pivotAttrs = mail<br />
lsc.tasks.FirstTask.dstService.filterId = (mail={mail})<br />
lsc.tasks.FirstTask.dstService.attrs = telephoneNumber<br />
lsc.tasks.FirstTask.bean = org.lsc.beans.SimpleBean<br />
lsc.tasks.FirstTask.dn = ""<br />
lsc.syncoptions.FirstTask = org.lsc.beans.syncoptions.PropertiesBasedSyncOptions<br />
lsc.syncoptions.FirstTask.default.action = K<br />
lsc.syncoptions.FirstTask.default.delimiter = $<br />
lsc.syncoptions.FirstTask.telephoneNumber.action = F<br />
lsc.syncoptions.FirstTask.telephoneNumber.force_value = StringUtils.replaceFromMap(srcBean.getAttributeValueById("telephoneNumber"), "telephone.csv")<br />
</code></p>
<p>I think most of properties are self-meaning, however here some explanations about few of thems</p>
<ul>
<li><em>default.action =  K</em>, meaning the attribute is not overriden if the value is ok </li>
<li><em>telephoneNumber.action = F</em>, force the attribute to be updated</li>
<li><em>lsc.syncoptions.FirstTask.telephoneNumber.force_value= StringUtils.replaceFromMap(srcBean.getAttributeValueById(&#8220;telephoneNumber&#8221;), &#8220;telephone.csv&#8221;)</em> is the code to compute the new value of the telephoneNumber attribute. In that case, I use a CSV files where I specify two fields: the pattern, and the value to replace if the pattern is found. (i.e. &#8220;^21,014070&#8243;)</ul>
</ul>
<h2>Output in dryrun mode</h2>
<p><code><br />
% ./bin/lsc -n -f etc -s FirstTask<br />
juil. 21 16:24:43 - WARN  - Starting sync for FirstTask<br />
juil. 21 16:24:43 - INFO  - Connecting to LDAP server ldap://sun_hostname:389/dc=rtl,dc=fr anonymously<br />
juil. 21 16:24:44 - INFO  - Connecting to LDAP server ldap://ad_hostname:389/dc=activedirectory,dc=domain as admin@activedirectory.domain<br />
juil. 21 16:24:44 - WARN  - The method getAttributeValueById() is deprecated and will be removed in a future version of LSC. Please use getAttributeFirstValueById() instead.<br />
juil. 21 16:24:44 - DEBUG - Update condition false. Should have modified object CN=BONFILS Bruno,OU=Users,DC=activedirectory,DC=DOMAIN<br />
dn:: CN=BONFILS Bruno,OU=Users,DC=activedirectory,DC=DOMAIN<br />
changetype: modify<br />
replace: telephoneNumber<br />
telephoneNumber: 0140704049</p>
<p>juil. 21 16:24:44 - INFO  - All entries: 1, to modify entries: 0, modified entries: 0, errors: 0<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2010/07/lsc-use-case-synchronize-telephonenumber-from-sun-ldap-to-active-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSSO, OpenID and Yubikey, the perfect personal SSO: cheap, and secure</title>
		<link>http://blog.asyd.net/2009/08/opensso-openid-and-yubikey-the-perfect-personal-sso-cheap-and-secure/</link>
		<comments>http://blog.asyd.net/2009/08/opensso-openid-and-yubikey-the-perfect-personal-sso-cheap-and-secure/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 08:23:51 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[opensso]]></category>
		<category><![CDATA[yubikey]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=360</guid>
		<description><![CDATA[As a new owner of an yubikey, I was looking the best way to integrate it with the web application I already use. While there is already an available OpenID provider which support Yubikey authentication, I prefer to manage my own system, using OpenSSO for sure First, let me introduce the yubikey. This USB key [...]]]></description>
			<content:encoded><![CDATA[<p>As a new owner of an yubikey, I was looking the best way to integrate it with the web application I already use. While there is already an available OpenID provider which support Yubikey authentication, I prefer to manage my own system, using OpenSSO for sure <img src='http://blog.asyd.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<img src="http://blog.asyd.net/wp-content/uploads/2009/08/Image-2.png" alt="Yubikey" title="Yubikey" width="110" height="78" class="alignright size-full wp-image-375" /><br />
First, let me introduce the yubikey. This USB key act as an OTP (One Time Password) device, each time you press the button, the key compute a new password. This pasword must be verify, in the case of Yubikey, this is done by query a Webservices on a yubico (the company) server. Yubikey offers a lot of advantages than others classical OTP devices, including:</p>
<ul>
<li>The yubikey is see as an USB keyboard (class HID), <b>no driver required!</b></li>
<li>No battery, more longlife than anothers devices</li>
<li>Very cheap, around 20 euros (ordered by 10, from France), transport and taxes included</li>
</ul>
<p>So, why choose OpenSSO? For few years know, OpenSSO provides an extension to act as an OpenID provider, and an authentication class is available for the Yubikey. </p>
<p><img src="http://blog.asyd.net/wp-content/uploads/2009/08/OpenSSO-OpenID-Yubikey.png" alt="OpenSSO OpenID Yubikey" title="OpenSSO OpenID Yubikey" width="515" height="394" class="aligncenter size-full wp-image-370" /></p>
<p>References:</p>
<ul>
<li><a href="http://blogs.sun.com/steffo/entry/opensso_with_openid_on_the">Build the OpenSSO extension for OpenID</a></li>
<li><a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnyubikey/README.txt?rev=1.3&#038;view=markup">Build the Yubikey authentication class</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/08/opensso-openid-and-yubikey-the-perfect-personal-sso-cheap-and-secure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to convert a PKCS#12 to JKS</title>
		<link>http://blog.asyd.net/2009/07/how-to-convert-a-pkcs12-to-jks/</link>
		<comments>http://blog.asyd.net/2009/07/how-to-convert-a-pkcs12-to-jks/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 13:20:28 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=347</guid>
		<description><![CDATA[Most of system administrators use OpenSSL (which is not a good idea, but it&#8217;s an another story) to manage their PKI. While OpenSSL is good to create/convert X509 certificates from PEM/DER to PKCS#12 (and vice versa, for sure) it doesn&#8217;t understand the JKS (Java KeyStore) format. JKS are used in Java world, for example Glassfish [...]]]></description>
			<content:encoded><![CDATA[<p>Most of system administrators use OpenSSL (which is not a good idea, but it&#8217;s an another story) to manage their PKI. While OpenSSL is good to create/convert X509 certificates from PEM/DER to PKCS#12 (and vice versa, for sure) it doesn&#8217;t understand the JKS (Java KeyStore) format. JKS are used in Java world, for example Glassfish application server, OpenDS and so more. In this post, I&#8217;ll explain how to convert a PKCS#12 to a JKS using portecle. <a href="http://portecle.sf.net">portecle</a> is a small, but very useful application (written in Java) to manipulate keystores.</p>
<ol>
<li>Download portecle, extract it, and lauch it using <code>java -jar portecle.jar</code> (note that Java 6 seems required for version 1.4.x)</li>
<li>Open your PKCS#12 file, provide the password</li>
<li>Click on <em>Tools/Change KeyStore Type/JKS</em> menu</li>
<li>If you don&#8217;t want to use the default password (which is password), click on the menu keystore password</li>
<li>Save it, that&#8217;s all folks!</li>
</ol>
<p>
You can know list the contents of your JKS using keytool:</p>
<p><code><br />
% keytool -list -v -keystore <em>yourkeystore.jks</em><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/07/how-to-convert-a-pkcs12-to-jks/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Soirée CloudCamp à Paris le 11 Juin</title>
		<link>http://blog.asyd.net/2009/05/soiree-cloudcamp-a-paris-le-11-juin/</link>
		<comments>http://blog.asyd.net/2009/05/soiree-cloudcamp-a-paris-le-11-juin/#comments</comments>
		<pubDate>Tue, 19 May 2009 18:27:11 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[cloudcomputing]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=307</guid>
		<description><![CDATA[Comme tout le monde, vous entendez parler du cloud computing, mais vous ne savez pas forcément ce qui se cache derrière ce terme ? Vous connaissez déjà, mais vous voulez en savoir plus ? Bref, dans tous les cas, si ce sujet vous intéresse, je vous invite à participer à la soirée organiser par cloudcamp. [...]]]></description>
			<content:encoded><![CDATA[<p>Comme tout le monde, vous entendez parler du <i>cloud computing</i>, mais vous ne savez pas forcément ce qui se cache derrière ce terme ? Vous connaissez déjà, mais vous voulez en savoir plus ? Bref, dans tous les cas, si ce sujet vous intéresse, je vous invite à participer à la soirée organiser par cloudcamp. Cette soirée aura lieu le 11 Juin, à partir de 18h30. Pour ma part, je dois y intervenir pour parler de la sécurité.</p>
<p>Je me permet de rappeler, pour mes fidèles lecteurs, que Solaris/OpenSolaris est très proche du concept de <i>cloud computing</i> notamment grâce aux containers (zones + resource shapping), et OpenStorage.</p>
<ul>
<li><a href="http://blogs.sun.com/EricBezille/entry/sur_les_pas_du_premier">Introduction au <i>cloud computing</i> par Éric Bezille</a></li>
<li><a href="http://www.cloudcamp.com/?page_id=748">Programme complet et inscription</a> </li>
<li><a href="http://blogs.sun.com/EricBezille/entry/openstorage_la_r%C3%A9volution_dans_la">Un billet d&#8217;Éric Bezille sur OpenStorage</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/05/soiree-cloudcamp-a-paris-le-11-juin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IAM track at LSM</title>
		<link>http://blog.asyd.net/2009/05/iam-track-at-lsm/</link>
		<comments>http://blog.asyd.net/2009/05/iam-track-at-lsm/#comments</comments>
		<pubDate>Mon, 04 May 2009 07:38:44 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[PKI]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=289</guid>
		<description><![CDATA[As a member of the LSM staff, I organize a track about IAM. The schedule is almost closed, including: Pat Patterson, from OpenSSO, the famous Access Manager (SSO) of Identity Federation tool from Sun (english) Ludovic Poitou, from OpenDS, the future Sun&#8217;s Directory Server (english or french) Clément Oudot, from LemonLDAP::NG, an opensource Web SSO [...]]]></description>
			<content:encoded><![CDATA[<p>As a member of the <a href="http://2009.rmll.info/?lang=en">LSM</a> staff, I organize a track about IAM. The schedule is almost closed, including:</p>
<ul>
<li> Pat Patterson, from <a href="http://opensso.dev.java.net/">OpenSSO</a>, the famous Access Manager (SSO) of Identity Federation tool from Sun (english)</li>
<li> Ludovic Poitou, from <a href="http://opends.org/">OpenDS</a>, the future Sun&#8217;s Directory Server (english or french) </li>
<li> Clément Oudot, from <a href="http://wiki.lemonldap.ow2.org/xwiki/bin/view/NG/Presentation">LemonLDAP::NG</a>, an opensource Web SSO (english or french</li>
<li> Tomas Gustavsson, from <a href="http://www.ejbca.org/">EJBCA</a>, the most famous opensource PKI product (english) </li>
<li> Jonathan Clarke, from <a href="http://lsc-project.org/">LSC</a>, a tool to synchronize directory from JDBC or LDAP (english or french)</li>
<li> Myself, introducing about IAM, especially the provisionning (french)</li>
</ul>
<p>This day is planned for July, the 10th, at Nantes. Check <a href="http://2009.rmll.info"/>LSM website</a> to register in a near future (registration are not opened yet). For OpenDS, LemonLDAP::NG and LSC talks, the language will be choosen according the audience.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/05/iam-track-at-lsm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Petite surprise en LDAP: last successful bind</title>
		<link>http://blog.asyd.net/2009/04/petite-surprise-en-ldap-last-successful-bind/</link>
		<comments>http://blog.asyd.net/2009/04/petite-surprise-en-ldap-last-successful-bind/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 18:07:24 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[opensso]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=277</guid>
		<description><![CDATA[Un rapide poste qui je l&#8217;espère fera suite à d&#8217;autres pour exposer une petite surprise que j&#8217;ai eu avec LDAP (enfin de manière plus précises avec les serveurs). Lors d&#8217;un projet pour mon nouvel employeur, on me demanda d&#8217;installer un OpenSSO pour authentifier des utilisateurs et obtenir leurs attributs LDAP. Bon, jusqu&#8217;ici rien d&#8217;anormal. Néanmoins, [...]]]></description>
			<content:encoded><![CDATA[<p>Un rapide poste qui je l&#8217;espère fera suite à d&#8217;autres pour exposer une petite surprise que j&#8217;ai eu avec LDAP (enfin de manière plus précises avec les serveurs). Lors d&#8217;un projet pour mon nouvel employeur, on me demanda d&#8217;installer un OpenSSO pour authentifier des utilisateurs et obtenir leurs attributs LDAP. Bon, jusqu&#8217;ici rien d&#8217;anormal. Néanmoins, dans les attributs utilisateurs, il est demandé un attribut fournissant la date de la dernière connexion d&#8217;un utilisateur (en pratique la date d&#8217;un dernier bind opéré avec succès). Sur le moment, je n&#8217;ai pas percuté. Ce n&#8217;est qu&#8217;au moment de revenir sur mon poste, et par acquis de conscience, que j&#8217;ai commencé à me renseigner.</p>
<p>Et quelle ne fut pas ma surprise lorsque je me suis rendu que :</p>
<ul>
<li>OpenSSO ne le permet pas de base. Après une rapide rechercher, il semblerait qu&#8217;une manière simple (c&#8217;est tout relatif) est d&#8217;écrire une classe (Java) qui sera exécutée après une authentification utilisateur.</li>
<li>Active Directory semble fournir cette fonctionnalité de base (via l&#8217;attribut lastlogon)</li>
<li>Sun Directory Directory Server Entreprise Edition (DSEE pour faire court) ne semble à priori pas le supporter dans toutes ses versions (&gt;= 6.2 de mémoire, à prendre avec grande précaution) (tests en court)</li>
<li>OpenDS le supporte (tests en court)</li>
<li>Sun iPlanet 5.x ne le supporte tout simplement pas</li>
<li>Je n&#8217;ai pas regardé pour les autres serveurs, si jamais vous avez des retours dessus, je suis preneur.</li>
</ul>
<p>Évidemment, je vous laisse deviner quel serveur j&#8217;utilise. Donc, je me suis retrouvé à écrire un plugin (en C) pour iPlanet, j&#8217;avoue que cela est assez intéressant (enfin il y a bien pire comme tâche <img src='http://blog.asyd.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Je vais mettre à disposition le code de ce plugin d&#8217;ici quelques jours, même si je doute qu&#8217;en Avril 2009 cela intéresse encore beaucoup de gens !</p>
<p>Pour information, pour obtenir cette fonctionnalité avec DSEE et OpenDS, il faut utiliser les password policies, et n&#8217;activer que la partie concernée. Cela va mettre à jour le champ <tt>ds-pwp-last-login-time<em> </em>(au moins vrai pour OpenDS).</tt></p>
<p>Néannmoins, j&#8217;avoue que je suis assez surpris que cela ne soit pas de base, partout, dans tous les serveurs LDAP. Certes, cela demande un minimum de performances supplémentaires. En effet, cela provoque une écriture (opération considérée comme lente sur un annuaire LDAP) à chaque opération d&#8217;authentification réussie (mais on pourrait imaginer de vouloir l&#8217;équivalent pour un last failure). Mais au point de vue gestion d&#8217;identité, c&#8217;est quand même une information qui peut être très intéressante. Au hasard, sur un portail public, d&#8217;obtenir rapidement, et simplement, la liste des utilisateurs qui ne se sont pas connectés depuis une année.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/04/petite-surprise-en-ldap-last-successful-bind/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Article sur la mise en place de l&#8217;authentification X509 avec OpenSSO et EJBCA</title>
		<link>http://blog.asyd.net/2009/04/article-sur-la-mise-en-place-de-lauthentification-x509-avec-opensso-et-ejbca/</link>
		<comments>http://blog.asyd.net/2009/04/article-sur-la-mise-en-place-de-lauthentification-x509-avec-opensso-et-ejbca/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 15:21:41 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[PKI]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[ejbca]]></category>
		<category><![CDATA[opensso]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=275</guid>
		<description><![CDATA[Suite à mon article et la création d&#8217;une imageVMWare pour démontrer l&#8217;utilisation d&#8217;EJBCA et d&#8217;OpenSSO pour faire de l&#8217;authentification X509 client, Pat ma gentiment demandé si je pouvais écrire un article à ce sujet. Et c&#8217;est maintenant chose faite, l&#8217;article est disponible ici. En route pour la deuxième partie !]]></description>
			<content:encoded><![CDATA[<p>Suite à mon article et la création d&#8217;une imageVMWare pour démontrer l&#8217;utilisation d&#8217;EJBCA et d&#8217;OpenSSO pour faire de l&#8217;authentification X509 client, Pat ma gentiment demandé si je pouvais écrire un article à ce sujet. Et c&#8217;est maintenant chose faite, <a href="http://developers.sun.com/identity/reference/techart/opensso_protect.html">l&#8217;article est disponible ici.</a> En route pour la deuxième partie !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/04/article-sur-la-mise-en-place-de-lauthentification-x509-avec-opensso-et-ejbca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ça bouge chez Sun !</title>
		<link>http://blog.asyd.net/2009/03/ca-bouge-chez-sun/</link>
		<comments>http://blog.asyd.net/2009/03/ca-bouge-chez-sun/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 09:39:15 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[SSO]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=269</guid>
		<description><![CDATA[Malgré une santé économique plus ou moins bonne, des licenciements, (mais a contrario une bonne publicité) ça bouge beaucoup chez Sun, notamment dans le domaine de l&#8217;IAM. Pour preuve, il suffit de regarder l&#8217;activité autour d&#8217;OpenSSO, et de WebSpaces OpenSSO Tab Sweep, par Pat Petterson La roadmap d&#8217;OpenSSO Site principal de WebSpace et son wiki [...]]]></description>
			<content:encoded><![CDATA[<p>Malgré une santé économique plus ou moins bonne, des licenciements, (mais a contrario une bonne publicité) ça bouge beaucoup chez Sun, notamment dans le domaine de l&#8217;IAM. Pour preuve, il suffit de regarder l&#8217;activité autour d&#8217;OpenSSO, et de WebSpaces</p>
<ul>
<li><a href="http://blogs.sun.com/superpat/entry/opensso_tab_sweep_mar_13">OpenSSO Tab Sweep</a>, par Pat Petterson</li>
<li><a href="http://wikis.sun.com/display/OpenSSO/Schedule">La roadmap d&#8217;OpenSSO</a></li>
<li><a href="http://webspace.dev.java.net/">Site principal de WebSpace</a> et <a href="http://wikis.sun.com/display/WebSpaceServer10/Home">son wiki</a></li>
</ul>
<p><strong>OpenSSO</strong></p>
<p>Pour OpenSSO, comme le montre la roadmap, il y a des choses fort intéressantes en prévision. Comme par exemple un mandataire inverse (reverse proxy) avec la possibilité de gérer des accréditations secondaires. En pratique, cela permet de protéger une application où il est impossible d&#8217;installer un agent, et qui ne supporte pas SAMLv2. De manière concrête, cela se traduit par de l&#8217;injection de formulaires (fillform) du login/mot de passe de l&#8217;utilisateur. La solution d&#8217;un mandataire inverse permet de rendre plus faible (et surtout plus quantifiable avant vente) les coûts d&#8217;intégration d&#8217;une application dans un SSO.</p>
<p>D&#8217;autres points notables concernant OpenSSO résident dans l&#8217;avancé <a href="https://opensso.dev.java.net/issues/show_bug.cgi?id=3917">du support d&#8217;OpenDS</a> (avec reset du mot de passe), et la création d&#8217;une fedlet en .Net.</p>
<p><strong>WebSpaces</strong></p>
<p>Je n&#8217;ai encore pris longtemps pour faire un billet sur WebSpace, mais je tacher de résumer de manière rapide. Glassfish WebSpace est le fruit du partenariat entre Sun et Liferay, avec pour objectif de créer une nouvelle version de Sun Portal Server (ce qui d&#8217;ailleurs, ne fais pas que des heureux parmi les clients actuels, à juste titre). WebSpace est fourni avec un certain nombre de porlet existantes, dont certaines orientées enterprise. Je m&#8217;intèresse particulièrement à la porlet Workflow, qui permet de créer des petits processus (workflows) simples, comme par exemple la gestion des notes de frais (c&#8217;est l&#8217;exemple fourni). Pour ma part, j&#8217;ai comme objectif de créer une porlet de demande de congé (avec double approbation). J&#8217;en dirais plus dans un prochain billet !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/03/ca-bouge-chez-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bien gérer ses services sous Solaris</title>
		<link>http://blog.asyd.net/2009/02/bien-gerer-ses-services-sous-solaris/</link>
		<comments>http://blog.asyd.net/2009/02/bien-gerer-ses-services-sous-solaris/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 08:53:53 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[smf]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=239</guid>
		<description><![CDATA[Maintenant que tout le monde utilise SMF (enfin je l&#8217;espère ! ), voici quelques informations qui pourront vous être utiles, autour du cas d&#8217;utilisation suivant : Soit un glassfish (serveur d&#8217;application) qui &#8211; pour une obscure raison qui n&#8217;a pas d&#8217;intérêt ici &#8211; doit écouter sur les ports 80 et 443, mais ce service étant [...]]]></description>
			<content:encoded><![CDATA[<p>Maintenant que tout le monde utilise <a href="http://www.sunwizard.net/html/articles/tl001.html" target="_blank">SMF</a> (enfin je l&#8217;espère ! ), voici quelques informations qui pourront vous être utiles, autour du cas d&#8217;utilisation suivant :</p>
<p>Soit un glassfish (serveur d&#8217;application) qui &#8211; pour une obscure raison qui n&#8217;a pas d&#8217;intérêt ici &#8211; doit écouter sur les ports 80 et 443, mais ce service étant administré par un consultant métier, je ne veux en aucun cas donner le moindre droit <em>root </em>à cette personne, que ce soit pour démarrer ou arrêter glassfish, ou même encore pour son exécution. Cela semble difficile à réaliser au premier abord, mais SMF va nous sauver !</p>
<p><strong>La gestion des privilèges</strong></p>
<p>SMF permet d&#8217;assigner des priviléges (vous pouvez obtenir la liste des privilèges ainsi qu&#8217;une courte description en utilisant la commande <em>ppriv -l -v</em>) à un service. Pour cela, il faut éditer son manifest, puis rajouter la portion de code suivant :</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;method_context</span> <span style="color: #000066;">user</span>=<span style="color: #ff0000;">'glassfish'</span> <span style="color: #000066;">group</span>=<span style="color: #ff0000;">'glassfish'</span> <span style="color: #000066;">privileges</span>=<span style="color: #ff0000;">'basic,net_privaddr'</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p><strong>Administration du service</strong></p>
<p>Maintenant que nous avons notre glassfish qui écoute sur le port 80 et 443 sans avoir besoin du moindre processsus root, il nous reste à déléguer l&#8217;administration du service à l&#8217;utilisateur approprié. Pour cela, effectuer les modifications suivantes :</p>
<p><code><br />
# echo 'solaris.smf.manage.glassfish:::Manage Glassfish::help=nohelp.html' &gt;&gt;/etc/security/auth_attr<br />
# svccfg -s glassfish setprop general/value_authorization = astring: solaris.smf.manage.glassfish<br />
# svccfg -s glassfish setpprop general/action_authorization = astring: solaris.smf.manage.glassfish<br />
# svcadm refresh glassfish<br />
# usermod -A solaris.smf.manage.glassfish glassfish<br />
</code></p>
<p>Quelques explications :</p>
<ul>
<li>le fichier <em>auth_attr</em> définit la liste des attributs étendus qu&#8217;un utilisateur, dans ce cas, on créer un nouveau attribut que l&#8217;on nomme <em>solaris.smf.manage.glassfish</em></li>
<li>Les deux lignes suivantes autorise les utilisateurs disposant de l&#8217;attribut <em>solaris.smf.manage.glassfish </em>à administrer le service (vous pouvez consulter la page de manuel <em>smf_security </em>pour avoir plus de détails)</li>
<li>Et finalement, on assigne le privilège <em>solaris.smf.manage.glassfish</em> à l&#8217;utilisateur <em>glassfish</em></li>
</ul>
<p>Désormais, l&#8217;utilisateur glassfish peut démarrer et éteindre le serveur d&#8217;application sans jamais disposer du moindre droit root (pas de <em>sudo </em>ou équivalent nécessaire)<em>. </em>Dites merci SMF !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/02/bien-gerer-ses-services-sous-solaris/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An IRC channel about IAM</title>
		<link>http://blog.asyd.net/2009/01/an-irc-channel-about-iam/</link>
		<comments>http://blog.asyd.net/2009/01/an-irc-channel-about-iam/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 18:46:08 +0000</pubDate>
		<dc:creator>asyd</dc:creator>
				<category><![CDATA[IAM]]></category>
		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://blog.asyd.net/?p=227</guid>
		<description><![CDATA[Few days ago, I thought it was a pity there is no place to discuss about IAM. Well, ok, there are some places like Sun IDM&#8217;s forums, the #opensso channel, etc. however all this place are related to a specific product. For example I don&#8217;t think the Sun IDM&#8217;s forum is a good place to [...]]]></description>
			<content:encoded><![CDATA[<p>Few days ago, I thought it was a pity there is no place to discuss about IAM. Well, ok, there are some places like Sun IDM&#8217;s forums, the #opensso channel, etc. however all this place are related to a specific product. For example I don&#8217;t think the Sun IDM&#8217;s forum is a good place to ask question about pros and cons of Sun IDM vs Novell IDM <img src='http://blog.asyd.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Well, you can, but there is a big chance that all answers leads you on Sun IDM ! <img src='http://blog.asyd.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, as you probably ever guessed, I create an IRC channel, so you can join us (there are already some very interesting people!) on the freenode network (irc.freenode.net), on the channel ##iam, note the double # is not a typo.</p>
<p>Hope to see you on the channel!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.asyd.net/2009/01/an-irc-channel-about-iam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
