<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chris Jackson's Semantic Consonance : ADAM</title><link>http://blogs.msdn.com/cjacks/archive/tags/ADAM/default.aspx</link><description>Tags: ADAM</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Using ActiveDirectoryMembershipProvider with ADAM Principals</title><link>http://blogs.msdn.com/cjacks/archive/2005/12/12/502892.aspx</link><pubDate>Tue, 13 Dec 2005 01:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:502892</guid><dc:creator>Chris Jackson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/cjacks/comments/502892.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cjacks/commentrss.aspx?PostID=502892</wfw:commentRss><wfw:comment>http://blogs.msdn.com/cjacks/rsscomments.aspx?PostID=502892</wfw:comment><description>&lt;P&gt;One of the interesting scenarios where you can use &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9688F8B9-1034-4EF6-A3E5-2A2A57B5C8E4&amp;amp;displaylang=en"&gt;ADAM (Active Directory in Application Mode)&lt;/A&gt; is for extranet authentication. For external users, you create accounts in the ADAM store. For internal users, you can create a userProxy object for each of your internal users, and keep these proxy objects up to date using either &lt;A href="http://www.microsoft.com/windowsserversystem/miis2003/default.mspx"&gt;MIIS&lt;/A&gt; or the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d9143610-c04d-41c4-b7ea-6f56819769d5&amp;amp;DisplayLang=en"&gt;Identity Integration Feature Pack for Microsoft Windows Server Active Directory&lt;/A&gt;. Using this approach, you can authenticate internal users while allowing them to use the same user name and password they use while inside the firewall, without having to poke a hole in your firewall to allow access to the corporate directory.&lt;/P&gt;
&lt;P&gt;There is also a new framework for user management in ASP.NET 2.0 - the concept of membership, which uses a provider model. You can use the ActiveDirectoryMembershipProvider to point to an Active Directory internally. And, because ADAM is a subset of AD, you can also point this provider at ADAM, and it just works.&lt;/P&gt;
&lt;P&gt;Except...&lt;/P&gt;
&lt;P&gt;When you point the provider to an instance of ADAM and attempt to authenticate one of your proxy users, it fails.&lt;/P&gt;
&lt;P&gt;Internally, the ActiveDirectoryMembershipProvider uses a DirectorySearcher to search, using the criteria ...(objectClass=user).... A proxy object is a different object class - userProxy.&lt;/P&gt;
&lt;P&gt;So, if you want to use the membership framework for user proxy objects, you can either roll your own provider, or you can inherit from the ActiveDirectoryMembershipProvider to enable the use of object with an objectClass of userProxy.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=502892" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cjacks/archive/tags/ADAM/default.aspx">ADAM</category></item><item><title>Configuring ADAM for SSL on Windows XP without a certificate server using makecert.exe</title><link>http://blogs.msdn.com/cjacks/archive/2005/11/15/493122.aspx</link><pubDate>Wed, 16 Nov 2005 01:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:493122</guid><dc:creator>Chris Jackson</dc:creator><slash:comments>25</slash:comments><comments>http://blogs.msdn.com/cjacks/comments/493122.aspx</comments><wfw:commentRss>http://blogs.msdn.com/cjacks/commentrss.aspx?PostID=493122</wfw:commentRss><wfw:comment>http://blogs.msdn.com/cjacks/rsscomments.aspx?PostID=493122</wfw:comment><description>&lt;P&gt;I frequently run into situations where I need to configure my laptop to support some technology, without having a lot of server resources to depend on. Most recently, I configured a local instance of ADAM to support SSL. While the information on how to configure this is available, it is scattered across multiple sources. I figured it might be helpful to somebody to bring all of the information together in one place.&lt;/P&gt;
&lt;P&gt;First you will want to download the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;amp;displaylang=en"&gt;Platform SDK&lt;/A&gt;. This will include the tools that you need.&lt;/P&gt;
&lt;P&gt;With the Platform SDK installed, go to start -&amp;gt; all programs -&amp;gt; Microsoft Platform SDK for Windows Server 2003 SP-1 -&amp;gt; Open Build Environment Window -&amp;gt; Windows XP 32-bit Build Environment -&amp;gt; Set Windows XP 32-bit Build Environment (Retail). This will open up a command prompt with all of the necessary path variables set.&lt;/P&gt;
&lt;P&gt;Now, you want to create a new root certificate using the makecert.exe utility. At the command line, enter the following:&lt;/P&gt;&lt;CODE&gt;makecert -pe -n "CN=Test and Dev Root Authority" -ss my -sr LocalMachine -a sha1 -sky signature -r "Test and Dev Root Authority.cer"&lt;/CODE&gt; 
&lt;P&gt;This will create a root authority certificate, which you can use to sign new certificates. In fact, that's exactly what we are going to do. Generate a new certificate, signed by this root certificate, that is configured to support server authentication. At the command line, enter the following:&lt;/P&gt;&lt;CODE&gt;makecert -pe -n "CN=insert.fully.qualified.domain.name.here.com&lt;INSERT the fully qualified domain name of your computer here&gt;" -ss my -sr LocalMachine -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Test and Dev Root Authority" -is MY -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "Test and Dev SLL.cer"&lt;/CODE&gt; 
&lt;P&gt;Now, both of these certificates have been created and installed to the local machine store. We need to make our root certificate a trusted root certificate, so we will open the certificates MMC console. From the command line you have open, you can type &lt;CODE&gt;mmc&lt;/CODE&gt;. Go to File -&amp;gt; Add/Remove Snap In -&amp;gt; Add -&amp;gt; Certificates. Press the Add button. Select Computer Account and click Next. Leave the default of Local computer and click finish. Click close and then click OK. If you drill down to Certificates (Local Computer) -&amp;gt; Personal -&amp;gt; Certificates, you should see both certificates. Move the root certificate to Trusted Root Certificate Authorities. Move the root authority to Trusted Root Certification Authorities. Now, you have a certificate that can be used for SSL with a trusted root authority.&lt;/P&gt;
&lt;P&gt;Finally, you need to make sure the service account has read access to the certificate, which is stored in c:\documents and settings\all users\application data\microsoft\crypto\rsa\machinekeys. You can use Windows Explorer, but if you don't want to leave your trusty command line, you can also use:&lt;/P&gt;&lt;CODE&gt;cacls "c:\documents and settings\all users\application data\microsoft\crypto\rsa\machinekeys" /e /t /c /g "NT AUTHORITY\NETWORK SERVICE":R&lt;/CODE&gt; 
&lt;P&gt;Note that this assumes that you accepted the default of Network Service when you installed ADAM. If not, then add read permissions to whichever account you did use.&lt;/P&gt;
&lt;P&gt;Finally, you can restart the ADAM service from the services administrative tool.&lt;/P&gt;
&lt;P&gt;Now, if you start up LDP, connect over port 636 with SSL selected (making sure you use the fully qualified domain name of your computer, which is required by the SSL standard), you should be connecting over a secured transport!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=493122" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/cjacks/archive/tags/ADAM/default.aspx">ADAM</category></item></channel></rss>